├── .vs └── PowerInject │ ├── DesignTimeBuild │ └── .dtbcache │ └── v15 │ ├── .suo │ └── Server │ └── sqlite3 │ ├── db.lock │ ├── storage.ide │ ├── storage.ide-shm │ └── storage.ide-wal ├── Annotations.cs ├── Annotations.cs.meta ├── Class1.cs ├── ConsoleLogger.cs ├── ConsoleLogger.cs.meta ├── ConstructorComparable.cs ├── ConstructorComparable.cs.meta ├── DemoScenes.meta ├── DemoScenes ├── ExecutionOrder.meta ├── ExecutionOrder │ ├── ExecutionA.cs │ ├── ExecutionA.cs.meta │ ├── ExecutionB.cs │ ├── ExecutionB.cs.meta │ ├── ExecutionOrder.unity │ └── ExecutionOrder.unity.meta ├── MonsterChase.meta └── MonsterChase │ ├── CameraProvider.cs │ ├── CameraProvider.cs.meta │ ├── CameraUpdater.cs │ ├── CameraUpdater.cs.meta │ ├── CheckIfOverSelectedMoves.cs │ ├── CheckIfOverSelectedMoves.cs.meta │ ├── Dot.cs │ ├── Dot.cs.meta │ ├── Floor.mat │ ├── Floor.mat.meta │ ├── GameInit.cs │ ├── GameInit.cs.meta │ ├── GameState.cs │ ├── GameState.cs.meta │ ├── HUD.cs │ ├── HUD.cs.meta │ ├── HeroMetarial.mat │ ├── HeroMetarial.mat.meta │ ├── ISelectedMoves.cs │ ├── ISelectedMoves.cs.meta │ ├── Labyrinth.cs │ ├── Labyrinth.cs.meta │ ├── Monster.cs │ ├── Monster.cs.meta │ ├── MonsterChase.unity │ ├── MonsterChase.unity.meta │ ├── MonsterMaterial.mat │ ├── MonsterMaterial.mat.meta │ ├── Player.cs │ ├── Player.cs.meta │ ├── PointsKeeper.cs │ ├── PointsKeeper.cs.meta │ ├── SelectedMovesFromKeyboard.cs │ └── SelectedMovesFromKeyboard.cs.meta ├── Field.cs ├── Field.cs.meta ├── FinalValue.cs ├── FinalValue.cs.meta ├── FunctionObject.cs ├── FunctionObject.cs.meta ├── IKey.cs ├── IKey.cs.meta ├── ILogger.cs ├── ILogger.cs.meta ├── Invokeable.cs ├── Invokeable.cs.meta ├── KeyProducer.cs ├── KeyProducer.cs.meta ├── MethodInfoObject.cs ├── MethodInfoObject.cs.meta ├── NamedTypeKey.cs ├── NamedTypeKey.cs.meta ├── PipelineContainer.cs ├── PipelineContainer.cs.meta ├── PowerInject.csproj ├── PowerPipeline.cs ├── PowerPipeline.cs.meta ├── Producer.cs ├── Producer.cs.meta ├── Property.cs ├── Property.cs.meta ├── README.md ├── ReflectionUtils.cs ├── ReflectionUtils.cs.meta ├── TypeKey.cs ├── TypeKey.cs.meta ├── UnityLogger.cs ├── UnityLogger.cs.meta ├── Utils.cs ├── Utils.cs.meta ├── bin ├── Debug │ ├── net35 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml │ ├── net40 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml │ ├── net45 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml │ ├── net471 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml │ └── netstandard2.0 │ │ ├── PowerInject.deps.json │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml ├── Release │ ├── net35 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml │ └── net471 │ │ ├── PowerInject.dll │ │ ├── PowerInject.pdb │ │ ├── UnityEngine.dll │ │ └── UnityEngine.xml └── current │ └── net35 │ ├── PowerInject.dll │ ├── PowerInject.pdb │ ├── UnityEngine.dll │ └── UnityEngine.xml └── obj ├── Debug ├── net35 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ └── PowerInject.pdb ├── net40 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ └── PowerInject.pdb ├── net45 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ ├── PowerInject.pdb │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── net471 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ ├── PowerInject.pdb │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs └── netstandard2.0 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ └── PowerInject.pdb ├── PowerInject.csproj.nuget.cache ├── PowerInject.csproj.nuget.g.props ├── PowerInject.csproj.nuget.g.targets ├── Release ├── net35 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.dll │ └── PowerInject.pdb └── net471 │ ├── PowerInject.AssemblyInfo.cs │ ├── PowerInject.AssemblyInfoInputs.cache │ ├── PowerInject.assets.cache │ ├── PowerInject.csproj.CopyComplete │ ├── PowerInject.csproj.CoreCompileInputs.cache │ ├── PowerInject.csproj.FileListAbsolute.txt │ ├── PowerInject.csprojAssemblyReference.cache │ ├── PowerInject.dll │ ├── PowerInject.pdb │ ├── TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs │ ├── TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs │ └── TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs ├── project.assets.json └── project.packagespec.json /.vs/PowerInject/DesignTimeBuild/.dtbcache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/.vs/PowerInject/DesignTimeBuild/.dtbcache -------------------------------------------------------------------------------- /.vs/PowerInject/v15/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/.vs/PowerInject/v15/.suo -------------------------------------------------------------------------------- /.vs/PowerInject/v15/Server/sqlite3/db.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/.vs/PowerInject/v15/Server/sqlite3/db.lock -------------------------------------------------------------------------------- /.vs/PowerInject/v15/Server/sqlite3/storage.ide: -------------------------------------------------------------------------------- 1 | SQLite format 3@ .A  -------------------------------------------------------------------------------- /.vs/PowerInject/v15/Server/sqlite3/storage.ide-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/.vs/PowerInject/v15/Server/sqlite3/storage.ide-shm -------------------------------------------------------------------------------- /.vs/PowerInject/v15/Server/sqlite3/storage.ide-wal: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/.vs/PowerInject/v15/Server/sqlite3/storage.ide-wal -------------------------------------------------------------------------------- /Annotations.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace PowerInject 4 | { 5 | [AttributeUsage(AttributeTargets.Property| AttributeTargets.Field | AttributeTargets.Constructor, AllowMultiple = true)] 6 | public class Inject : System.Attribute 7 | { 8 | } 9 | 10 | 11 | [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] 12 | public class NewInstance : System.Attribute 13 | { 14 | } 15 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] 16 | public class Power : System.Attribute 17 | { 18 | } 19 | 20 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] 21 | public class Module : System.Attribute 22 | { 23 | public String Named { get; set; } 24 | } 25 | [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)] 26 | public class Produce : System.Attribute 27 | { 28 | public String Named { get;set; } 29 | } 30 | [AttributeUsage(AttributeTargets.Parameter|AttributeTargets.Field, AllowMultiple = false)] 31 | public class Named : System.Attribute 32 | { 33 | public String name; 34 | public Named(String name) { 35 | this.name = name; 36 | } 37 | } 38 | [AttributeUsage(AttributeTargets.Parameter | AttributeTargets.Field, AllowMultiple = false)] 39 | public class Typed : System.Attribute 40 | { 41 | public Type type; 42 | public Typed(Type type) 43 | { 44 | this.type = type; 45 | } 46 | } 47 | [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] 48 | public class Insert : System.Attribute 49 | { 50 | public Type Typed { get; set; } 51 | public String Named { get; set; } 52 | } 53 | 54 | public class OnInjected : System.Attribute 55 | { 56 | } 57 | 58 | } -------------------------------------------------------------------------------- /Annotations.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d437ef3f7694d14888c9d55e2ec5126 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Class1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace PowerInject 4 | { 5 | public class Class1 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /ConsoleLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace PowerInject 7 | { 8 | class ConsoleLogger:IPipelineLogger 9 | { 10 | public void logException(String message,Exception e) 11 | { 12 | logMessage(message); 13 | Console.WriteLine(e.StackTrace.ToString()); 14 | } 15 | public void logMessage(object message) 16 | { 17 | Console.WriteLine(message.ToString()); 18 | } 19 | public void logWarning(object message) 20 | { 21 | Console.WriteLine(message.ToString()); 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ConsoleLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8bdf375e06587974cb353c33d2ac18cc 3 | timeCreated: 1455713018 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /ConstructorComparable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | 7 | namespace PowerInject 8 | { 9 | class ConstructorComparable : IComparable 10 | { 11 | 12 | 13 | public ConstructorInfo info; 14 | public Boolean isAnnotatedWithInject = false; 15 | public int numberOfArguments = 0; 16 | public ConstructorComparable(ConstructorInfo info) 17 | { 18 | this.info = info; 19 | isAnnotatedWithInject = ReflectionUtils.getAttributeInfo(info)!=null; 20 | numberOfArguments = info.GetParameters().Count(); 21 | 22 | } 23 | public int CompareTo(ConstructorComparable c) { 24 | 25 | if (this.isAnnotatedWithInject && !c.isAnnotatedWithInject) 26 | { 27 | return 1; 28 | } 29 | else { 30 | if (numberOfArguments > c.numberOfArguments) 31 | { 32 | return 1; 33 | } 34 | else { 35 | return -1; 36 | } 37 | } 38 | 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ConstructorComparable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70b7482b8cdc50a4ba2e1eabf42e79a1 3 | timeCreated: 1455879200 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a321c6f8c55088042ad42aae3a700283 3 | folderAsset: yes 4 | timeCreated: 1454706904 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d66978885bb12e14bb571efde8ca61ec 3 | folderAsset: yes 4 | timeCreated: 1455205539 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionA.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | [Power] 5 | public class ExecutionA : MonoBehaviour { 6 | 7 | 8 | void Awake() 9 | { 10 | MonoBehaviour.print("AwakeA"); 11 | } 12 | void Start() { 13 | MonoBehaviour.print("StartA"); 14 | } 15 | 16 | [Produce] 17 | float produceA_2() 18 | { 19 | MonoBehaviour.print("produceA_2"); 20 | return 0; 21 | } 22 | [Produce] 23 | string produceA_1() { 24 | MonoBehaviour.print("produceA_1"); 25 | return ""; 26 | } 27 | [OnInjected] 28 | public void injectedA() { 29 | MonoBehaviour.print("Injected_A"); 30 | } 31 | bool ranupdate = false; 32 | bool ranFixedUpdate = false; 33 | void Update() 34 | { 35 | if (!ranupdate) 36 | { 37 | MonoBehaviour.print("Update_A"); 38 | ranupdate = true; 39 | } 40 | } 41 | void FixedUpdate() 42 | { 43 | if (!ranFixedUpdate) 44 | { 45 | MonoBehaviour.print("FixedUpdate_A"); 46 | ranFixedUpdate = true; 47 | } 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionA.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e6665e4b5d0ee3458e4dd55f2ff7773 3 | timeCreated: 1457713364 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionB.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | [Power] 5 | public class ExecutionB : MonoBehaviour { 6 | 7 | 8 | 9 | void Awake() 10 | { 11 | MonoBehaviour.print("AwakeB"); 12 | } 13 | void Start() 14 | { 15 | MonoBehaviour.print("StartB"); 16 | } 17 | [Produce] 18 | string produceB_1() 19 | { 20 | MonoBehaviour.print("produceB_1"); 21 | return ""; 22 | } 23 | [Produce] 24 | float produceB_2() 25 | { 26 | MonoBehaviour.print("produceB_2"); 27 | return 0; 28 | } 29 | [OnInjected] 30 | public void injectedA() 31 | { 32 | MonoBehaviour.print("Injected_B"); 33 | } 34 | bool ranupdate = false; 35 | bool ranFixedUpdate = false; 36 | void Update() { 37 | if (!ranupdate) { 38 | MonoBehaviour.print("Update_B"); 39 | ranupdate = true; 40 | } 41 | } 42 | void FixedUpdate() 43 | { 44 | if (!ranFixedUpdate) 45 | { 46 | MonoBehaviour.print("FixedUpdate_B"); 47 | ranFixedUpdate = true; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionB.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f164aa751be1ee48af0f2528fe80251 3 | timeCreated: 1457713602 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionOrder.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_PVSObjectsArray: [] 8 | m_PVSPortalsArray: [] 9 | m_OcclusionBakeSettings: 10 | smallestOccluder: 5 11 | smallestHole: 0.25 12 | backfaceThreshold: 100 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 6 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | --- !u!157 &3 41 | LightmapSettings: 42 | m_ObjectHideFlags: 0 43 | serializedVersion: 6 44 | m_GIWorkflowMode: 0 45 | m_LightmapsMode: 1 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 1 55 | m_LightmapEditorSettings: 56 | serializedVersion: 3 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AOMaxDistance: 1 62 | m_Padding: 2 63 | m_CompAOExponent: 0 64 | m_LightmapParameters: {fileID: 0} 65 | m_TextureCompression: 1 66 | m_FinalGather: 0 67 | m_FinalGatherRayCount: 1024 68 | m_ReflectionCompression: 2 69 | m_LightingDataAsset: {fileID: 0} 70 | m_RuntimeCPUUsage: 25 71 | --- !u!196 &4 72 | NavMeshSettings: 73 | serializedVersion: 2 74 | m_ObjectHideFlags: 0 75 | m_BuildSettings: 76 | serializedVersion: 2 77 | agentRadius: 0.5 78 | agentHeight: 2 79 | agentSlope: 45 80 | agentClimb: 0.4 81 | ledgeDropHeight: 0 82 | maxJumpAcrossDistance: 0 83 | accuratePlacement: 0 84 | minRegionArea: 2 85 | cellSize: 0.16666667 86 | manualCellSize: 0 87 | m_NavMeshData: {fileID: 0} 88 | --- !u!1 &1092654347 89 | GameObject: 90 | m_ObjectHideFlags: 0 91 | m_PrefabParentObject: {fileID: 0} 92 | m_PrefabInternal: {fileID: 0} 93 | serializedVersion: 4 94 | m_Component: 95 | - 4: {fileID: 1092654348} 96 | - 114: {fileID: 1092654349} 97 | m_Layer: 0 98 | m_Name: TestA 99 | m_TagString: Untagged 100 | m_Icon: {fileID: 0} 101 | m_NavMeshLayer: 0 102 | m_StaticEditorFlags: 0 103 | m_IsActive: 1 104 | --- !u!4 &1092654348 105 | Transform: 106 | m_ObjectHideFlags: 0 107 | m_PrefabParentObject: {fileID: 0} 108 | m_PrefabInternal: {fileID: 0} 109 | m_GameObject: {fileID: 1092654347} 110 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 111 | m_LocalPosition: {x: 0, y: 0, z: 0} 112 | m_LocalScale: {x: 1, y: 1, z: 1} 113 | m_Children: [] 114 | m_Father: {fileID: 2121728435} 115 | m_RootOrder: 0 116 | --- !u!114 &1092654349 117 | MonoBehaviour: 118 | m_ObjectHideFlags: 0 119 | m_PrefabParentObject: {fileID: 0} 120 | m_PrefabInternal: {fileID: 0} 121 | m_GameObject: {fileID: 1092654347} 122 | m_Enabled: 1 123 | m_EditorHideFlags: 0 124 | m_Script: {fileID: 11500000, guid: 0e6665e4b5d0ee3458e4dd55f2ff7773, type: 3} 125 | m_Name: 126 | m_EditorClassIdentifier: 127 | --- !u!1 &1293959098 128 | GameObject: 129 | m_ObjectHideFlags: 0 130 | m_PrefabParentObject: {fileID: 0} 131 | m_PrefabInternal: {fileID: 0} 132 | serializedVersion: 4 133 | m_Component: 134 | - 4: {fileID: 1293959100} 135 | - 108: {fileID: 1293959099} 136 | m_Layer: 0 137 | m_Name: Directional Light 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!108 &1293959099 144 | Light: 145 | m_ObjectHideFlags: 0 146 | m_PrefabParentObject: {fileID: 0} 147 | m_PrefabInternal: {fileID: 0} 148 | m_GameObject: {fileID: 1293959098} 149 | m_Enabled: 1 150 | serializedVersion: 6 151 | m_Type: 1 152 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 153 | m_Intensity: 1 154 | m_Range: 10 155 | m_SpotAngle: 30 156 | m_CookieSize: 10 157 | m_Shadows: 158 | m_Type: 2 159 | m_Resolution: -1 160 | m_Strength: 1 161 | m_Bias: 0.05 162 | m_NormalBias: 0.4 163 | m_NearPlane: 0.2 164 | m_Cookie: {fileID: 0} 165 | m_DrawHalo: 0 166 | m_Flare: {fileID: 0} 167 | m_RenderMode: 0 168 | m_CullingMask: 169 | serializedVersion: 2 170 | m_Bits: 4294967295 171 | m_Lightmapping: 4 172 | m_BounceIntensity: 1 173 | m_ShadowRadius: 0 174 | m_ShadowAngle: 0 175 | m_AreaSize: {x: 1, y: 1} 176 | --- !u!4 &1293959100 177 | Transform: 178 | m_ObjectHideFlags: 0 179 | m_PrefabParentObject: {fileID: 0} 180 | m_PrefabInternal: {fileID: 0} 181 | m_GameObject: {fileID: 1293959098} 182 | m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} 183 | m_LocalPosition: {x: 0, y: 3, z: 0} 184 | m_LocalScale: {x: 1, y: 1, z: 1} 185 | m_Children: [] 186 | m_Father: {fileID: 0} 187 | m_RootOrder: 1 188 | --- !u!1 &1624191482 189 | GameObject: 190 | m_ObjectHideFlags: 0 191 | m_PrefabParentObject: {fileID: 0} 192 | m_PrefabInternal: {fileID: 0} 193 | serializedVersion: 4 194 | m_Component: 195 | - 4: {fileID: 1624191483} 196 | - 114: {fileID: 1624191484} 197 | m_Layer: 0 198 | m_Name: TestB 199 | m_TagString: Untagged 200 | m_Icon: {fileID: 0} 201 | m_NavMeshLayer: 0 202 | m_StaticEditorFlags: 0 203 | m_IsActive: 1 204 | --- !u!4 &1624191483 205 | Transform: 206 | m_ObjectHideFlags: 0 207 | m_PrefabParentObject: {fileID: 0} 208 | m_PrefabInternal: {fileID: 0} 209 | m_GameObject: {fileID: 1624191482} 210 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 211 | m_LocalPosition: {x: 0, y: 0, z: 0} 212 | m_LocalScale: {x: 1, y: 1, z: 1} 213 | m_Children: [] 214 | m_Father: {fileID: 2121728435} 215 | m_RootOrder: 1 216 | --- !u!114 &1624191484 217 | MonoBehaviour: 218 | m_ObjectHideFlags: 0 219 | m_PrefabParentObject: {fileID: 0} 220 | m_PrefabInternal: {fileID: 0} 221 | m_GameObject: {fileID: 1624191482} 222 | m_Enabled: 1 223 | m_EditorHideFlags: 0 224 | m_Script: {fileID: 11500000, guid: 0f164aa751be1ee48af0f2528fe80251, type: 3} 225 | m_Name: 226 | m_EditorClassIdentifier: 227 | --- !u!1 &1670109465 228 | GameObject: 229 | m_ObjectHideFlags: 0 230 | m_PrefabParentObject: {fileID: 0} 231 | m_PrefabInternal: {fileID: 0} 232 | serializedVersion: 4 233 | m_Component: 234 | - 4: {fileID: 1670109470} 235 | - 20: {fileID: 1670109469} 236 | - 92: {fileID: 1670109468} 237 | - 124: {fileID: 1670109467} 238 | - 81: {fileID: 1670109466} 239 | m_Layer: 0 240 | m_Name: Main Camera 241 | m_TagString: MainCamera 242 | m_Icon: {fileID: 0} 243 | m_NavMeshLayer: 0 244 | m_StaticEditorFlags: 0 245 | m_IsActive: 1 246 | --- !u!81 &1670109466 247 | AudioListener: 248 | m_ObjectHideFlags: 0 249 | m_PrefabParentObject: {fileID: 0} 250 | m_PrefabInternal: {fileID: 0} 251 | m_GameObject: {fileID: 1670109465} 252 | m_Enabled: 1 253 | --- !u!124 &1670109467 254 | Behaviour: 255 | m_ObjectHideFlags: 0 256 | m_PrefabParentObject: {fileID: 0} 257 | m_PrefabInternal: {fileID: 0} 258 | m_GameObject: {fileID: 1670109465} 259 | m_Enabled: 1 260 | --- !u!92 &1670109468 261 | Behaviour: 262 | m_ObjectHideFlags: 0 263 | m_PrefabParentObject: {fileID: 0} 264 | m_PrefabInternal: {fileID: 0} 265 | m_GameObject: {fileID: 1670109465} 266 | m_Enabled: 1 267 | --- !u!20 &1670109469 268 | Camera: 269 | m_ObjectHideFlags: 0 270 | m_PrefabParentObject: {fileID: 0} 271 | m_PrefabInternal: {fileID: 0} 272 | m_GameObject: {fileID: 1670109465} 273 | m_Enabled: 1 274 | serializedVersion: 2 275 | m_ClearFlags: 1 276 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} 277 | m_NormalizedViewPortRect: 278 | serializedVersion: 2 279 | x: 0 280 | y: 0 281 | width: 1 282 | height: 1 283 | near clip plane: 0.3 284 | far clip plane: 1000 285 | field of view: 60 286 | orthographic: 0 287 | orthographic size: 5 288 | m_Depth: -1 289 | m_CullingMask: 290 | serializedVersion: 2 291 | m_Bits: 4294967295 292 | m_RenderingPath: -1 293 | m_TargetTexture: {fileID: 0} 294 | m_TargetDisplay: 0 295 | m_TargetEye: 3 296 | m_HDR: 0 297 | m_OcclusionCulling: 1 298 | m_StereoConvergence: 10 299 | m_StereoSeparation: 0.022 300 | m_StereoMirrorMode: 0 301 | --- !u!4 &1670109470 302 | Transform: 303 | m_ObjectHideFlags: 0 304 | m_PrefabParentObject: {fileID: 0} 305 | m_PrefabInternal: {fileID: 0} 306 | m_GameObject: {fileID: 1670109465} 307 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 308 | m_LocalPosition: {x: 0.26, y: 0.49, z: -4.59} 309 | m_LocalScale: {x: 1, y: 1, z: 1} 310 | m_Children: [] 311 | m_Father: {fileID: 0} 312 | m_RootOrder: 0 313 | --- !u!1 &2121728433 314 | GameObject: 315 | m_ObjectHideFlags: 0 316 | m_PrefabParentObject: {fileID: 0} 317 | m_PrefabInternal: {fileID: 0} 318 | serializedVersion: 4 319 | m_Component: 320 | - 4: {fileID: 2121728435} 321 | - 114: {fileID: 2121728434} 322 | m_Layer: 0 323 | m_Name: Pipeline 324 | m_TagString: Untagged 325 | m_Icon: {fileID: 0} 326 | m_NavMeshLayer: 0 327 | m_StaticEditorFlags: 0 328 | m_IsActive: 1 329 | --- !u!114 &2121728434 330 | MonoBehaviour: 331 | m_ObjectHideFlags: 0 332 | m_PrefabParentObject: {fileID: 0} 333 | m_PrefabInternal: {fileID: 0} 334 | m_GameObject: {fileID: 2121728433} 335 | m_Enabled: 1 336 | m_EditorHideFlags: 0 337 | m_Script: {fileID: 11500000, guid: e9dd2630f1bae86449921fd273d3682e, type: 3} 338 | m_Name: 339 | m_EditorClassIdentifier: 340 | --- !u!4 &2121728435 341 | Transform: 342 | m_ObjectHideFlags: 0 343 | m_PrefabParentObject: {fileID: 0} 344 | m_PrefabInternal: {fileID: 0} 345 | m_GameObject: {fileID: 2121728433} 346 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 347 | m_LocalPosition: {x: 1.2448258, y: -0.45673156, z: 2.7400014} 348 | m_LocalScale: {x: 1, y: 1, z: 1} 349 | m_Children: 350 | - {fileID: 1092654348} 351 | - {fileID: 1624191483} 352 | m_Father: {fileID: 0} 353 | m_RootOrder: 2 354 | -------------------------------------------------------------------------------- /DemoScenes/ExecutionOrder/ExecutionOrder.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b0d52e6990efde4e8e11ed389d9e4bd 3 | timeCreated: 1454706904 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95e607fa37d79644c9bc8e5580aa03b3 3 | folderAsset: yes 4 | timeCreated: 1455205561 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CameraProvider.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | [Insert] 7 | public class CameraProvider : MonoBehaviour 8 | { 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CameraProvider.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7451a8b9139250c4d95a7af29cd5041c 3 | timeCreated: 1455226095 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CameraUpdater.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | [Insert] 7 | public class CameraUpdater : MonoBehaviour 8 | { 9 | [Inject] 10 | Player player; 11 | [Inject] 12 | CameraProvider cameraProvider; 13 | 14 | [OnInjected] 15 | public void InitCameraUpdater() 16 | { 17 | 18 | cameraProvider.transform.rotation = Quaternion.identity * Quaternion.AngleAxis(90, Vector3.right) * Quaternion.AngleAxis(90, Vector3.back); 19 | } 20 | 21 | public void FixedUpdate() 22 | { 23 | cameraProvider.transform.position = new Vector3(player.transform.position.x, 40, player.transform.position.z); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CameraUpdater.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bfe0c8916275c2b489990d745af349ad 3 | timeCreated: 1455226446 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CheckIfOverSelectedMoves.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using PowerInject; 6 | using UnityEngine; 7 | namespace Uhyre1 8 | { 9 | [Power] 10 | public class CheckIfOverSelectedMoves : MonoBehaviour, ISelectedMoves 11 | { 12 | ISelectedMoves selected; 13 | 14 | [Inject] 15 | GameState gameState; 16 | 17 | [Produce] 18 | protected ISelectedMoves produceThis(ISelectedMoves selected) 19 | { 20 | this.selected = selected; 21 | return this; 22 | } 23 | public List getControl() 24 | { 25 | if (!gameState.PlayerIsDead) 26 | { 27 | return selected.getControl(); 28 | } 29 | else 30 | { 31 | return new List(); 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/CheckIfOverSelectedMoves.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc9d011658040d24a8a790b21889814d 3 | timeCreated: 1456408476 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Dot.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | 7 | public class Dot : MonoBehaviour 8 | { 9 | void Start() 10 | { 11 | var collider = gameObject.GetComponent(); 12 | collider.isTrigger = true; 13 | var r = GetComponent(); 14 | r.material.color = Color.yellow; 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Dot.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28183c3c48fae9d478375a4f67ea949e 3 | timeCreated: 1455718414 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Floor.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Floor 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | data: 19 | first: 20 | name: _MainTex 21 | second: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | data: 26 | first: 27 | name: _BumpMap 28 | second: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | data: 33 | first: 34 | name: _DetailNormalMap 35 | second: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | data: 40 | first: 41 | name: _ParallaxMap 42 | second: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | data: 47 | first: 48 | name: _OcclusionMap 49 | second: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | data: 54 | first: 55 | name: _EmissionMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | data: 61 | first: 62 | name: _DetailMask 63 | second: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | data: 68 | first: 69 | name: _DetailAlbedoMap 70 | second: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | data: 75 | first: 76 | name: _MetallicGlossMap 77 | second: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | data: 83 | first: 84 | name: _SrcBlend 85 | second: 1 86 | data: 87 | first: 88 | name: _DstBlend 89 | second: 0 90 | data: 91 | first: 92 | name: _Cutoff 93 | second: 0.5 94 | data: 95 | first: 96 | name: _Parallax 97 | second: 0.02 98 | data: 99 | first: 100 | name: _ZWrite 101 | second: 1 102 | data: 103 | first: 104 | name: _Glossiness 105 | second: 0.5 106 | data: 107 | first: 108 | name: _BumpScale 109 | second: 1 110 | data: 111 | first: 112 | name: _OcclusionStrength 113 | second: 1 114 | data: 115 | first: 116 | name: _DetailNormalMapScale 117 | second: 1 118 | data: 119 | first: 120 | name: _UVSec 121 | second: 0 122 | data: 123 | first: 124 | name: _Mode 125 | second: 0 126 | data: 127 | first: 128 | name: _Metallic 129 | second: 0 130 | m_Colors: 131 | data: 132 | first: 133 | name: _EmissionColor 134 | second: {r: 0, g: 0, b: 0, a: 1} 135 | data: 136 | first: 137 | name: _Color 138 | second: {r: 0.016, g: 0.378, b: 0.054, a: 1} 139 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Floor.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 43d6ac4e2245dc049abb8e1667efc3bf 3 | timeCreated: 1456419580 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/GameInit.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | 5 | namespace Uhyre1 6 | { 7 | [Power] 8 | public class GameInit : MonoBehaviour 9 | { 10 | [Produce] 11 | protected PointsKeeper getPointsKeeper() 12 | { 13 | return new PointsKeeper(); 14 | } 15 | 16 | [Produce] 17 | public GameState getGameState() 18 | { 19 | return new GameState(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/GameInit.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6be3086fd02c5c649be45c97ae163707 3 | timeCreated: 1456405293 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/GameState.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | public class GameState 7 | { 8 | [Inject] 9 | Labyrinth labyrinth; 10 | 11 | public bool PlayerIsDead { get; set; } 12 | public bool PlayerWon 13 | { 14 | get 15 | { 16 | return labyrinth.NumberOfDots == 0; 17 | } 18 | } 19 | 20 | } 21 | } -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/GameState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3498bf5c674cab4d812dc13e0447a46 3 | timeCreated: 1456406372 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/HUD.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | [Power] 7 | public class HUD : MonoBehaviour 8 | { 9 | [Inject] 10 | PointsKeeper pointsKeeper; 11 | 12 | [Inject] 13 | GameState gameState; 14 | 15 | [Inject] 16 | Labyrinth labyrinth; 17 | 18 | void OnGUI() 19 | { 20 | GUI.contentColor = Color.white; 21 | GUI.skin.label.fontSize = 20; 22 | GUILayout.Label(" POINTS : " + pointsKeeper.getTotal()); 23 | if (gameState.PlayerIsDead) 24 | { 25 | GUI.contentColor = Color.red; 26 | GUI.skin.label.fontSize = 100; 27 | GUILayout.Label(" You lost !"); 28 | } 29 | if (gameState.PlayerWon) 30 | { 31 | GUI.contentColor = Color.white; 32 | GUI.skin.label.fontSize = 100; 33 | GUILayout.Label(" You WON !"); 34 | } 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/HUD.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 747443cb4355d1d489a0cab2b0215519 3 | timeCreated: 1456405649 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/HeroMetarial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: HeroMetarial 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | data: 19 | first: 20 | name: _MainTex 21 | second: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | data: 26 | first: 27 | name: _BumpMap 28 | second: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | data: 33 | first: 34 | name: _DetailNormalMap 35 | second: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | data: 40 | first: 41 | name: _ParallaxMap 42 | second: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | data: 47 | first: 48 | name: _OcclusionMap 49 | second: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | data: 54 | first: 55 | name: _EmissionMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | data: 61 | first: 62 | name: _DetailMask 63 | second: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | data: 68 | first: 69 | name: _DetailAlbedoMap 70 | second: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | data: 75 | first: 76 | name: _MetallicGlossMap 77 | second: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | data: 83 | first: 84 | name: _SrcBlend 85 | second: 1 86 | data: 87 | first: 88 | name: _DstBlend 89 | second: 0 90 | data: 91 | first: 92 | name: _Cutoff 93 | second: 0.5 94 | data: 95 | first: 96 | name: _Parallax 97 | second: 0.02 98 | data: 99 | first: 100 | name: _ZWrite 101 | second: 1 102 | data: 103 | first: 104 | name: _Glossiness 105 | second: 0.5 106 | data: 107 | first: 108 | name: _BumpScale 109 | second: 1 110 | data: 111 | first: 112 | name: _OcclusionStrength 113 | second: 1 114 | data: 115 | first: 116 | name: _DetailNormalMapScale 117 | second: 1 118 | data: 119 | first: 120 | name: _UVSec 121 | second: 0 122 | data: 123 | first: 124 | name: _Mode 125 | second: 0 126 | data: 127 | first: 128 | name: _Metallic 129 | second: 0 130 | m_Colors: 131 | data: 132 | first: 133 | name: _EmissionColor 134 | second: {r: 0.07374569, g: 0.11420165, b: 0, a: 1} 135 | data: 136 | first: 137 | name: _Color 138 | second: {r: 0.020599067, g: 0.1402633, b: 0.9338235, a: 1} 139 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/HeroMetarial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9aba3d418b89a0c45b6753a1aaa27bde 3 | timeCreated: 1456419275 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/ISelectedMoves.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using PowerInject; 6 | using UnityEngine; 7 | namespace Uhyre1 8 | { 9 | public interface ISelectedMoves 10 | { 11 | List getControl(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/ISelectedMoves.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 957614b6f75d0c047b58e55993e712ec 3 | timeCreated: 1455881291 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Labyrinth.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using PowerInject; 6 | namespace Uhyre1 7 | { 8 | [Insert] 9 | public class Labyrinth : MonoBehaviour 10 | { 11 | public int width = 101; 12 | public float brickSize = 2.0f; 13 | public int spaceBetweenBricks = 3; 14 | public int NumberOfDots { get; set; } 15 | 16 | [Inject] 17 | Monster monster; 18 | 19 | void addWall(float x, float y) 20 | { 21 | GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); 22 | cube.transform.localScale = new Vector3(brickSize, 2.0f, brickSize); 23 | var pos = new Vector3(x * brickSize * spaceBetweenBricks, 0, y * brickSize * spaceBetweenBricks); 24 | cube.transform.parent = this.transform; 25 | cube.transform.position = pos; 26 | } 27 | 28 | void addDot(float x, float y) 29 | { 30 | GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); 31 | var dot = sphere.AddComponent(); 32 | var scale = 0.3f * brickSize; 33 | sphere.transform.localScale = new Vector3(scale, scale, scale); 34 | var pos = new Vector3(x * brickSize * spaceBetweenBricks, 0, y * brickSize * spaceBetweenBricks); 35 | sphere.transform.parent = this.transform; 36 | sphere.transform.position = pos; 37 | NumberOfDots += 1; 38 | } 39 | 40 | 41 | 42 | 43 | void createLabyrinth() 44 | { 45 | for (int x = 2; x < width - 1; x += 2) 46 | { 47 | for (int y = 1; y < width; y += 1) 48 | { 49 | if (Random.Range(0, 100f) < 60) 50 | { 51 | addWall(x, y); 52 | } 53 | else 54 | { 55 | addDot(x, y); 56 | } 57 | } 58 | } 59 | 60 | for (int x = 0; x <= width; x++) 61 | { 62 | addWall(x, 0); 63 | addWall(x, width); 64 | addWall(width, x); 65 | addWall(0, x); 66 | } 67 | 68 | for (int x = 1; x < width; x += 2) 69 | { 70 | for (int y = 1; y < width; y += 1) 71 | { 72 | 73 | addDot(x, y); 74 | } 75 | } 76 | } 77 | 78 | [OnInjected] 79 | public void Init() 80 | { 81 | createLabyrinth(); 82 | var monsterX = (width - 1) * brickSize; 83 | var monsterZ = (width - 1) * brickSize; 84 | monster.transform.position = new Vector3(monsterX, 0, monsterZ); 85 | 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Labyrinth.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 799d0e7cc1d44a84ebd7f72a1ce4f3e5 3 | timeCreated: 1455205602 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Monster.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | [Insert] 7 | public class Monster : MonoBehaviour 8 | { 9 | float speed = 8f; 10 | 11 | [Inject] 12 | Player player; 13 | 14 | [Inject] 15 | GameState gameState; 16 | Rigidbody actor; 17 | 18 | void Start() 19 | { 20 | actor = GetComponent(); 21 | } 22 | 23 | void move() 24 | { 25 | var pos = transform.position; 26 | var force = new Vector3(); 27 | var playerPos = player.transform.position; 28 | if (playerPos.z < pos.z) 29 | { 30 | force.z = -1; 31 | } 32 | else 33 | { 34 | force.z = 1; 35 | } 36 | if (playerPos.x < pos.x) 37 | { 38 | force.x = -1; 39 | } 40 | else 41 | { 42 | force.x = 1; 43 | } 44 | actor.AddForce(force * speed); 45 | } 46 | 47 | bool canMove() 48 | { 49 | return !gameState.PlayerIsDead & !gameState.PlayerWon; 50 | } 51 | void FixedUpdate() 52 | { 53 | if (canMove()) 54 | { 55 | move(); 56 | } 57 | } 58 | 59 | void OnCollisionEnter(Collision collision) 60 | { 61 | if (collision.gameObject.GetComponent()) 62 | { 63 | gameState.PlayerIsDead = true; 64 | } 65 | } 66 | 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Monster.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab8b8f77d5c392c47ac55607db853c3b 3 | timeCreated: 1456348796 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/MonsterChase.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | SceneSettings: 5 | m_ObjectHideFlags: 0 6 | m_PVSData: 7 | m_PVSObjectsArray: [] 8 | m_PVSPortalsArray: [] 9 | m_OcclusionBakeSettings: 10 | smallestOccluder: 5 11 | smallestHole: 0.25 12 | backfaceThreshold: 100 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 6 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 0 28 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} 29 | m_HaloStrength: 0.5 30 | m_FlareStrength: 1 31 | m_FlareFadeSpeed: 3 32 | m_HaloTexture: {fileID: 0} 33 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 34 | m_DefaultReflectionMode: 0 35 | m_DefaultReflectionResolution: 128 36 | m_ReflectionBounces: 1 37 | m_ReflectionIntensity: 1 38 | m_CustomReflection: {fileID: 0} 39 | m_Sun: {fileID: 0} 40 | --- !u!157 &3 41 | LightmapSettings: 42 | m_ObjectHideFlags: 0 43 | serializedVersion: 6 44 | m_GIWorkflowMode: 0 45 | m_LightmapsMode: 1 46 | m_GISettings: 47 | serializedVersion: 2 48 | m_BounceScale: 1 49 | m_IndirectOutputScale: 1 50 | m_AlbedoBoost: 1 51 | m_TemporalCoherenceThreshold: 1 52 | m_EnvironmentLightingMode: 0 53 | m_EnableBakedLightmaps: 1 54 | m_EnableRealtimeLightmaps: 1 55 | m_LightmapEditorSettings: 56 | serializedVersion: 3 57 | m_Resolution: 2 58 | m_BakeResolution: 40 59 | m_TextureWidth: 1024 60 | m_TextureHeight: 1024 61 | m_AOMaxDistance: 1 62 | m_Padding: 2 63 | m_CompAOExponent: 0 64 | m_LightmapParameters: {fileID: 0} 65 | m_TextureCompression: 1 66 | m_FinalGather: 0 67 | m_FinalGatherRayCount: 1024 68 | m_ReflectionCompression: 2 69 | m_LightingDataAsset: {fileID: 0} 70 | m_RuntimeCPUUsage: 25 71 | --- !u!196 &4 72 | NavMeshSettings: 73 | serializedVersion: 2 74 | m_ObjectHideFlags: 0 75 | m_BuildSettings: 76 | serializedVersion: 2 77 | agentRadius: 0.5 78 | agentHeight: 2 79 | agentSlope: 45 80 | agentClimb: 0.4 81 | ledgeDropHeight: 0 82 | maxJumpAcrossDistance: 0 83 | accuratePlacement: 0 84 | minRegionArea: 2 85 | cellSize: 0.16666667 86 | manualCellSize: 0 87 | m_NavMeshData: {fileID: 0} 88 | --- !u!1 &263256364 89 | GameObject: 90 | m_ObjectHideFlags: 0 91 | m_PrefabParentObject: {fileID: 0} 92 | m_PrefabInternal: {fileID: 0} 93 | serializedVersion: 4 94 | m_Component: 95 | - 4: {fileID: 263256365} 96 | m_Layer: 0 97 | m_Name: Player 98 | m_TagString: Untagged 99 | m_Icon: {fileID: 0} 100 | m_NavMeshLayer: 0 101 | m_StaticEditorFlags: 0 102 | m_IsActive: 1 103 | --- !u!4 &263256365 104 | Transform: 105 | m_ObjectHideFlags: 0 106 | m_PrefabParentObject: {fileID: 0} 107 | m_PrefabInternal: {fileID: 0} 108 | m_GameObject: {fileID: 263256364} 109 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 110 | m_LocalPosition: {x: -21.582792, y: -32.088043, z: -43.658775} 111 | m_LocalScale: {x: 100, y: 100, z: 100} 112 | m_Children: 113 | - {fileID: 1962897389} 114 | - {fileID: 282558295} 115 | - {fileID: 853671241} 116 | - {fileID: 2102341297} 117 | m_Father: {fileID: 1465759395} 118 | m_RootOrder: 1 119 | --- !u!1 &282558294 120 | GameObject: 121 | m_ObjectHideFlags: 0 122 | m_PrefabParentObject: {fileID: 0} 123 | m_PrefabInternal: {fileID: 0} 124 | serializedVersion: 4 125 | m_Component: 126 | - 4: {fileID: 282558295} 127 | - 114: {fileID: 282558296} 128 | m_Layer: 0 129 | m_Name: CameraUpdater 130 | m_TagString: Untagged 131 | m_Icon: {fileID: 0} 132 | m_NavMeshLayer: 0 133 | m_StaticEditorFlags: 0 134 | m_IsActive: 1 135 | --- !u!4 &282558295 136 | Transform: 137 | m_ObjectHideFlags: 0 138 | m_PrefabParentObject: {fileID: 0} 139 | m_PrefabInternal: {fileID: 0} 140 | m_GameObject: {fileID: 282558294} 141 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 142 | m_LocalPosition: {x: 0.21582791, y: 0.3208804, z: 0.43658775} 143 | m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} 144 | m_Children: [] 145 | m_Father: {fileID: 263256365} 146 | m_RootOrder: 1 147 | --- !u!114 &282558296 148 | MonoBehaviour: 149 | m_ObjectHideFlags: 0 150 | m_PrefabParentObject: {fileID: 0} 151 | m_PrefabInternal: {fileID: 0} 152 | m_GameObject: {fileID: 282558294} 153 | m_Enabled: 1 154 | m_EditorHideFlags: 0 155 | m_Script: {fileID: 11500000, guid: bfe0c8916275c2b489990d745af349ad, type: 3} 156 | m_Name: 157 | m_EditorClassIdentifier: 158 | --- !u!1 &437067499 159 | GameObject: 160 | m_ObjectHideFlags: 0 161 | m_PrefabParentObject: {fileID: 0} 162 | m_PrefabInternal: {fileID: 0} 163 | serializedVersion: 4 164 | m_Component: 165 | - 4: {fileID: 437067500} 166 | - 114: {fileID: 437067501} 167 | m_Layer: 0 168 | m_Name: Hud 169 | m_TagString: Untagged 170 | m_Icon: {fileID: 0} 171 | m_NavMeshLayer: 0 172 | m_StaticEditorFlags: 0 173 | m_IsActive: 1 174 | --- !u!4 &437067500 175 | Transform: 176 | m_ObjectHideFlags: 0 177 | m_PrefabParentObject: {fileID: 0} 178 | m_PrefabInternal: {fileID: 0} 179 | m_GameObject: {fileID: 437067499} 180 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 181 | m_LocalPosition: {x: -21.552753, y: -32.088024, z: -43.28831} 182 | m_LocalScale: {x: 1, y: 1, z: 1} 183 | m_Children: [] 184 | m_Father: {fileID: 1465759395} 185 | m_RootOrder: 2 186 | --- !u!114 &437067501 187 | MonoBehaviour: 188 | m_ObjectHideFlags: 0 189 | m_PrefabParentObject: {fileID: 0} 190 | m_PrefabInternal: {fileID: 0} 191 | m_GameObject: {fileID: 437067499} 192 | m_Enabled: 1 193 | m_EditorHideFlags: 0 194 | m_Script: {fileID: 11500000, guid: 747443cb4355d1d489a0cab2b0215519, type: 3} 195 | m_Name: 196 | m_EditorClassIdentifier: 197 | --- !u!1 &812625194 198 | GameObject: 199 | m_ObjectHideFlags: 0 200 | m_PrefabParentObject: {fileID: 0} 201 | m_PrefabInternal: {fileID: 0} 202 | serializedVersion: 4 203 | m_Component: 204 | - 4: {fileID: 812625198} 205 | - 33: {fileID: 812625197} 206 | - 64: {fileID: 812625196} 207 | - 23: {fileID: 812625195} 208 | m_Layer: 0 209 | m_Name: Plane 210 | m_TagString: Untagged 211 | m_Icon: {fileID: 0} 212 | m_NavMeshLayer: 0 213 | m_StaticEditorFlags: 0 214 | m_IsActive: 1 215 | --- !u!23 &812625195 216 | MeshRenderer: 217 | m_ObjectHideFlags: 0 218 | m_PrefabParentObject: {fileID: 0} 219 | m_PrefabInternal: {fileID: 0} 220 | m_GameObject: {fileID: 812625194} 221 | m_Enabled: 1 222 | m_CastShadows: 1 223 | m_ReceiveShadows: 1 224 | m_Materials: 225 | - {fileID: 2100000, guid: 43d6ac4e2245dc049abb8e1667efc3bf, type: 2} 226 | m_SubsetIndices: 227 | m_StaticBatchRoot: {fileID: 0} 228 | m_UseLightProbes: 1 229 | m_ReflectionProbeUsage: 1 230 | m_ProbeAnchor: {fileID: 0} 231 | m_ScaleInLightmap: 1 232 | m_PreserveUVs: 1 233 | m_IgnoreNormalsForChartDetection: 0 234 | m_ImportantGI: 0 235 | m_MinimumChartSize: 4 236 | m_AutoUVMaxDistance: 0.5 237 | m_AutoUVMaxAngle: 89 238 | m_LightmapParameters: {fileID: 0} 239 | m_SortingLayerID: 0 240 | m_SortingOrder: 0 241 | --- !u!64 &812625196 242 | MeshCollider: 243 | m_ObjectHideFlags: 0 244 | m_PrefabParentObject: {fileID: 0} 245 | m_PrefabInternal: {fileID: 0} 246 | m_GameObject: {fileID: 812625194} 247 | m_Material: {fileID: 0} 248 | m_IsTrigger: 0 249 | m_Enabled: 1 250 | serializedVersion: 2 251 | m_Convex: 0 252 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 253 | --- !u!33 &812625197 254 | MeshFilter: 255 | m_ObjectHideFlags: 0 256 | m_PrefabParentObject: {fileID: 0} 257 | m_PrefabInternal: {fileID: 0} 258 | m_GameObject: {fileID: 812625194} 259 | m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} 260 | --- !u!4 &812625198 261 | Transform: 262 | m_ObjectHideFlags: 0 263 | m_PrefabParentObject: {fileID: 0} 264 | m_PrefabInternal: {fileID: 0} 265 | m_GameObject: {fileID: 812625194} 266 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 267 | m_LocalPosition: {x: 1.2448262, y: -0.45673132, z: -0.530892} 268 | m_LocalScale: {x: 20, y: 1, z: 20} 269 | m_Children: [] 270 | m_Father: {fileID: 0} 271 | m_RootOrder: 2 272 | --- !u!1 &822759947 273 | GameObject: 274 | m_ObjectHideFlags: 0 275 | m_PrefabParentObject: {fileID: 0} 276 | m_PrefabInternal: {fileID: 0} 277 | serializedVersion: 4 278 | m_Component: 279 | - 4: {fileID: 822759949} 280 | - 108: {fileID: 822759948} 281 | m_Layer: 0 282 | m_Name: Directional Light 283 | m_TagString: Untagged 284 | m_Icon: {fileID: 0} 285 | m_NavMeshLayer: 0 286 | m_StaticEditorFlags: 0 287 | m_IsActive: 1 288 | --- !u!108 &822759948 289 | Light: 290 | m_ObjectHideFlags: 0 291 | m_PrefabParentObject: {fileID: 0} 292 | m_PrefabInternal: {fileID: 0} 293 | m_GameObject: {fileID: 822759947} 294 | m_Enabled: 1 295 | serializedVersion: 6 296 | m_Type: 1 297 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} 298 | m_Intensity: 1 299 | m_Range: 10 300 | m_SpotAngle: 30 301 | m_CookieSize: 10 302 | m_Shadows: 303 | m_Type: 2 304 | m_Resolution: -1 305 | m_Strength: 1 306 | m_Bias: 0.05 307 | m_NormalBias: 0.4 308 | m_NearPlane: 0.2 309 | m_Cookie: {fileID: 0} 310 | m_DrawHalo: 0 311 | m_Flare: {fileID: 0} 312 | m_RenderMode: 0 313 | m_CullingMask: 314 | serializedVersion: 2 315 | m_Bits: 4294967295 316 | m_Lightmapping: 4 317 | m_BounceIntensity: 1 318 | m_ShadowRadius: 0 319 | m_ShadowAngle: 0 320 | m_AreaSize: {x: 1, y: 1} 321 | --- !u!4 &822759949 322 | Transform: 323 | m_ObjectHideFlags: 0 324 | m_PrefabParentObject: {fileID: 0} 325 | m_PrefabInternal: {fileID: 0} 326 | m_GameObject: {fileID: 822759947} 327 | m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.109381676, w: 0.87542605} 328 | m_LocalPosition: {x: 0, y: 3, z: 0} 329 | m_LocalScale: {x: 1, y: 1, z: 1} 330 | m_Children: [] 331 | m_Father: {fileID: 0} 332 | m_RootOrder: 0 333 | --- !u!1 &853671240 334 | GameObject: 335 | m_ObjectHideFlags: 0 336 | m_PrefabParentObject: {fileID: 0} 337 | m_PrefabInternal: {fileID: 0} 338 | serializedVersion: 4 339 | m_Component: 340 | - 4: {fileID: 853671241} 341 | - 114: {fileID: 853671242} 342 | m_Layer: 0 343 | m_Name: KeyboardControls 344 | m_TagString: Untagged 345 | m_Icon: {fileID: 0} 346 | m_NavMeshLayer: 0 347 | m_StaticEditorFlags: 0 348 | m_IsActive: 1 349 | --- !u!4 &853671241 350 | Transform: 351 | m_ObjectHideFlags: 0 352 | m_PrefabParentObject: {fileID: 0} 353 | m_PrefabInternal: {fileID: 0} 354 | m_GameObject: {fileID: 853671240} 355 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 356 | m_LocalPosition: {x: 0, y: 0, z: 0} 357 | m_LocalScale: {x: 1, y: 1, z: 1} 358 | m_Children: [] 359 | m_Father: {fileID: 263256365} 360 | m_RootOrder: 2 361 | --- !u!114 &853671242 362 | MonoBehaviour: 363 | m_ObjectHideFlags: 0 364 | m_PrefabParentObject: {fileID: 0} 365 | m_PrefabInternal: {fileID: 0} 366 | m_GameObject: {fileID: 853671240} 367 | m_Enabled: 1 368 | m_EditorHideFlags: 0 369 | m_Script: {fileID: 11500000, guid: 92d5b638c202d3748ac523fdaba098ad, type: 3} 370 | m_Name: 371 | m_EditorClassIdentifier: 372 | --- !u!1 &1465759393 373 | GameObject: 374 | m_ObjectHideFlags: 0 375 | m_PrefabParentObject: {fileID: 0} 376 | m_PrefabInternal: {fileID: 0} 377 | serializedVersion: 4 378 | m_Component: 379 | - 4: {fileID: 1465759395} 380 | - 114: {fileID: 1465759396} 381 | - 114: {fileID: 1465759394} 382 | m_Layer: 0 383 | m_Name: GamePipeline 384 | m_TagString: Untagged 385 | m_Icon: {fileID: 0} 386 | m_NavMeshLayer: 0 387 | m_StaticEditorFlags: 0 388 | m_IsActive: 1 389 | --- !u!114 &1465759394 390 | MonoBehaviour: 391 | m_ObjectHideFlags: 0 392 | m_PrefabParentObject: {fileID: 0} 393 | m_PrefabInternal: {fileID: 0} 394 | m_GameObject: {fileID: 1465759393} 395 | m_Enabled: 1 396 | m_EditorHideFlags: 0 397 | m_Script: {fileID: 11500000, guid: e9dd2630f1bae86449921fd273d3682e, type: 3} 398 | m_Name: 399 | m_EditorClassIdentifier: 400 | --- !u!4 &1465759395 401 | Transform: 402 | m_ObjectHideFlags: 0 403 | m_PrefabParentObject: {fileID: 0} 404 | m_PrefabInternal: {fileID: 0} 405 | m_GameObject: {fileID: 1465759393} 406 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 407 | m_LocalPosition: {x: 21.552753, y: 32.088024, z: 43.28831} 408 | m_LocalScale: {x: 1, y: 1, z: 1} 409 | m_Children: 410 | - {fileID: 1909702043} 411 | - {fileID: 263256365} 412 | - {fileID: 437067500} 413 | - {fileID: 1635008158} 414 | m_Father: {fileID: 1677146741} 415 | m_RootOrder: 1 416 | --- !u!114 &1465759396 417 | MonoBehaviour: 418 | m_ObjectHideFlags: 0 419 | m_PrefabParentObject: {fileID: 0} 420 | m_PrefabInternal: {fileID: 0} 421 | m_GameObject: {fileID: 1465759393} 422 | m_Enabled: 1 423 | m_EditorHideFlags: 0 424 | m_Script: {fileID: 11500000, guid: 6be3086fd02c5c649be45c97ae163707, type: 3} 425 | m_Name: 426 | m_EditorClassIdentifier: 427 | --- !u!1 &1635008157 428 | GameObject: 429 | m_ObjectHideFlags: 0 430 | m_PrefabParentObject: {fileID: 0} 431 | m_PrefabInternal: {fileID: 0} 432 | serializedVersion: 4 433 | m_Component: 434 | - 4: {fileID: 1635008158} 435 | - 33: {fileID: 1635008162} 436 | - 135: {fileID: 1635008161} 437 | - 23: {fileID: 1635008160} 438 | - 114: {fileID: 1635008159} 439 | - 54: {fileID: 1635008163} 440 | m_Layer: 0 441 | m_Name: Monster 442 | m_TagString: Untagged 443 | m_Icon: {fileID: 0} 444 | m_NavMeshLayer: 0 445 | m_StaticEditorFlags: 0 446 | m_IsActive: 1 447 | --- !u!4 &1635008158 448 | Transform: 449 | m_ObjectHideFlags: 0 450 | m_PrefabParentObject: {fileID: 0} 451 | m_PrefabInternal: {fileID: 0} 452 | m_GameObject: {fileID: 1635008157} 453 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 454 | m_LocalPosition: {x: -21.582792, y: -32.088043, z: -43.658775} 455 | m_LocalScale: {x: 1, y: 1, z: 1} 456 | m_Children: [] 457 | m_Father: {fileID: 1465759395} 458 | m_RootOrder: 3 459 | --- !u!114 &1635008159 460 | MonoBehaviour: 461 | m_ObjectHideFlags: 0 462 | m_PrefabParentObject: {fileID: 0} 463 | m_PrefabInternal: {fileID: 0} 464 | m_GameObject: {fileID: 1635008157} 465 | m_Enabled: 1 466 | m_EditorHideFlags: 0 467 | m_Script: {fileID: 11500000, guid: ab8b8f77d5c392c47ac55607db853c3b, type: 3} 468 | m_Name: 469 | m_EditorClassIdentifier: 470 | --- !u!23 &1635008160 471 | MeshRenderer: 472 | m_ObjectHideFlags: 0 473 | m_PrefabParentObject: {fileID: 0} 474 | m_PrefabInternal: {fileID: 0} 475 | m_GameObject: {fileID: 1635008157} 476 | m_Enabled: 1 477 | m_CastShadows: 1 478 | m_ReceiveShadows: 1 479 | m_Materials: 480 | - {fileID: 2100000, guid: bc7794acaef8e9940b7b4f1acd9f11a6, type: 2} 481 | m_SubsetIndices: 482 | m_StaticBatchRoot: {fileID: 0} 483 | m_UseLightProbes: 1 484 | m_ReflectionProbeUsage: 1 485 | m_ProbeAnchor: {fileID: 0} 486 | m_ScaleInLightmap: 1 487 | m_PreserveUVs: 1 488 | m_IgnoreNormalsForChartDetection: 0 489 | m_ImportantGI: 0 490 | m_MinimumChartSize: 4 491 | m_AutoUVMaxDistance: 0.5 492 | m_AutoUVMaxAngle: 89 493 | m_LightmapParameters: {fileID: 0} 494 | m_SortingLayerID: 0 495 | m_SortingOrder: 0 496 | --- !u!135 &1635008161 497 | SphereCollider: 498 | m_ObjectHideFlags: 0 499 | m_PrefabParentObject: {fileID: 0} 500 | m_PrefabInternal: {fileID: 0} 501 | m_GameObject: {fileID: 1635008157} 502 | m_Material: {fileID: 0} 503 | m_IsTrigger: 0 504 | m_Enabled: 1 505 | serializedVersion: 2 506 | m_Radius: 0.5 507 | m_Center: {x: 0, y: 0, z: 0} 508 | --- !u!33 &1635008162 509 | MeshFilter: 510 | m_ObjectHideFlags: 0 511 | m_PrefabParentObject: {fileID: 0} 512 | m_PrefabInternal: {fileID: 0} 513 | m_GameObject: {fileID: 1635008157} 514 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 515 | --- !u!54 &1635008163 516 | Rigidbody: 517 | m_ObjectHideFlags: 0 518 | m_PrefabParentObject: {fileID: 0} 519 | m_PrefabInternal: {fileID: 0} 520 | m_GameObject: {fileID: 1635008157} 521 | serializedVersion: 2 522 | m_Mass: 1 523 | m_Drag: 0 524 | m_AngularDrag: 0.05 525 | m_UseGravity: 1 526 | m_IsKinematic: 0 527 | m_Interpolate: 0 528 | m_Constraints: 0 529 | m_CollisionDetection: 0 530 | --- !u!1 &1677146740 531 | GameObject: 532 | m_ObjectHideFlags: 0 533 | m_PrefabParentObject: {fileID: 0} 534 | m_PrefabInternal: {fileID: 0} 535 | serializedVersion: 4 536 | m_Component: 537 | - 4: {fileID: 1677146741} 538 | - 114: {fileID: 1677146742} 539 | m_Layer: 0 540 | m_Name: MainPipeline 541 | m_TagString: Untagged 542 | m_Icon: {fileID: 0} 543 | m_NavMeshLayer: 0 544 | m_StaticEditorFlags: 0 545 | m_IsActive: 1 546 | --- !u!4 &1677146741 547 | Transform: 548 | m_ObjectHideFlags: 0 549 | m_PrefabParentObject: {fileID: 0} 550 | m_PrefabInternal: {fileID: 0} 551 | m_GameObject: {fileID: 1677146740} 552 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 553 | m_LocalPosition: {x: 1.274865, y: -0.45671225, z: -0.16042766} 554 | m_LocalScale: {x: 1, y: 1, z: 1} 555 | m_Children: 556 | - {fileID: 2090992392} 557 | - {fileID: 1465759395} 558 | m_Father: {fileID: 0} 559 | m_RootOrder: 1 560 | --- !u!114 &1677146742 561 | MonoBehaviour: 562 | m_ObjectHideFlags: 0 563 | m_PrefabParentObject: {fileID: 0} 564 | m_PrefabInternal: {fileID: 0} 565 | m_GameObject: {fileID: 1677146740} 566 | m_Enabled: 1 567 | m_EditorHideFlags: 0 568 | m_Script: {fileID: 11500000, guid: e9dd2630f1bae86449921fd273d3682e, type: 3} 569 | m_Name: 570 | m_EditorClassIdentifier: 571 | --- !u!1 &1909702042 572 | GameObject: 573 | m_ObjectHideFlags: 0 574 | m_PrefabParentObject: {fileID: 0} 575 | m_PrefabInternal: {fileID: 0} 576 | serializedVersion: 4 577 | m_Component: 578 | - 4: {fileID: 1909702043} 579 | - 114: {fileID: 1909702044} 580 | m_Layer: 0 581 | m_Name: Labyrinth 582 | m_TagString: Untagged 583 | m_Icon: {fileID: 0} 584 | m_NavMeshLayer: 0 585 | m_StaticEditorFlags: 0 586 | m_IsActive: 1 587 | --- !u!4 &1909702043 588 | Transform: 589 | m_ObjectHideFlags: 0 590 | m_PrefabParentObject: {fileID: 0} 591 | m_PrefabInternal: {fileID: 0} 592 | m_GameObject: {fileID: 1909702042} 593 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 594 | m_LocalPosition: {x: -21.582792, y: -32.088043, z: -43.658775} 595 | m_LocalScale: {x: 100, y: 100, z: 100} 596 | m_Children: [] 597 | m_Father: {fileID: 1465759395} 598 | m_RootOrder: 0 599 | --- !u!114 &1909702044 600 | MonoBehaviour: 601 | m_ObjectHideFlags: 0 602 | m_PrefabParentObject: {fileID: 0} 603 | m_PrefabInternal: {fileID: 0} 604 | m_GameObject: {fileID: 1909702042} 605 | m_Enabled: 1 606 | m_EditorHideFlags: 0 607 | m_Script: {fileID: 11500000, guid: 799d0e7cc1d44a84ebd7f72a1ce4f3e5, type: 3} 608 | m_Name: 609 | m_EditorClassIdentifier: 610 | width: 16 611 | brickSize: 2 612 | spaceBetweenBricks: 1 613 | --- !u!1 &1962897388 614 | GameObject: 615 | m_ObjectHideFlags: 0 616 | m_PrefabParentObject: {fileID: 0} 617 | m_PrefabInternal: {fileID: 0} 618 | serializedVersion: 4 619 | m_Component: 620 | - 4: {fileID: 1962897389} 621 | - 114: {fileID: 1962897390} 622 | m_Layer: 0 623 | m_Name: CheckIfOverControls 624 | m_TagString: Untagged 625 | m_Icon: {fileID: 0} 626 | m_NavMeshLayer: 0 627 | m_StaticEditorFlags: 0 628 | m_IsActive: 1 629 | --- !u!4 &1962897389 630 | Transform: 631 | m_ObjectHideFlags: 0 632 | m_PrefabParentObject: {fileID: 0} 633 | m_PrefabInternal: {fileID: 0} 634 | m_GameObject: {fileID: 1962897388} 635 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 636 | m_LocalPosition: {x: 0, y: 0, z: 0} 637 | m_LocalScale: {x: 1, y: 1, z: 1} 638 | m_Children: [] 639 | m_Father: {fileID: 263256365} 640 | m_RootOrder: 0 641 | --- !u!114 &1962897390 642 | MonoBehaviour: 643 | m_ObjectHideFlags: 0 644 | m_PrefabParentObject: {fileID: 0} 645 | m_PrefabInternal: {fileID: 0} 646 | m_GameObject: {fileID: 1962897388} 647 | m_Enabled: 1 648 | m_EditorHideFlags: 0 649 | m_Script: {fileID: 11500000, guid: cc9d011658040d24a8a790b21889814d, type: 3} 650 | m_Name: 651 | m_EditorClassIdentifier: 652 | --- !u!1 &2090992387 653 | GameObject: 654 | m_ObjectHideFlags: 0 655 | m_PrefabParentObject: {fileID: 0} 656 | m_PrefabInternal: {fileID: 0} 657 | serializedVersion: 4 658 | m_Component: 659 | - 4: {fileID: 2090992392} 660 | - 20: {fileID: 2090992391} 661 | - 92: {fileID: 2090992390} 662 | - 124: {fileID: 2090992389} 663 | - 81: {fileID: 2090992388} 664 | - 114: {fileID: 2090992393} 665 | m_Layer: 0 666 | m_Name: Camera 667 | m_TagString: MainCamera 668 | m_Icon: {fileID: 0} 669 | m_NavMeshLayer: 0 670 | m_StaticEditorFlags: 0 671 | m_IsActive: 1 672 | --- !u!81 &2090992388 673 | AudioListener: 674 | m_ObjectHideFlags: 0 675 | m_PrefabParentObject: {fileID: 0} 676 | m_PrefabInternal: {fileID: 0} 677 | m_GameObject: {fileID: 2090992387} 678 | m_Enabled: 1 679 | --- !u!124 &2090992389 680 | Behaviour: 681 | m_ObjectHideFlags: 0 682 | m_PrefabParentObject: {fileID: 0} 683 | m_PrefabInternal: {fileID: 0} 684 | m_GameObject: {fileID: 2090992387} 685 | m_Enabled: 1 686 | --- !u!92 &2090992390 687 | Behaviour: 688 | m_ObjectHideFlags: 0 689 | m_PrefabParentObject: {fileID: 0} 690 | m_PrefabInternal: {fileID: 0} 691 | m_GameObject: {fileID: 2090992387} 692 | m_Enabled: 1 693 | --- !u!20 &2090992391 694 | Camera: 695 | m_ObjectHideFlags: 0 696 | m_PrefabParentObject: {fileID: 0} 697 | m_PrefabInternal: {fileID: 0} 698 | m_GameObject: {fileID: 2090992387} 699 | m_Enabled: 1 700 | serializedVersion: 2 701 | m_ClearFlags: 1 702 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844} 703 | m_NormalizedViewPortRect: 704 | serializedVersion: 2 705 | x: 0 706 | y: 0 707 | width: 1 708 | height: 1 709 | near clip plane: 0.3 710 | far clip plane: 1000 711 | field of view: 60 712 | orthographic: 0 713 | orthographic size: 5 714 | m_Depth: -1 715 | m_CullingMask: 716 | serializedVersion: 2 717 | m_Bits: 4294967295 718 | m_RenderingPath: -1 719 | m_TargetTexture: {fileID: 0} 720 | m_TargetDisplay: 0 721 | m_TargetEye: 3 722 | m_HDR: 0 723 | m_OcclusionCulling: 1 724 | m_StereoConvergence: 10 725 | m_StereoSeparation: 0.022 726 | m_StereoMirrorMode: 0 727 | --- !u!4 &2090992392 728 | Transform: 729 | m_ObjectHideFlags: 0 730 | m_PrefabParentObject: {fileID: 0} 731 | m_PrefabInternal: {fileID: 0} 732 | m_GameObject: {fileID: 2090992387} 733 | m_LocalRotation: {x: 0.106874146, y: 0.73503333, z: -0.11922802, w: 0.658854} 734 | m_LocalPosition: {x: -20.77768, y: 6.954229, z: 1.9041678} 735 | m_LocalScale: {x: 1, y: 1, z: 1} 736 | m_Children: [] 737 | m_Father: {fileID: 1677146741} 738 | m_RootOrder: 0 739 | --- !u!114 &2090992393 740 | MonoBehaviour: 741 | m_ObjectHideFlags: 0 742 | m_PrefabParentObject: {fileID: 0} 743 | m_PrefabInternal: {fileID: 0} 744 | m_GameObject: {fileID: 2090992387} 745 | m_Enabled: 1 746 | m_EditorHideFlags: 0 747 | m_Script: {fileID: 11500000, guid: 7451a8b9139250c4d95a7af29cd5041c, type: 3} 748 | m_Name: 749 | m_EditorClassIdentifier: 750 | --- !u!1 &2102341296 751 | GameObject: 752 | m_ObjectHideFlags: 0 753 | m_PrefabParentObject: {fileID: 0} 754 | m_PrefabInternal: {fileID: 0} 755 | serializedVersion: 4 756 | m_Component: 757 | - 4: {fileID: 2102341297} 758 | - 33: {fileID: 2102341302} 759 | - 135: {fileID: 2102341301} 760 | - 23: {fileID: 2102341300} 761 | - 114: {fileID: 2102341299} 762 | - 54: {fileID: 2102341298} 763 | m_Layer: 0 764 | m_Name: Sphere 765 | m_TagString: Untagged 766 | m_Icon: {fileID: 0} 767 | m_NavMeshLayer: 0 768 | m_StaticEditorFlags: 0 769 | m_IsActive: 1 770 | --- !u!4 &2102341297 771 | Transform: 772 | m_ObjectHideFlags: 0 773 | m_PrefabParentObject: {fileID: 0} 774 | m_PrefabInternal: {fileID: 0} 775 | m_GameObject: {fileID: 2102341296} 776 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 777 | m_LocalPosition: {x: 0, y: 0, z: 0.03270893} 778 | m_LocalScale: {x: 0.01, y: 0.01, z: 0.01} 779 | m_Children: [] 780 | m_Father: {fileID: 263256365} 781 | m_RootOrder: 3 782 | --- !u!54 &2102341298 783 | Rigidbody: 784 | m_ObjectHideFlags: 0 785 | m_PrefabParentObject: {fileID: 0} 786 | m_PrefabInternal: {fileID: 0} 787 | m_GameObject: {fileID: 2102341296} 788 | serializedVersion: 2 789 | m_Mass: 1 790 | m_Drag: 0.02 791 | m_AngularDrag: 0.05 792 | m_UseGravity: 1 793 | m_IsKinematic: 0 794 | m_Interpolate: 0 795 | m_Constraints: 0 796 | m_CollisionDetection: 0 797 | --- !u!114 &2102341299 798 | MonoBehaviour: 799 | m_ObjectHideFlags: 0 800 | m_PrefabParentObject: {fileID: 0} 801 | m_PrefabInternal: {fileID: 0} 802 | m_GameObject: {fileID: 2102341296} 803 | m_Enabled: 1 804 | m_EditorHideFlags: 0 805 | m_Script: {fileID: 11500000, guid: 39a275dafda818f4a85efa30ba0c32f7, type: 3} 806 | m_Name: 807 | m_EditorClassIdentifier: 808 | --- !u!23 &2102341300 809 | MeshRenderer: 810 | m_ObjectHideFlags: 0 811 | m_PrefabParentObject: {fileID: 0} 812 | m_PrefabInternal: {fileID: 0} 813 | m_GameObject: {fileID: 2102341296} 814 | m_Enabled: 1 815 | m_CastShadows: 1 816 | m_ReceiveShadows: 1 817 | m_Materials: 818 | - {fileID: 2100000, guid: 9aba3d418b89a0c45b6753a1aaa27bde, type: 2} 819 | m_SubsetIndices: 820 | m_StaticBatchRoot: {fileID: 0} 821 | m_UseLightProbes: 1 822 | m_ReflectionProbeUsage: 1 823 | m_ProbeAnchor: {fileID: 0} 824 | m_ScaleInLightmap: 1 825 | m_PreserveUVs: 1 826 | m_IgnoreNormalsForChartDetection: 0 827 | m_ImportantGI: 0 828 | m_MinimumChartSize: 4 829 | m_AutoUVMaxDistance: 0.5 830 | m_AutoUVMaxAngle: 89 831 | m_LightmapParameters: {fileID: 0} 832 | m_SortingLayerID: 0 833 | m_SortingOrder: 0 834 | --- !u!135 &2102341301 835 | SphereCollider: 836 | m_ObjectHideFlags: 0 837 | m_PrefabParentObject: {fileID: 0} 838 | m_PrefabInternal: {fileID: 0} 839 | m_GameObject: {fileID: 2102341296} 840 | m_Material: {fileID: 0} 841 | m_IsTrigger: 0 842 | m_Enabled: 1 843 | serializedVersion: 2 844 | m_Radius: 0.5 845 | m_Center: {x: 0, y: 0, z: 0} 846 | --- !u!33 &2102341302 847 | MeshFilter: 848 | m_ObjectHideFlags: 0 849 | m_PrefabParentObject: {fileID: 0} 850 | m_PrefabInternal: {fileID: 0} 851 | m_GameObject: {fileID: 2102341296} 852 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 853 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/MonsterChase.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71a4a43730f29814b8b7e518d864bda7 3 | timeCreated: 1455205570 4 | licenseType: Free 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/MonsterMaterial.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: MonsterMaterial 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | data: 19 | first: 20 | name: _MainTex 21 | second: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | data: 26 | first: 27 | name: _BumpMap 28 | second: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | data: 33 | first: 34 | name: _DetailNormalMap 35 | second: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | data: 40 | first: 41 | name: _ParallaxMap 42 | second: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | data: 47 | first: 48 | name: _OcclusionMap 49 | second: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | data: 54 | first: 55 | name: _EmissionMap 56 | second: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | data: 61 | first: 62 | name: _DetailMask 63 | second: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | data: 68 | first: 69 | name: _DetailAlbedoMap 70 | second: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | data: 75 | first: 76 | name: _MetallicGlossMap 77 | second: 78 | m_Texture: {fileID: 0} 79 | m_Scale: {x: 1, y: 1} 80 | m_Offset: {x: 0, y: 0} 81 | m_Floats: 82 | data: 83 | first: 84 | name: _SrcBlend 85 | second: 1 86 | data: 87 | first: 88 | name: _DstBlend 89 | second: 0 90 | data: 91 | first: 92 | name: _Cutoff 93 | second: 0.5 94 | data: 95 | first: 96 | name: _Parallax 97 | second: 0.02 98 | data: 99 | first: 100 | name: _ZWrite 101 | second: 1 102 | data: 103 | first: 104 | name: _Glossiness 105 | second: 0.5 106 | data: 107 | first: 108 | name: _BumpScale 109 | second: 1 110 | data: 111 | first: 112 | name: _OcclusionStrength 113 | second: 1 114 | data: 115 | first: 116 | name: _DetailNormalMapScale 117 | second: 1 118 | data: 119 | first: 120 | name: _UVSec 121 | second: 0 122 | data: 123 | first: 124 | name: _Mode 125 | second: 0 126 | data: 127 | first: 128 | name: _Metallic 129 | second: 0 130 | m_Colors: 131 | data: 132 | first: 133 | name: _EmissionColor 134 | second: {r: 0, g: 0, b: 0, a: 1} 135 | data: 136 | first: 137 | name: _Color 138 | second: {r: 0.9558824, g: 0.035142712, b: 0.035142712, a: 1} 139 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/MonsterMaterial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc7794acaef8e9940b7b4f1acd9f11a6 3 | timeCreated: 1456349331 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Player.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using PowerInject; 4 | namespace Uhyre1 5 | { 6 | 7 | [Insert] 8 | public class Player : MonoBehaviour 9 | { 10 | float moveStep = 0.1f; 11 | [Inject] 12 | ISelectedMoves controls; 13 | [Inject] 14 | Labyrinth labyrinth; 15 | [Inject] 16 | PointsKeeper pointsKeeper; 17 | Rigidbody actor; 18 | int moveForce = 100; 19 | void move(float x, float z) 20 | { 21 | var pos = transform.position; 22 | var force = new Vector3(x, 0, z) * moveForce; 23 | actor.AddForce(force); 24 | 25 | } 26 | 27 | void moveForward() 28 | { 29 | move(moveStep, 0); 30 | } 31 | 32 | void moveBack() 33 | { 34 | move(-moveStep, 0); 35 | } 36 | 37 | void moveLeft() 38 | { 39 | move(0, moveStep); 40 | } 41 | 42 | void moveRight() 43 | { 44 | move(0, -moveStep); 45 | } 46 | 47 | public void FixedUpdate() 48 | { 49 | var move = controls.getControl(); 50 | 51 | if (move.Contains("forward")) 52 | { 53 | moveForward(); 54 | } 55 | if (move.Contains("back")) 56 | { 57 | moveBack(); 58 | } 59 | if (move.Contains("left")) 60 | { 61 | moveLeft(); 62 | } 63 | if (move.Contains("right")) 64 | { 65 | moveRight(); 66 | } 67 | 68 | } 69 | 70 | [OnInjected] 71 | public void InitPlayer() 72 | { 73 | var x = labyrinth.transform.position.x + 1; 74 | var y = labyrinth.transform.position.y; 75 | var z = labyrinth.transform.position.z + 3; 76 | this.transform.position = new Vector3(x, y, z); 77 | actor = GetComponent(); 78 | } 79 | 80 | void OnTriggerEnter(Collider collision) 81 | { 82 | 83 | if (collision.gameObject.GetComponent()) 84 | { 85 | 86 | collision.gameObject.active = false; 87 | pointsKeeper.addPoints(5); 88 | labyrinth.NumberOfDots -= 1; 89 | } 90 | } 91 | 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/Player.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39a275dafda818f4a85efa30ba0c32f7 3 | timeCreated: 1455208325 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/PointsKeeper.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | public class PointsKeeper 5 | { 6 | int total; 7 | public void addPoints(int points) 8 | { 9 | total += points; 10 | } 11 | 12 | public int getTotal() 13 | { 14 | return total; 15 | } 16 | } 17 | 18 | 19 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/PointsKeeper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad0d01c5ebe8af74b9fc9112182f3b29 3 | timeCreated: 1456405134 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/SelectedMovesFromKeyboard.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | using PowerInject; 6 | namespace Uhyre1 7 | { 8 | [Insert(Typed = typeof(ISelectedMoves))] 9 | public class SelectedMovesFromKeyboard : MonoBehaviour, ISelectedMoves 10 | { 11 | public List getControl() 12 | { 13 | var result = new List(); 14 | if (Input.GetKey(KeyCode.UpArrow)) 15 | { 16 | result.Add("forward"); 17 | } 18 | if (Input.GetKey(KeyCode.DownArrow)) 19 | { 20 | result.Add("back"); 21 | } 22 | if (Input.GetKey(KeyCode.LeftArrow)) 23 | { 24 | result.Add("left"); 25 | } 26 | if (Input.GetKey(KeyCode.RightArrow)) 27 | { 28 | result.Add("right"); 29 | } 30 | 31 | return result; 32 | } 33 | } 34 | } 35 | 36 | -------------------------------------------------------------------------------- /DemoScenes/MonsterChase/SelectedMovesFromKeyboard.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92d5b638c202d3748ac523fdaba098ad 3 | timeCreated: 1455401492 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Field.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | public class Field 9 | { 10 | public IKey key; 11 | public FieldInfo fieldInfo; 12 | public Field(FieldInfo f, IKey k) 13 | { 14 | fieldInfo = f; 15 | key = k; 16 | } 17 | public String getName() 18 | { 19 | return fieldInfo.Name; 20 | } 21 | } 22 | 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /Field.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: adab9907295d23943a8d075b8c6a4295 3 | timeCreated: 1455710924 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /FinalValue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace PowerInject 7 | { 8 | public class FinalValue 9 | { 10 | public object obj; 11 | public IKey key; 12 | public FinalValue(IKey key, object obj) 13 | { 14 | this.key = key; 15 | this.obj = obj; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /FinalValue.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3d38a8e57c83c542a05f95cb8f3bd0b 3 | timeCreated: 1455710924 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /FunctionObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | public class FunctionObject : Invokeable 9 | { 10 | protected MethodInfo methodInfo; 11 | protected object lambda; 12 | public FunctionObject(object lambda) 13 | { 14 | this.lambda = lambda; 15 | methodInfo = lambda.GetType().GetMethods().Where(a => a.Name == "Invoke").First(); 16 | } 17 | public object invoke(object[] args) 18 | { 19 | return getMethodInfo().Invoke(lambda, args); 20 | } 21 | public IKey getKey() 22 | { 23 | return null; 24 | } 25 | public MethodInfo getMethodInfo() 26 | { 27 | return methodInfo; 28 | } 29 | public String getMethodName() { 30 | return methodInfo.Name; 31 | } 32 | } 33 | } 34 | 35 | -------------------------------------------------------------------------------- /FunctionObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a31134c6ade1154a904e94138f7c43a 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /IKey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace PowerInject 7 | { 8 | public interface IKey 9 | { 10 | Boolean sameAs(IKey key); 11 | String getCode(); 12 | 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /IKey.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a17f660b29679947b67b734ef7b786c 3 | timeCreated: 1455710923 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /ILogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | 7 | namespace PowerInject { 8 | public interface IPipelineLogger 9 | { 10 | void logException(String message,Exception e); 11 | void logWarning(object message); 12 | void logMessage(object message); 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /ILogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f10eadaa2cd66624d9a0bc41adbc8128 3 | timeCreated: 1455713018 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Invokeable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | public interface Invokeable 9 | { 10 | object invoke(object[] args); 11 | MethodInfo getMethodInfo(); 12 | IKey getKey(); 13 | String getMethodName(); 14 | } 15 | } -------------------------------------------------------------------------------- /Invokeable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef92e67fecbccee479322fda7ecfe17b 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /KeyProducer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | using PowerInject; 7 | public class KeyProducer 8 | { 9 | public static IKey produceKey(Type t, Produce produce) 10 | { 11 | if (produce.Named != null) 12 | { 13 | return new NamedTypeKey(produce.Named, t); 14 | } 15 | else 16 | { 17 | return new TypeKey(t); 18 | } 19 | } 20 | 21 | public static IKey produceKey(PropertyInfo info) 22 | { 23 | var type = info.PropertyType; 24 | 25 | var inject = ReflectionUtils.getAttributeInfo(info); 26 | var named = ReflectionUtils.getAttributeInfo(info); 27 | var typed = ReflectionUtils.getAttributeInfo(info); 28 | if (typed != null) 29 | { 30 | type = typed.type; 31 | } 32 | if (named != null) 33 | { 34 | return new NamedTypeKey(named.name, type); 35 | } 36 | else 37 | { 38 | return new TypeKey(type); 39 | } 40 | 41 | 42 | } 43 | public static IKey produceKey(FieldInfo info) 44 | { 45 | var type = info.FieldType; 46 | 47 | var inject = ReflectionUtils.getAttributeInfo(info); 48 | var named = ReflectionUtils.getAttributeInfo(info); 49 | var typed = ReflectionUtils.getAttributeInfo(info); 50 | if (typed != null) 51 | { 52 | type = typed.type; 53 | } 54 | if (named != null) 55 | { 56 | return new NamedTypeKey(named.name, type); 57 | } 58 | else 59 | { 60 | return new TypeKey(type); 61 | } 62 | 63 | 64 | } 65 | public static IKey getInsertKeyForType(Type type, Insert produce) 66 | { 67 | TypeKey typeKey = null; 68 | if (produce.Named != null) 69 | { 70 | typeKey = new NamedTypeKey(produce.Named, type); 71 | 72 | } 73 | else 74 | { 75 | typeKey = new TypeKey(type); 76 | } 77 | return typeKey; 78 | } 79 | public static IKey getInsertKey(object obj, Insert insert) 80 | { 81 | Type type = null; 82 | if (insert.Typed != null) 83 | { 84 | return getInsertKeyForType(insert.Typed, insert); 85 | } 86 | else { 87 | return getInsertKeyForType(obj.GetType(), insert); 88 | } 89 | 90 | 91 | } 92 | 93 | 94 | public static IKey getParameterKey(ParameterInfo info) 95 | { 96 | var type = info.ParameterType; 97 | var named = ReflectionUtils.getAttributeInfo(info); 98 | var onlyType = ReflectionUtils.getAttributeInfo(info); 99 | if(onlyType!=null) { 100 | if(onlyType.type!=null) { 101 | type = onlyType.type; 102 | } 103 | } 104 | if (named != null) 105 | { 106 | 107 | return new NamedTypeKey(named.name,type); 108 | }else { 109 | return new TypeKey(type); 110 | } 111 | 112 | } 113 | public static List getInsertKeys(object obj) 114 | { 115 | var inserts = ReflectionUtils.getAttributeInfos(obj).ToList(); 116 | return inserts.Select(insert => getInsertKey(obj,insert)).ToList(); 117 | } 118 | public static IKey getProduceKey(MethodInfo info) 119 | { 120 | var p = ReflectionUtils.getAttributeInfo(info); 121 | return produceKey(info.ReturnType, p); 122 | 123 | } 124 | } 125 | 126 | -------------------------------------------------------------------------------- /KeyProducer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2a20e4ce82c8945439e5209f436464f8 3 | timeCreated: 1455710923 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /MethodInfoObject.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | public class MethodInfoObject : Invokeable 9 | { 10 | public object obj; 11 | public MethodInfo info; 12 | IKey key; 13 | public MethodInfoObject(object obj, MethodInfo info,IKey key) 14 | { 15 | this.obj = obj; 16 | this.info = info; 17 | this.key = key; 18 | } 19 | 20 | public object invoke(object[] args) 21 | { 22 | return info.Invoke(obj, args); 23 | } 24 | public IKey getKey() { 25 | return key; 26 | } 27 | public MethodInfo getMethodInfo() 28 | { 29 | return info; 30 | } 31 | public String getMethodName() 32 | { 33 | return info.Name; 34 | } 35 | } 36 | } -------------------------------------------------------------------------------- /MethodInfoObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a799015c36177d4d8c2edf6a08f7ff2 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /NamedTypeKey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace PowerInject 7 | { 8 | public class NamedTypeKey : TypeKey 9 | { 10 | public String name; 11 | public NamedTypeKey(String name, Type t) 12 | : base(t) 13 | { 14 | this.name = name; 15 | } 16 | 17 | public override string getCode() 18 | { 19 | return "NamedTypeKey:" + name + ":" + base.getCode(); 20 | } 21 | public override Boolean sameAs(IKey key) 22 | { 23 | if (base.sameAs(key)) 24 | { 25 | if (key.GetType() == typeof(NamedTypeKey)) 26 | { 27 | var typeKeyWithName = (NamedTypeKey)key; 28 | return typeKeyWithName.name == name; 29 | } 30 | else 31 | { 32 | return false; 33 | } 34 | 35 | } 36 | else 37 | { 38 | return false; 39 | } 40 | } 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /NamedTypeKey.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 752ede50b09373746b15c8369ad567d8 3 | timeCreated: 1455710923 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /PipelineContainer.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Reflection; 7 | 8 | 9 | 10 | namespace PowerInject 11 | { 12 | public interface Injector { 13 | void inject(object o); 14 | } 15 | [Insert (Typed=typeof(Injector))] 16 | public class PipelineContainer:Injector 17 | { 18 | List producers = new List(); 19 | List toBeInjected = new List(); 20 | 21 | Dictionary finalObjects = new Dictionary(); 22 | IPipelineLogger logger = new ConsoleLogger(); 23 | protected int index; 24 | public PipelineContainer() 25 | { 26 | } 27 | 28 | public PipelineContainer(IPipelineLogger logger) 29 | : this() 30 | { 31 | this.logger = logger; 32 | } 33 | 34 | protected String getWarning(String message) 35 | { 36 | return "PipelineIOC: " + message; 37 | } 38 | 39 | protected Exception getException(String message) 40 | { 41 | 42 | return new Exception(getWarning(message)); 43 | } 44 | 45 | public T getFinalObject() 46 | { 47 | var foundList = finalObjects.Values.Where(o => ReflectionUtils.sameType(typeof(T), o.obj.GetType())); 48 | if (foundList.Count() == 0) 49 | { 50 | 51 | return default(T); 52 | } 53 | else 54 | { 55 | return (T)foundList.First().obj; 56 | } 57 | } 58 | 59 | protected void addFinalObject(String key, FinalValue o,Boolean shouldBeInjected) 60 | { 61 | 62 | 63 | if (o.obj != null) 64 | { 65 | finalObjects[key] = o; 66 | if (shouldBeInjected) { 67 | toBeInjected.Add(o.obj); 68 | } 69 | 70 | } 71 | } 72 | 73 | public Dictionary getFinalObjectsMap() 74 | { 75 | return finalObjects; 76 | } 77 | 78 | public void addToFinalObjects(Dictionary values) 79 | { 80 | values.Keys.ToList().ForEach(x => addFinalObject(x, values[x], false)); 81 | } 82 | 83 | protected List getFinalObjectsThatFitsParameters(List parameters) 84 | { 85 | 86 | return parameters.Select(param => getFinalObjectByKey(param.key.getCode())).Where(a => a != null).Select(f => f.obj).ToList(); 87 | } 88 | 89 | protected void callProducer(Producer producer, List values) 90 | { 91 | var returnValue = producer.invoke(values.ToArray()); 92 | addFinalObject(producer.invokeable.getKey().getCode(), new FinalValue(producer.invokeable.getKey(), returnValue),true); 93 | 94 | } 95 | 96 | protected Producer runProducer(Producer producer) 97 | { 98 | try 99 | { 100 | var parameters = producer.getParameters(); 101 | var values = getFinalObjectsThatFitsParameters(parameters); 102 | if (values.Count == parameters.Count) 103 | { 104 | callProducer(producer, values); 105 | return producer; 106 | } 107 | else 108 | { 109 | return null; 110 | } 111 | } 112 | catch (Exception e) 113 | { 114 | logger.logException("Producer failed with: ", e); 115 | return null; 116 | } 117 | 118 | } 119 | 120 | public List getProducers() 121 | { 122 | return producers; 123 | } 124 | 125 | public List getSortedProducers() 126 | { 127 | producers.Sort(); 128 | return producers; 129 | } 130 | 131 | public List runProducers(List producers) 132 | { 133 | return producers.Select(p => runProducer(p)).ToList(); 134 | } 135 | 136 | public FinalValue getFinalObjectByKey(IKey key) 137 | { 138 | return getFinalObjectByKey(key.getCode()); 139 | } 140 | public FinalValue getFinalObjectByKey(String name) 141 | { 142 | if (finalObjects.ContainsKey(name)) 143 | { 144 | return finalObjects[name]; 145 | } 146 | else 147 | { 148 | return null; 149 | } 150 | } 151 | 152 | protected void addNewProducer(object orgObject, Invokeable inv) 153 | { 154 | producers.Add(new Producer(index, orgObject, inv)); 155 | index++; 156 | } 157 | 158 | public void printFinalObjects() { 159 | MonoBehaviour.print("FInAL OBJECTS"); 160 | finalObjects.Keys.ToList().ForEach(p => 161 | { 162 | var v = finalObjects[p]; 163 | MonoBehaviour.print(p + "->" + v); 164 | }); 165 | } 166 | protected void extractProducers(object o) { 167 | ReflectionUtils.extractProducers(o).ForEach(p => addNewProducer(o,p)); 168 | } 169 | 170 | 171 | protected void extractInsertKeys(object o) 172 | { 173 | 174 | var keys = KeyProducer.getInsertKeys(o); 175 | if (keys.Count() > 0) 176 | { 177 | keys.ForEach(key => 178 | { 179 | addFinalObject(key.getCode(), new FinalValue(key, o),true); 180 | 181 | }); 182 | } 183 | else 184 | { 185 | toBeInjected.Add(o); 186 | } 187 | } 188 | 189 | public void add(object obj) 190 | { 191 | ReflectionUtils.extractModules(obj).ForEach(x => add(x));//.ForEach(add); 192 | extractProducers(obj); 193 | extractInsertKeys(obj); 194 | } 195 | 196 | protected System.Type getProducedObjectType(object b) 197 | { 198 | var annotation = ReflectionUtils.getAttributeInfo(b); 199 | if (annotation != null) 200 | { 201 | if (annotation.Typed != null) 202 | { 203 | return annotation.Typed; 204 | 205 | } 206 | else 207 | { 208 | return b.GetType(); 209 | } 210 | } 211 | else 212 | { 213 | return b.GetType(); 214 | } 215 | } 216 | 217 | public void injectField(object obj, Field field) 218 | { 219 | var value = getFinalObjectByKey(field.key.getCode()); 220 | if (value != null) 221 | { 222 | try 223 | { 224 | field.fieldInfo.SetValue(obj, value.obj); 225 | } 226 | catch (Exception e) 227 | { 228 | logger.logException("Injection on object " + obj + " failed, field " + field.fieldInfo.Name, e); 229 | } 230 | } 231 | else 232 | { 233 | logger.logWarning("Could not find object for field '" + field.getName() + "' on object " + obj.GetType().FullName); 234 | } 235 | } 236 | public void injectProperty(object obj, Property property) 237 | { 238 | var value = getFinalObjectByKey(property.key.getCode()); 239 | if (value != null) 240 | { 241 | try 242 | { 243 | property.propertyInfo.SetValue(obj, value.obj,null); 244 | } 245 | catch (Exception e) 246 | { 247 | logger.logException("Injection on object " + obj + " failed, property " + property.getName(), e); 248 | } 249 | } 250 | else 251 | { 252 | logger.logWarning("Could not find object for property '" + property.getName() + "' on object " + obj.GetType().FullName); 253 | } 254 | } 255 | 256 | //********** 257 | public object createObject(Type parentObjectType, ConstructorInfo info) 258 | { 259 | if (info.DeclaringType == parentObjectType) 260 | { 261 | return null; 262 | } 263 | else 264 | { 265 | var cparams = info.GetParameters().ToList(); 266 | var values = ReflectionUtils.getParameters(cparams).Select(p => getFinalObjectByKey(p.key)).Where(fv => fv != null).Select(fv => fv.obj).ToList(); 267 | if (values.Count() == cparams.Count()) 268 | { 269 | return info.Invoke(values.ToArray()); 270 | } 271 | else 272 | { 273 | return null; 274 | } 275 | } 276 | 277 | 278 | 279 | } 280 | public void createNewInstance(object obj, FieldInfo field) 281 | { 282 | var constructors = ReflectionUtils.getConstructors(field.FieldType); 283 | Boolean notFound = true; 284 | var index = 0; 285 | var count = constructors.Count(); 286 | object newInstance = null; 287 | for (int i = 0; i < count; i++) 288 | { 289 | var constructor = constructors[i]; 290 | newInstance = createObject(obj.GetType(), constructor); 291 | if (newInstance != null) 292 | { 293 | break; 294 | } 295 | } 296 | if (newInstance != null) 297 | { 298 | field.SetValue(obj, newInstance); 299 | injectFields(newInstance); 300 | createNewInstances(newInstance); 301 | onInjected(newInstance); 302 | } 303 | 304 | } 305 | 306 | 307 | protected void createNewInstances(object obj) 308 | { 309 | try 310 | { 311 | var fieldsToCreate = ReflectionUtils.getNewInstances(obj); 312 | fieldsToCreate.ForEach(field => createNewInstance(obj, field)); 313 | } 314 | catch (Exception e) 315 | { 316 | logger.logException("Injection on object " + obj.GetType().FullName + "failed ", e); 317 | } 318 | } 319 | protected void injectFields(object obj) 320 | { 321 | try 322 | { 323 | var fields = ReflectionUtils.getFieldsToInject(obj); 324 | fields.ForEach(field => injectField(obj, field)); 325 | } 326 | catch (Exception e) 327 | { 328 | logger.logException("Injection on object " + obj.GetType().FullName + "failed ", e); 329 | } 330 | } 331 | protected void injectProperties(object obj) 332 | { 333 | try 334 | { 335 | 336 | var fields = ReflectionUtils.getPropertiesToInject(obj); 337 | fields.ForEach(field => injectProperty(obj, field)); 338 | 339 | } 340 | catch (Exception e) 341 | { 342 | logger.logException("Injection on object " + obj.GetType().FullName + "failed ", e); 343 | } 344 | } 345 | public List getProducersWithNoArguments() 346 | { 347 | return producers.Where(p => p.getArgumentTypeNames().Count() == 0).ToList(); 348 | } 349 | 350 | public List loop(List producers) 351 | { 352 | var ran = runProducers(producers).Where(r => r != null).ToList(); 353 | if (ran.Count() > 0) 354 | { 355 | var leftTorun = producers.Where((x) => !ran.Contains(x)).ToList(); 356 | return loop(leftTorun); 357 | } 358 | else 359 | { 360 | var leftTorun = producers.Where((x) => !ran.Contains(x)).ToList(); 361 | return leftTorun; 362 | } 363 | } 364 | 365 | public List GetFinalObjects() 366 | { 367 | return finalObjects.Values.ToList(); 368 | } 369 | protected void onInjected(object m) 370 | { 371 | 372 | try 373 | { 374 | var methods = ReflectionUtils.getOnInjectedMethods(m); 375 | 376 | methods.ForEach(method => 377 | { 378 | var cparams = method.GetParameters().ToList(); 379 | var values = ReflectionUtils.getParameters(cparams).Select(p => getFinalObjectByKey(p.key)).Where(fv => fv != null).Select(fv => fv.obj).ToList(); 380 | method.Invoke(m, values.ToArray()); 381 | //logger.logMessage("ON injected on " + m.ToString()); 382 | }); 383 | } 384 | catch (Exception e) 385 | { 386 | logger.logException("OnInjection call on object :" + m.GetType().FullName + " failed", e); 387 | } 388 | } 389 | 390 | protected void onInjected() 391 | { 392 | toBeInjected.ForEach(o => onInjected(o)); 393 | } 394 | 395 | 396 | public void inject(object obj) 397 | { 398 | injectInternal(obj); 399 | onInjected(obj); 400 | } 401 | protected void injectInternal(object obj) { 402 | injectFields(obj); 403 | injectProperties(obj); 404 | createNewInstances(obj); 405 | //onInjected(obj); 406 | } 407 | protected void injectAll() 408 | { 409 | toBeInjected.ForEach(obj => injectInternal(obj)); 410 | onInjected(); 411 | 412 | } 413 | 414 | public void run() 415 | { 416 | add(this); 417 | producers.Sort(); 418 | var ran = runProducers(getProducersWithNoArguments()); 419 | var leftTorun = producers.Where((x) => !ran.Contains(x)).ToList(); 420 | leftTorun = loop(leftTorun); 421 | leftTorun.ForEach(p => 422 | { 423 | logger.logWarning("Producer didn't run '"+p.getName()+"'"); 424 | }); 425 | injectAll(); 426 | 427 | } 428 | } 429 | } -------------------------------------------------------------------------------- /PipelineContainer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f0bbde23a1dde334ab581ecee7f9175f 3 | timeCreated: 1455402916 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /PowerInject.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net35 5 | 7.3 6 | 7 | 8 | 9 | bin\current\ 10 | 11 | 12 | 13 | 14 | ..\..\..\..\..\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /PowerPipeline.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using System.Linq; 5 | 6 | 7 | namespace PowerInject 8 | { 9 | public class PowerPipeline : MonoBehaviour 10 | { 11 | 12 | protected PipelineContainer pipeline; 13 | protected List getChildren(GameObject g) 14 | { 15 | if (!g.activeSelf) { 16 | return new List(); 17 | } 18 | var components = g.GetComponents().Where(x=>x!=null).Where(c => c.GetType() != typeof(PowerPipeline)).ToList();//.Where(c => ReflectionUtils.isAnnotatedWith(c, typeof(Module))).ToList(); 19 | var children = Utils.getChildren(g); 20 | children.ForEach((childGameObject) => 21 | { 22 | if (childGameObject != g && childGameObject.GetComponent() == null) 23 | { 24 | components.AddRange(getChildren(childGameObject)); 25 | } 26 | }); 27 | return components.Where(x=>x.enabled).ToList(); 28 | } 29 | 30 | protected List getBehaviors() 31 | { 32 | return getChildren(gameObject); 33 | } 34 | // Update is called once per frame 35 | 36 | public PowerPipeline getParentPipeline() 37 | { 38 | var parentTransform = gameObject.transform.parent; 39 | if (parentTransform != null) 40 | { 41 | return Utils.getFirstComponentInParent(parentTransform.gameObject); 42 | } 43 | else 44 | { 45 | return null; 46 | } 47 | } 48 | 49 | bool didRun = false; 50 | 51 | void run() 52 | { 53 | var parentPipeline = getParentPipeline(); 54 | if (parentPipeline == null) 55 | { 56 | run(new Dictionary()); 57 | } 58 | 59 | } 60 | 61 | void Start() 62 | { 63 | run(); 64 | } 65 | public void run(Dictionary arguments) 66 | { 67 | if (!didRun) 68 | { 69 | didRun = true; 70 | pipeline = new PipelineContainer(new UnityLogger()); 71 | pipeline.addToFinalObjects(arguments); 72 | var behaviors = getBehaviors().Where(b => ReflectionUtils.isAnnotatedWith(b) || ReflectionUtils.isAnnotatedWith(b)).ToList(); 73 | addToProducers(behaviors); 74 | pipeline.run(); 75 | runChildpipelines(); 76 | } 77 | } 78 | protected void runChildpipelines() 79 | { 80 | var childPipeLines = getChildPipelines(gameObject); 81 | childPipeLines.ForEach((p) => p.run(pipeline.getFinalObjectsMap())); 82 | } 83 | protected void addToProducers(List behaviors) 84 | { 85 | behaviors.ForEach(x => 86 | { 87 | pipeline.add(x); 88 | }); 89 | } 90 | 91 | 92 | 93 | protected List getChildPipelines(GameObject g) 94 | { 95 | 96 | List result = new List(); 97 | var pipeline = g.GetComponent(); 98 | if (pipeline != null && g != gameObject) 99 | { 100 | result.Add(pipeline); 101 | } 102 | else 103 | { 104 | var children = Utils.getChildren(g); 105 | children.ForEach(c => 106 | { 107 | result.AddRange(getChildPipelines(c)); 108 | }); 109 | } 110 | return result; 111 | 112 | } 113 | 114 | } 115 | } -------------------------------------------------------------------------------- /PowerPipeline.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9dd2630f1bae86449921fd273d3682e 3 | timeCreated: 1457712217 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Producer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | public class Producer : IComparable 9 | { 10 | public int index; 11 | public Invokeable invokeable; 12 | public object orgObj; 13 | public Producer(int index, object orgObj, Invokeable invokeable) { 14 | this.index = index; 15 | this.orgObj = orgObj; 16 | this.invokeable = invokeable; 17 | } 18 | public String getName() { 19 | return orgObj.GetType().FullName + ":" + invokeable.getMethodName(); 20 | } 21 | public object invoke(object[] arguments) 22 | { 23 | 24 | return invokeable.invoke(arguments); 25 | } 26 | 27 | public int CompareTo(Producer other) 28 | { 29 | if (other == null) 30 | { 31 | return -1; 32 | } 33 | else 34 | if (this.lessThan(other)) 35 | { 36 | return -1; 37 | } 38 | else 39 | { 40 | return 1; 41 | } 42 | } 43 | 44 | public Boolean lessThan(Producer other) 45 | { 46 | if (hasSomeOfTheSameArguments(other)) 47 | { 48 | if (hasSameReturnValueAsArguments() && !other.hasSameReturnValueAsArguments()) 49 | { 50 | return true; 51 | } 52 | if (other.hasSameReturnValueAsArguments() && !hasSameReturnValueAsArguments()) 53 | { 54 | return false; 55 | } 56 | 57 | 58 | } 59 | return this.index < other.index; 60 | } 61 | 62 | protected Boolean hasSameReturnValueAsArguments() 63 | { 64 | var returnValue = getReturnType(); 65 | var arguments = getArgumentTypeNames(); 66 | return arguments.Contains(returnValue); 67 | } 68 | 69 | protected MethodInfo getFunction() 70 | { 71 | 72 | return invokeable.getMethodInfo(); 73 | 74 | } 75 | protected String getReturnValue(MethodInfo m) 76 | { 77 | return m.ReturnType.FullName; 78 | } 79 | protected String getReturnType() 80 | { 81 | return getReturnValue(getFunction()); 82 | } 83 | 84 | public String getReturnTypeName() 85 | { 86 | return getFunction().ReturnType.FullName; 87 | } 88 | 89 | public void printArgs() 90 | { 91 | getArgumentTypeNames().ForEach(s => Console.Write(s)); 92 | Console.WriteLine("->" + getReturnType()); 93 | Console.WriteLine(); 94 | } 95 | public Boolean hasSomeOfTheSameArguments(Producer p) 96 | { 97 | var args1 = getArgumentTypeNames(); 98 | var args2 = p.getArgumentTypeNames(); 99 | var result = args1.Intersect(args2).Count() > 0; 100 | if (result) 101 | { 102 | var a = 23; 103 | } 104 | return result; 105 | } 106 | public List getArguments(MethodInfo m) 107 | { 108 | return m.GetParameters().Select(p => p.ParameterType.FullName).ToList(); 109 | } 110 | 111 | 112 | public List getArgumentTypeNames() 113 | { 114 | 115 | return getArguments(getFunction()); 116 | } 117 | 118 | public List getParameters() 119 | { 120 | return ReflectionUtils.getParameters(getFunction().GetParameters().ToList()); 121 | } 122 | } 123 | public class Parameter 124 | { 125 | public IKey key; 126 | public ParameterInfo info; 127 | public Parameter(ParameterInfo info, IKey key) 128 | { 129 | this.info = info; 130 | this.key = key; 131 | } 132 | 133 | } 134 | } 135 | 136 | 137 | -------------------------------------------------------------------------------- /Producer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09a52d5e971d5c24aa3d9848a43a395b 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Property.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | namespace PowerInject 7 | { 8 | 9 | public class Property 10 | { 11 | public IKey key; 12 | public PropertyInfo propertyInfo; 13 | public Property(PropertyInfo p, IKey k) 14 | { 15 | propertyInfo = p; 16 | key = k; 17 | } 18 | public String getName() 19 | { 20 | return propertyInfo.Name; 21 | } 22 | 23 | } 24 | } 25 | 26 | 27 | -------------------------------------------------------------------------------- /Property.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e9a12b2c9b69fe4180ad0d34cd76f37 3 | timeCreated: 1457712092 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ### PowerInject 3 | 4 | Power_Inject is a dependency injection framework specifically designed for Unity. It is designed to fit right into any Unity project because it does not require you to modify your existing code in any way. 5 | 6 | Everything is configured using attributes so you will not need to inherit from specific classes or similar intrusive behavior. Any existing project can be ported to Power_Inject gradually and as needed. 7 | Why would you need Power_Inject, or any other dependency injection framework, in Unity3D anyway ? in short, to allow objects that are normally too “far away from each to” to reference each other. 8 | 9 | When I say objects I mean both your MonoBehaviors as well as any other custom object. 10 | Unity3Ds “component model” is great for most cases, but what happens when you need to access an 11 | object not belonging to the same GameObject (as the one you are currently “in” )? This is where Power_Inject steps in. 12 | 13 | ### Setup 14 | 15 | Import the package into your project. Select a gameobject and add a PowerPipeline component to it. Any `MonoBehavior` that uses injection must be placed at this GameObject or anywhere below it in the scene graph hierarchy. 16 | 17 | A quick example of how to “produce” things and how to “inject” things 18 | 19 | ```csharp 20 | 21 | 22 | using PowerInject; 23 | 24 | [Insert] 25 | class Player:MonoBehaviour { 26 | void Update() {...} 27 | } 28 | ``` 29 | 30 | This sets up a “Player” object. Any ```MonoBehavior annotated with [Insert] is marked as an object that can be injected into other objects. It will also itself be injected. 31 | The Player object can now be accessed from any other object below the PowerPipeline component by using the [Inject] attribute 32 | 33 | ```csharp 34 | using PowerInject; 35 | [Insert] 36 | class SomeLevel:MonoBehaviour { 37 | [Inject] 38 | Player player;//receives player here 39 | } 40 | ``` 41 | 42 | 43 | You can use properties as well: 44 | 45 | ```csharp 46 | using PowerInject; 47 | [Insert] 48 | class SomeLevel:MonoBehaviour { 49 | [Inject] 50 | public Player player {get;set;};//receives player here 51 | } 52 | ``` 53 | 54 | The `SomeLevel` behavior receives the Player object and also makes itself available for other objects: 55 | ```csharp 56 | [Power] 57 | class DoSomeStuffWithLevel:MonoBehaviour { 58 | [Inject] 59 | SomeLevel level; 60 | void Update() { 61 | MonoBehaviour.print("We got player "+level.player+" here !"); 62 | } 63 | } 64 | ``` 65 | 66 | 67 | Note that in this case, the `DoSomeStuffWithLevel` class is not marked with `[Insert]`, but simply with the annotation `[Power]`. You should do that in cases where you do not want to make the object available for other objects, but simply want it to be injected. 68 | 69 | You must always mark your MonoBehaviors with either `[Insert]` or `[Power]` or the framework will not notice them. The reason is that you might have thousands of other MonBehaviors that you might not want to inject, and to save resources Power_Inject only considers monobehaviors marked with either [Insert] or [Power] as objects that need injection. 70 | 71 | This is basic injection, we will get back to more advanced forms of injections, named and typed, later. 72 | 73 | ### When will objects be available ? 74 | 75 | Dependency injection will be executed AFTER the monobehaviors Start() method. So you should not try to use any objects (that requires injection) in the Awake() or Start()methods. 76 | All objects will be available and fully injected on FixedUpdate and Update. 77 | But if you need a method similar to Start(), but where all objects are ready for use, you can attribute a method with the [OnInjected] attribute like this: 78 | 79 | ```csharp 80 | class Player { 81 | 82 | [Inject] 83 | IUserControls controls; 84 | 85 | [OnInjected] 86 | void init() 87 | { 88 | //The "controls" variable is now available. 89 | } 90 | } 91 | ``` 92 | 93 | This method will be executed AFTER Start() but BEFORE Update() and FixedUpdate(), so you can do any last minute initialization here. 94 | The method attributed with [OnInjected] must have zero parameters 95 | 96 | ### Producing objects 97 | You can produce objects using either the [Insert] attribute or the [Produce] attribute. The [Insert] attribute works, as mentioned, like this. 98 | 99 | ```csharp 100 | [Insert] 101 | class SomeMuchNeededBehavior:MonoBehaviour 102 | { 103 | } 104 | ```` 105 | But you can “produce” objects in another way as well 106 | Let’s say we have these two classes: 107 | 108 | ```csharp 109 | 110 | class BulletSpawner { 111 | //.. 112 | } 113 | class UserControls { 114 | //.. 115 | } 116 | ```` 117 | 118 | We want to create them and make them available for injection. 119 | ```csharp 120 | [Power] 121 | class HereWeCreateAlotOfObjects : MonoBehaviour 122 | { 123 | [Produce] 124 | BulletSpawner createBulletSpawner() { 125 | return new BulletSpawner(); 126 | } 127 | 128 | [Produce] 129 | UserControls createUserControls() { 130 | return new UserControls(); 131 | } 132 | } 133 | ``` 134 | 135 | Here we have a monobehavior which sole responsibility is to create other objects, using the “produce” tag. 136 | But what if some of our objects are dependent on other objects in the creation phase ? Lets say, we need a “Settings” object to be available before we can create a “UserControls” object. No worry, simply add the UserSettings to the “producer signature”, like this: 137 | ```csharp 138 | [Produce] 139 | UserControls createUserControls(Settings settings) { 140 | var speed = settings.speed; 141 | return new UserControls(speed); 142 | } 143 | 144 | ``` 145 | You can receive as many objects as you want: 146 | ```csharp 147 | [Produce] 148 | UserControls createUserControls(Settings settings,SomeStuff stuff) { 149 | return new UserControls(settings,stuff); 150 | } 151 | ``` 152 | 153 | Of course, this producer will not be called until other producers methods somewhere produced a Settings objects and a SomeStuff object. 154 | The [Insert] attribute is a convenience attribute. Instead of writing this: 155 | ```csharp 156 | [Power] 157 | class Player:MonoBehaviour { 158 | [Produce] Player letsGetThePlayer() { 159 | return this; 160 | } 161 | } 162 | ``` 163 | 164 | It’s quicker to write this: 165 | ```csharp 166 | [Insert] 167 | class Player:MonoBehaviour { 168 | 169 | } 170 | ``` 171 | 172 | It works in the exact same way. 173 | 174 | ### Interface composition 175 | In many cases you would like to implement some functionality but you are not quite sure of the scope of it. 176 | You might have an idea of it, or you at least partly know what it should do. 177 | The goal is to create a single interface implementation that contains the desired functionality, but the problem is that that the functionality, and the necessary data needed to create it, might be scattered out all over the application. 178 | Let’s say we have a IUserControl interface, which has a function that returns output like “move forward, go back, fire” etc. The basic implementation is pretty straightforward, but what if you need to do special checks for other things that you cannot even imagine at this time of development ? You might want to, at a later stage, check if the player are low on energy, and perhaps can’t use the command “fire” anymore.. or on level 21, you can’t fire your weapon. But you do not want to cramp all that functionality into one single class because it will be huge and difficult to maintain. 179 | Let’s define the interface: 180 | ```csharp 181 | interface IUserControls { 182 | public string getCommand(); 183 | } 184 | ``` 185 | 186 | 187 | And an implementation that reads the keyboard: 188 | ```csharp 189 | class KeyboardUserControls:IUserControls { 190 | public String getCommand() 191 | { 192 | if (Input.GetKey(KeyCode.UpArrow)) 193 | { 194 | return "move_forward"; 195 | } 196 | //etc.. 197 | return "";//nothing was selected 198 | } 199 | } 200 | ``` 201 | 202 | At first you make the KeyboardUserControls available: 203 | ```csharp 204 | [Power] 205 | class SomeBasicSetupBevavior : MonoBehaviour 206 | { 207 | [Produce] 208 | IUserControls createControls() { 209 | return new KeyboardUserControls(); 210 | } 211 | } 212 | ``` 213 | 214 | 215 | At some point in the future, you realize that you want to expand this interface to contain more stuff, but you also want to keep the KeyboardUserControls simple, honoring the Single Responsibility principle as much as possible, and ensuring that, when your project has grown to two million lines of code, you will maintain your sanity. 216 | 217 | Let’s say, we have a HealtCheckerControls class that implements the IUserControls interface. This class checks for players energy and prevents the player from moving when energy is less that zero: 218 | ```csharp 219 | class HealtCheckerControls:IUserControls { 220 | [Inject] 221 | Player player; 222 | IUserControls controls; 223 | public HealtCheckerControl(IUserControls controls) { 224 | this.controls = controls; 225 | } 226 | public string getCommand() 227 | { 228 | //check for energy too low 229 | if (player.energy < 0) 230 | { 231 | return "";//can't move when no energy. 232 | } 233 | else { 234 | //when we have energy, just use the previous interface. 235 | return controls.getCommand(); 236 | } 237 | } 238 | } 239 | ```` 240 | 241 | Then you need to add a new producer method that receives the old implementation and returns a new one. 242 | ```csharp 243 | [Power] 244 | class EvenMoreSetupAddedLater { 245 | [Produce] 246 | IUserControls enhanceControls(IUserControls controls)//receives IUsercontrols, returns IUserControls 247 | { 248 | return new HealtCheckerControls(controls); 249 | } 250 | } 251 | ``` 252 | 253 | Of course you can receive more objects as well: 254 | ```csharp 255 | [Produce] 256 | IUserControls enhanceControls(SomeObject someObj,IUserControls controls)//receives IUsercontrols, returns IUserControls 257 | { 258 | return new HealtCheckerControls(controls,someObj); 259 | } 260 | ``` 261 | 262 | 263 | The names of the producer methods are not important at all. They just have to be annotated with the [produce] annotation. 264 | 265 | ### Order of execution 266 | Producers are executed whenever the objects they need becomes available (the arguments) and in this order: 267 | 268 | 1) Top down in the scene graph. 269 | 2) The monobehaviors position on the GameObject (top down) 270 | 3) The producer functions position in the MonoBehavior (top down) 271 | 272 | If order of execution is important, simply rearrange the producers position. 273 | Producers that returns the same type as it receives will always execute before any producer that receives another type that it returns . 274 | Example 275 | ```csharp 276 | //this method "enhances" IUserControls 277 | public IUserControls produce1(IUserControls controls) { 278 | .. 279 | } 280 | //this method creates a player and needs a IUserControls to do it. Thus it receives the FINAL implementation of IUsercontrols 281 | public Player produce2(IUserControls controls) { 282 | .. 283 | } 284 | ``` 285 | In this case, Produce1 will execute before Produce2.This is because Produce1is part of an interface composition (it adds to an interface) whereas Produce2 probably needs the “final” implementation of IUserControls. 286 | 287 | ### Named injection 288 | As it is, there can only be ONE instance of each class or each interface among the final produced objects at one time. If you have produced a “Player”, that is the only player available. No matter how many players you produce, only the last one will be available. Likewise, there will only be only one instance of each type of interface. 289 | To get around of that, you can “name” the objects produced. 290 | ```csharp 291 | [Produce(Named = "Player1")] 292 | public Player createPlayer1() { 293 | ... 294 | } 295 | 296 | [Produce(Named = "Player2")] 297 | public Player createPlayer2() 298 | { 299 | ... 300 | } 301 | ``` 302 | 303 | 304 | And you can pick them up either in other producers or through injection, like this: 305 | In producers: 306 | ```csharp 307 | [Produce] 308 | IUserControls producePlayerControlsForPlayer1([Named("Player1")] Player player) 309 | { 310 | .. 311 | } 312 | [Produce] 313 | IUserControls producePlayerControlsForPlayer2([Named("Player2")] Player player) 314 | { 315 | .. 316 | } 317 | ``` 318 | 319 | Injection: 320 | ```csharp 321 | class ClassThatNeedsPlayers { 322 | [Inject] 323 | [Named("Player1")] 324 | Player player1; 325 | 326 | [Inject] 327 | [Named("Player2")] 328 | Player player2; 329 | } 330 | ``` 331 | ### Type producing 332 | The return type of each producer is also the exact type it binds to. 333 | The object created by: 334 | ```csharp 335 | [Produce] 336 | public IUserControls createControls() { 337 | return new KeyboardUserControls(); 338 | } 339 | ``` 340 | Will be received only by: 341 | ```csharp 342 | [Inject] 343 | IUserControls controls; 344 | 345 | //and.. 346 | 347 | [Produce] 348 | Player producePlayer(IUserControls controls) 349 | { 350 | .. 351 | } 352 | ``` 353 | 354 | 355 | Not by : 356 | ```csharp 357 | [Inject] 358 | KeyboardUserControls controls; 359 | //or.. 360 | [Produce] 361 | Player producePlayer(KeyboardUserControls controls) 362 | { 363 | .. 364 | } 365 | ``` 366 | 367 | 368 | Because the producer method createControls() returns an IUserControls, and not a KeyboardUserControls 369 | The exact type must match. It is not enough that the two types are compatible. You can, however, specify that your producer or field (to be injected) would like to receive only a specific implementation. 370 | You will use the [Typed] annotation for this: 371 | ```csharp 372 | //injection.. 373 | [Inject] 374 | [Typed(typeof(KeyboardUserControls))] 375 | IUserControls controls; 376 | 377 | //..and producer 378 | [Produce] 379 | Player producePlayer([Typed(typeof(KeyboardUserControls))] IUserControls controls) 380 | { 381 | ... 382 | } 383 | ``` 384 | 385 | You can also specify [Typed] when using the [Insert] tag on monobehaviors. 386 | ```csharp 387 | [Insert (Typed=typeof(IUserControl))] 388 | class MonoBehaviorThatIsAlsoAUserControl:IUserControls { 389 | ... 390 | } 391 | ``` 392 | 393 | 394 | Here you specify that your monobehavior should really be seen as a IUserControlsand not a MonoBehaviorThatIsAlsoAUserControl. 395 | If you do not specify that, it will be seen as a MonoBehaviorThatIsAlsoAUserControland no field or producer that expects a IUserControls will ever receive it.. 396 | 397 | ### The [NewInstance] attribute. 398 | If you want to create an object only used in a single class, meaning it is not injected into other classes, you can use the [NewInstance] tag. It is very similar to the new keyword, only difference is that objects created with new will not be injected. 399 | ```csharp 400 | class Player { 401 | Gun gun1 = new Gun();//gun1 will not be injected 402 | [NewInstance] 403 | Gun gun2;//gun2 will be injected fully 404 | } 405 | 406 | class Monster { 407 | [NewInstance] 408 | Gun gun; 409 | } 410 | ``` 411 | 412 | Both Player and Monster will have a fully injected Guns, but they will be separate instances. 413 | When using the [NewInstance] attribute, the usual inject attributes works in the newly created object but you can use constructor injection as well. The constructor need to be annotated with the [Inject] attribute. 414 | The framework will user the constructor with the most parameters. 415 | 416 | ```csharp 417 | class Gun { 418 | [Inject] 419 | SomethingElse somethingElse; 420 | [Inject] 421 | public Gun([Named("Player1")] Player player) { 422 | ... 423 | } 424 | [Inject] 425 | public Gun(Player player,Settings settings) { 426 | ... 427 | } 428 | } 429 | ``` 430 | 431 | ### Creating objects on the fly 432 | But what if you want to dynamically create objects ? Bullets, for example. Attributes can’t handle that. 433 | The solution is to inject the injector itself, then inject the newly created object, using the injector. That sentence is barely understandable so here is an example. 434 | ```csharp 435 | class Player { 436 | [Inject] 437 | Injector injector;//the Injector interface is provided by the framework, 438 | //is is not something that you need to produce. 439 | public void updatePlayer() 440 | { 441 | Bullet bullet = new Bullet(); 442 | injector.inject(bullet);//now bullet is ready for use 443 | //..do stuff with bullet 444 | } 445 | } 446 | ``` 447 | 448 | Just remember that injection might be an expensive operation if you have a deep object graph, so some kind of object pooling might be appropriate. 449 | 450 | ### Shielded injection 451 | If you need areas of separate injection, meaning, objects graphs that do not interfere with each other, simply add more PowerPipelines to the scene graph. 452 | 453 | ### Hierarchical injection 454 | Sometimes you want a “main” or “parent” pipeline, that floats objects down to sub pipelines. You can have as many pipelines as you want, ordered in whatever hierarchy that reflects the logic of your application. The pipelines on the same level do not know about each other, but all receive common objects from the mainpipeline. 455 | An example could be a two player game with two identical “Player” pipelines, and a shared “Master” pipeline. 456 | The master pipeline could provide objects like levels, settings etc, and the “player” pipelines objects like controls, health etc. 457 | The set up could be something like this (in the scenegraph) 458 | 459 | MasterPipeline 460 | --Player1 pipeline 461 | --Player2 pipeline 462 | 463 | ### Error messages 464 | When you run your game, you will receive warning messages in the Unity log window about what producers did not run and what fields were not injected, if any. 465 | -------------------------------------------------------------------------------- /ReflectionUtils.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | using System.Linq; 7 | namespace PowerInject 8 | { 9 | public class ReflectionUtils 10 | { 11 | public static Boolean sameType(Type t2, Type t1) 12 | { 13 | 14 | return t1.IsAssignableFrom(t2); 15 | 16 | } 17 | public static List getDerivedClasses(Type t) 18 | { 19 | var result = new List(); 20 | if (t != null) 21 | { 22 | result.Add(t); 23 | result.AddRange(getDerivedClasses(t.BaseType)); 24 | 25 | } 26 | return result; 27 | 28 | } 29 | public static List printMethods(object function) 30 | { 31 | var methods = function.GetType().GetMethods(); 32 | methods.ToList().ForEach((m) => printMethod(m)); 33 | return null; 34 | } 35 | 36 | public static void printMethod(MethodInfo info) 37 | { 38 | Console.Write(info.Name + " -> "); 39 | info.GetParameters().ToList().ForEach((p) => Console.Write(p.Name)); 40 | Console.WriteLine(); 41 | 42 | } 43 | 44 | public static ConstructorInfo getDefaultConstructor(Type t) 45 | { 46 | return t.GetConstructor(Type.EmptyTypes); 47 | } 48 | public static List getConstructors(Type t) 49 | { 50 | var injectConstructors = t.GetConstructors().Where(c => getAttributeInfo(c) != null).OrderByDescending(c=>c.GetParameters().Count()).ToList(); 51 | var defaultConstructor = getDefaultConstructor(t); 52 | if (defaultConstructor != null) 53 | { 54 | injectConstructors.Add(defaultConstructor); 55 | } 56 | 57 | return injectConstructors; 58 | 59 | } 60 | 61 | public static List getFieldsAnnotatedWith(Type t,Type annotatedType) 62 | { 63 | 64 | var members = getFields(t).Where(m => 65 | { 66 | 67 | var alist = m.GetCustomAttributes(false).ToList(); 68 | var filtered = alist.Where(a => a.GetType() == annotatedType).ToList(); 69 | return filtered.Count() > 0; 70 | }).ToList(); 71 | 72 | 73 | return members; 74 | } 75 | public static List getPropertiesAnnotatedWith(Type t, Type annotatedType) 76 | { 77 | 78 | var members = getProperties(t).Where(m => 79 | { 80 | 81 | var alist = m.GetCustomAttributes(false).ToList(); 82 | var filtered = alist.Where(a => a.GetType() == annotatedType).ToList(); 83 | return filtered.Count() > 0; 84 | }).ToList(); 85 | 86 | 87 | return members; 88 | } 89 | public static List getParameters(List parameters) 90 | { 91 | return parameters.Select(p => 92 | { 93 | IKey key = KeyProducer.getParameterKey(p); 94 | return new Parameter(p, key); 95 | }).ToList(); 96 | } 97 | public static List getFields(Type t) 98 | { 99 | return t.GetFields(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).ToList(); 100 | } 101 | 102 | public static List getProperties(Type t) 103 | { 104 | return t.GetProperties(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).ToList(); 105 | } 106 | 107 | public static List getFieldsToInject(object o) 108 | { 109 | 110 | 111 | var members = getFieldsAnnotatedWith(o.GetType(),typeof(Inject)).Select(p=>new Field(p,KeyProducer.produceKey(p))).ToList(); 112 | return members; 113 | } 114 | 115 | public static List getPropertiesToInject(object o) 116 | { 117 | var members = getPropertiesAnnotatedWith(o.GetType(), typeof(Inject)).Select(f => new Property(f, KeyProducer.produceKey(f))).ToList(); 118 | return members; 119 | } 120 | public static List getNewInstances(object o) 121 | { 122 | var members = getFieldsAnnotatedWith(o.GetType(), typeof(NewInstance)); 123 | return members; 124 | } 125 | public static List GetObjectsToCreate(object obj) { 126 | //var fields = obj.GetType().GetFields(BindingFlags.p).wh 127 | return null; 128 | } 129 | public static T getAttributeInfo(FieldInfo o) 130 | { 131 | return (T)o.GetCustomAttributes(false).ToList().Find(a => a.GetType() == typeof(T)); 132 | } 133 | public static T getAttributeInfo(ConstructorInfo o) 134 | { 135 | return (T)o.GetCustomAttributes(false).ToList().Find(a => a.GetType() == typeof(T)); 136 | } 137 | public static T getAttributeInfo(ParameterInfo o) 138 | { 139 | return (T)o.GetCustomAttributes(false).ToList().Find(a => a.GetType() == typeof(T)); 140 | } 141 | public static T getAttributeInfo(object o) 142 | { 143 | return (T)o.GetType().GetCustomAttributes(false).ToList().Find(a => a.GetType() == typeof(T)); 144 | } 145 | public static List getAttributeInfos(object o) 146 | { 147 | return o.GetType().GetCustomAttributes(false).ToList().Where(a => a.GetType() == typeof(T)).Select(a=>(T)a).ToList(); 148 | } 149 | public static T getAttributeInfo(MethodInfo m) 150 | { 151 | return (T)m.GetCustomAttributes(false).ToList().Find(a => a.GetType() == typeof(T)); 152 | } 153 | public static Boolean isAnnotatedWith(object o) 154 | { 155 | var alist = getAttributeInfos(o); 156 | return alist.Count() > 0; 157 | 158 | 159 | } 160 | public static List getOnInjectedMethods(object o) 161 | { 162 | 163 | var methods = o.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).Where(m => 164 | { 165 | var alist = m.GetCustomAttributes(false).ToList(); 166 | var filtered = alist.Where(a => a.GetType() == typeof(OnInjected)).ToList(); 167 | return filtered.Count() > 0; 168 | }).ToList(); 169 | 170 | return methods; 171 | } 172 | 173 | 174 | public static List extractProducers(object obj) 175 | { 176 | 177 | var methods = obj.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).Where(m => 178 | { 179 | var alist = m.GetCustomAttributes(false).ToList(); 180 | var filtered = alist.Where(a => a.GetType() == typeof(Produce)).ToList(); 181 | return filtered.Count() > 0; 182 | }).Select(methodInfo => new MethodInfoObject(obj, methodInfo,KeyProducer.getProduceKey(methodInfo))).ToList(); 183 | 184 | return methods; 185 | } 186 | public static List extractModules(object obj) 187 | { 188 | 189 | var methods = obj.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance).Where(m => 190 | { 191 | var alist = m.GetCustomAttributes(false).ToList(); 192 | var filtered = alist.Where(a => a.GetType() == typeof(Module)).ToList(); 193 | return filtered.Count() > 0; 194 | }); 195 | //var a = new object[0]; 196 | return methods.Select(x => x.Invoke(obj,new object[0])).ToList(); 197 | 198 | } 199 | } 200 | 201 | } -------------------------------------------------------------------------------- /ReflectionUtils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ebfbbc3ce40d8ac49a0ae5402059634b 3 | timeCreated: 1455380658 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /TypeKey.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace PowerInject 7 | { 8 | public class TypeKey : IKey 9 | { 10 | public Type type; 11 | public TypeKey(Type t) 12 | { 13 | type = t; 14 | } 15 | public override string ToString() 16 | { 17 | 18 | return getCode(); 19 | } 20 | 21 | public virtual String getCode() 22 | { 23 | return "TypeKey:" + type.FullName; 24 | } 25 | public virtual Boolean sameAs(IKey key) 26 | { 27 | if (typeof(TypeKey).IsAssignableFrom(key.GetType())) 28 | { 29 | var typeKey = (TypeKey)key; 30 | return typeKey.type.IsAssignableFrom(type); 31 | } 32 | else 33 | { 34 | return false; 35 | } 36 | } 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /TypeKey.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6dc034d76ac3bd543b1cf2db7d6cd693 3 | timeCreated: 1455710923 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /UnityLogger.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using UnityEngine; 6 | namespace PowerInject 7 | { 8 | class UnityLogger : IPipelineLogger 9 | { 10 | public void logException(String message,Exception e) 11 | { 12 | logMessage(message); 13 | Debug.LogException(e); 14 | } 15 | 16 | public void logMessage(object message) 17 | { 18 | MonoBehaviour.print("PipelineInject: "+message); 19 | } 20 | public void logWarning(object message) 21 | { 22 | Debug.LogWarning("PipelineInject: " + message); 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /UnityLogger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f936feb83059c8429fc1103cbeddcef 3 | timeCreated: 1455713018 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Utils.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System; 3 | using System.Collections; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Reflection; 7 | using UnityEngine; 8 | using System.IO; 9 | namespace PowerInject 10 | { 11 | public class Utils 12 | { 13 | 14 | public static void print(String str) 15 | { 16 | return; 17 | /*StreamWriter w = File.AppendText("c:/temp/test.txt"); 18 | w.Write(str + "\n"); 19 | w.Flush(); 20 | w.Close();*/ 21 | } 22 | public static T getFirstComponentInParent(GameObject g) 23 | { 24 | if (object.Equals(g, default(T))) 25 | { 26 | return default(T); 27 | } 28 | else 29 | { 30 | var c = g.GetComponent(); 31 | if (c == null) 32 | { 33 | 34 | var parentTransform = g.transform.parent; 35 | if (!object.Equals(parentTransform, default(T))) 36 | { 37 | return getFirstComponentInParent(parentTransform.gameObject); 38 | } 39 | else 40 | { 41 | return default(T); 42 | } 43 | 44 | } 45 | else 46 | { 47 | return c; 48 | } 49 | 50 | } 51 | } 52 | public static List getChildren(GameObject g) 53 | { 54 | var n = g.transform.childCount; 55 | var children = new List(); 56 | for (int i = 0; i < n; i++) 57 | { 58 | children.Add(g.transform.GetChild(i).gameObject); 59 | 60 | } 61 | return children; 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /Utils.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d91e79247519d74cadb54b0d29e58ef 3 | timeCreated: 1454759005 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /bin/Debug/net35/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net35/PowerInject.dll -------------------------------------------------------------------------------- /bin/Debug/net35/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net35/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Debug/net35/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net35/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Debug/net40/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net40/PowerInject.dll -------------------------------------------------------------------------------- /bin/Debug/net40/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net40/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Debug/net40/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net40/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Debug/net45/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net45/PowerInject.dll -------------------------------------------------------------------------------- /bin/Debug/net45/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net45/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Debug/net45/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net45/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Debug/net471/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net471/PowerInject.dll -------------------------------------------------------------------------------- /bin/Debug/net471/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net471/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Debug/net471/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/net471/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Debug/netstandard2.0/PowerInject.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETStandard,Version=v2.0/", 4 | "signature": "cfe1dc2a80602aef150a12815387068463a61a0d" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETStandard,Version=v2.0": {}, 9 | ".NETStandard,Version=v2.0/": { 10 | "PowerInject/1.0.0": { 11 | "dependencies": { 12 | "NETStandard.Library": "2.0.3", 13 | "UnityEngine": "0.0.0.0" 14 | }, 15 | "runtime": { 16 | "PowerInject.dll": {} 17 | } 18 | }, 19 | "Microsoft.NETCore.Platforms/1.1.0": {}, 20 | "NETStandard.Library/2.0.3": { 21 | "dependencies": { 22 | "Microsoft.NETCore.Platforms": "1.1.0" 23 | } 24 | }, 25 | "UnityEngine/0.0.0.0": { 26 | "runtime": { 27 | "UnityEngine.dll": { 28 | "assemblyVersion": "0.0.0.0", 29 | "fileVersion": "0.0.0.0" 30 | } 31 | } 32 | } 33 | } 34 | }, 35 | "libraries": { 36 | "PowerInject/1.0.0": { 37 | "type": "project", 38 | "serviceable": false, 39 | "sha512": "" 40 | }, 41 | "Microsoft.NETCore.Platforms/1.1.0": { 42 | "type": "package", 43 | "serviceable": true, 44 | "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", 45 | "path": "microsoft.netcore.platforms/1.1.0", 46 | "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" 47 | }, 48 | "NETStandard.Library/2.0.3": { 49 | "type": "package", 50 | "serviceable": true, 51 | "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", 52 | "path": "netstandard.library/2.0.3", 53 | "hashPath": "netstandard.library.2.0.3.nupkg.sha512" 54 | }, 55 | "UnityEngine/0.0.0.0": { 56 | "type": "reference", 57 | "serviceable": false, 58 | "sha512": "" 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /bin/Debug/netstandard2.0/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/netstandard2.0/PowerInject.dll -------------------------------------------------------------------------------- /bin/Debug/netstandard2.0/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/netstandard2.0/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Debug/netstandard2.0/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Debug/netstandard2.0/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Release/net35/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net35/PowerInject.dll -------------------------------------------------------------------------------- /bin/Release/net35/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net35/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Release/net35/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net35/UnityEngine.dll -------------------------------------------------------------------------------- /bin/Release/net471/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net471/PowerInject.dll -------------------------------------------------------------------------------- /bin/Release/net471/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net471/PowerInject.pdb -------------------------------------------------------------------------------- /bin/Release/net471/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/Release/net471/UnityEngine.dll -------------------------------------------------------------------------------- /bin/current/net35/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/current/net35/PowerInject.dll -------------------------------------------------------------------------------- /bin/current/net35/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/current/net35/PowerInject.pdb -------------------------------------------------------------------------------- /bin/current/net35/UnityEngine.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/bin/current/net35/UnityEngine.dll -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Denne kode blev oprettet ved hjælp af et værktøj. 4 | // Runtime-version:4.0.30319.42000 5 | // 6 | // Ændringer af denne fil kan resultere i ukorrekt funktion, og ændringerne mistes, hvis 7 | // koden oprettes igen. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1b1cbe7702e87a59718955069cb4b8efc41fa9e7 2 | -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net35/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net35/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 013c272954c5b9eb90c4f6fc94caa8e23d5c0fac 2 | -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net35\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net35\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net35\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net35\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.csprojAssemblyReference.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.csproj.CoreCompileInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.AssemblyInfoInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.AssemblyInfo.cs 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.csproj.CopyComplete 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.dll 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net35\PowerInject.pdb 12 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\current\net35\PowerInject.dll 13 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\current\net35\PowerInject.pdb 14 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\current\net35\UnityEngine.dll 15 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\current\net35\UnityEngine.xml 16 | -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net35/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net35/PowerInject.dll -------------------------------------------------------------------------------- /obj/Debug/net35/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net35/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Denne kode blev oprettet ved hjælp af et værktøj. 4 | // Runtime-version:4.0.30319.42000 5 | // 6 | // Ændringer af denne fil kan resultere i ukorrekt funktion, og ændringerne mistes, hvis 7 | // koden oprettes igen. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1b1cbe7702e87a59718955069cb4b8efc41fa9e7 2 | -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net40/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net40/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | ceacdb89c6dee42615b74a22f5617f75083cae5b 2 | -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net40\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net40\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net40\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net40\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.csprojAssemblyReference.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.csproj.CoreCompileInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.AssemblyInfoInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.AssemblyInfo.cs 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.csproj.CopyComplete 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.dll 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net40\PowerInject.pdb 12 | -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net40/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net40/PowerInject.dll -------------------------------------------------------------------------------- /obj/Debug/net40/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net40/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Generated by the MSBuild WriteCodeFragment class. 4 | // 5 | //------------------------------------------------------------------------------ 6 | 7 | using System; 8 | using System.Reflection; 9 | 10 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 11 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 12 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 13 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 14 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 16 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 17 | -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1b1cbe7702e87a59718955069cb4b8efc41fa9e7 2 | -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 010b864cd06b6eed7f1e088e706419b45091b065 2 | -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net45\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net45\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net45\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net45\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.csprojAssemblyReference.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.csproj.CoreCompileInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.AssemblyInfoInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.AssemblyInfo.cs 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.csproj.CopyComplete 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.dll 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net45\PowerInject.pdb 12 | -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/PowerInject.dll -------------------------------------------------------------------------------- /obj/Debug/net45/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Debug/net45/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/Debug/net45/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/Debug/net45/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net45/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Denne kode blev oprettet ved hjælp af et værktøj. 4 | // Runtime-version:4.0.30319.42000 5 | // 6 | // Ændringer af denne fil kan resultere i ukorrekt funktion, og ændringerne mistes, hvis 7 | // koden oprettes igen. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1b1cbe7702e87a59718955069cb4b8efc41fa9e7 2 | -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | fb25870cfd332cc4012905ba8c096af9aedd30e3 2 | -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net471\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net471\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net471\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\net471\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.csprojAssemblyReference.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.csproj.CoreCompileInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.AssemblyInfoInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.AssemblyInfo.cs 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.csproj.CopyComplete 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.dll 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\net471\PowerInject.pdb 12 | -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/PowerInject.dll -------------------------------------------------------------------------------- /obj/Debug/net471/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Debug/net471/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/Debug/net471/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/Debug/net471/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/net471/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 1b1cbe7702e87a59718955069cb4b8efc41fa9e7 2 | -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/netstandard2.0/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/netstandard2.0/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | f9eb51c6ca41a02042f0ea2f5f478c3eb3260d2a 2 | -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.deps.json 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.dll 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.pdb 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\bin\Debug\netstandard2.0\UnityEngine.dll 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\bin\Debug\netstandard2.0\UnityEngine.xml 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csprojAssemblyReference.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csproj.CoreCompileInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.AssemblyInfoInputs.cache 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.AssemblyInfo.cs 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csproj.CopyComplete 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.dll 12 | C:\src\new_ob3d_unity\PowerInject\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.pdb 13 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.deps.json 14 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.dll 15 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\netstandard2.0\PowerInject.pdb 16 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\netstandard2.0\UnityEngine.dll 17 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Debug\netstandard2.0\UnityEngine.xml 18 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csprojAssemblyReference.cache 19 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csproj.CoreCompileInputs.cache 20 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.AssemblyInfoInputs.cache 21 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.AssemblyInfo.cs 22 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.csproj.CopyComplete 23 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.dll 24 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Debug\netstandard2.0\PowerInject.pdb 25 | -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/netstandard2.0/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/netstandard2.0/PowerInject.dll -------------------------------------------------------------------------------- /obj/Debug/netstandard2.0/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Debug/netstandard2.0/PowerInject.pdb -------------------------------------------------------------------------------- /obj/PowerInject.csproj.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "dgSpecHash": "gbbIJVhQH4vbZILSoU1PFT2a6pfitA8m6f6QlOuyTa5QCsM245LrhUUsftgm65HSE1j/foLQvdmgHYLUf4UUgQ==", 4 | "success": true 5 | } -------------------------------------------------------------------------------- /obj/PowerInject.csproj.nuget.g.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | True 5 | NuGet 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\project.assets.json 7 | $(UserProfile)\.nuget\packages\ 8 | C:\Users\mlp23\.nuget\packages\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder 9 | PackageReference 10 | 4.8.0 11 | 12 | 13 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 14 | 15 | -------------------------------------------------------------------------------- /obj/PowerInject.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | 6 | -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | c762cb100cd6331c5f57d9e4e5483e4f0d3b072d 2 | -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net35/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net35/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 013c272954c5b9eb90c4f6fc94caa8e23d5c0fac 2 | -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net35\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net35\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net35\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net35\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.csproj.CoreCompileInputs.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.AssemblyInfoInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.AssemblyInfo.cs 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.csproj.CopyComplete 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.dll 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net35\PowerInject.pdb 11 | -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net35/PowerInject.dll -------------------------------------------------------------------------------- /obj/Release/net35/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net35/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | using System; 12 | using System.Reflection; 13 | 14 | [assembly: System.Reflection.AssemblyCompanyAttribute("PowerInject")] 15 | [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] 16 | [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] 17 | [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] 18 | [assembly: System.Reflection.AssemblyProductAttribute("PowerInject")] 19 | [assembly: System.Reflection.AssemblyTitleAttribute("PowerInject")] 20 | [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] 21 | 22 | // Generated by the MSBuild WriteCodeFragment class. 23 | 24 | -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | c762cb100cd6331c5f57d9e4e5483e4f0d3b072d 2 | -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/PowerInject.assets.cache -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.csproj.CopyComplete: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/PowerInject.csproj.CopyComplete -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | fb25870cfd332cc4012905ba8c096af9aedd30e3 2 | -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.csproj.FileListAbsolute.txt: -------------------------------------------------------------------------------- 1 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net471\PowerInject.dll 2 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net471\PowerInject.pdb 3 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net471\UnityEngine.dll 4 | C:\src\new_ob3d_unity\PowerInject\PowerInject\bin\Release\net471\UnityEngine.xml 5 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.csprojAssemblyReference.cache 6 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.csproj.CoreCompileInputs.cache 7 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.AssemblyInfoInputs.cache 8 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.AssemblyInfo.cs 9 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.csproj.CopyComplete 10 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.dll 11 | C:\src\new_ob3d_unity\PowerInject\PowerInject\obj\Release\net471\PowerInject.pdb 12 | -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/PowerInject.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/PowerInject.dll -------------------------------------------------------------------------------- /obj/Release/net471/PowerInject.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/PowerInject.pdb -------------------------------------------------------------------------------- /obj/Release/net471/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs -------------------------------------------------------------------------------- /obj/Release/net471/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs -------------------------------------------------------------------------------- /obj/Release/net471/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mlp1802/PowerInjectUnity/9e28b737b4b85857bd87ce8bf5d4126224faf1b9/obj/Release/net471/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs -------------------------------------------------------------------------------- /obj/project.assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "targets": { 4 | ".NETFramework,Version=v3.5": {} 5 | }, 6 | "libraries": {}, 7 | "projectFileDependencyGroups": { 8 | ".NETFramework,Version=v3.5": [] 9 | }, 10 | "packageFolders": { 11 | "C:\\Users\\mlp23\\.nuget\\packages\\": {}, 12 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {} 13 | }, 14 | "project": { 15 | "version": "1.0.0", 16 | "restore": { 17 | "projectUniqueName": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\PowerInject.csproj", 18 | "projectName": "PowerInject", 19 | "projectPath": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\PowerInject.csproj", 20 | "packagesPath": "C:\\Users\\mlp23\\.nuget\\packages\\", 21 | "outputPath": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\obj\\", 22 | "projectStyle": "PackageReference", 23 | "fallbackFolders": [ 24 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 25 | ], 26 | "configFilePaths": [ 27 | "C:\\Users\\mlp23\\AppData\\Roaming\\NuGet\\NuGet.Config", 28 | "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" 29 | ], 30 | "originalTargetFrameworks": [ 31 | "net35" 32 | ], 33 | "sources": { 34 | "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, 35 | "https://api.nuget.org/v3/index.json": {} 36 | }, 37 | "frameworks": { 38 | "net35": { 39 | "projectReferences": {} 40 | } 41 | }, 42 | "warningProperties": { 43 | "warnAsError": [ 44 | "NU1605" 45 | ] 46 | } 47 | }, 48 | "frameworks": { 49 | "net35": {} 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /obj/project.packagespec.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0.0", 3 | "restore": { 4 | "projectUniqueName": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\PowerInject.csproj", 5 | "projectName": "PowerInject", 6 | "projectPath": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\PowerInject.csproj", 7 | "outputPath": "C:\\src\\new_ob3d_unity\\PowerInject\\PowerInject\\obj\\", 8 | "projectStyle": "PackageReference", 9 | "fallbackFolders": [ 10 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 11 | ], 12 | "originalTargetFrameworks": [ 13 | "net35" 14 | ], 15 | "frameworks": { 16 | "net35": { 17 | "projectReferences": {} 18 | } 19 | }, 20 | "warningProperties": { 21 | "warnAsError": [ 22 | "NU1605" 23 | ] 24 | } 25 | }, 26 | "frameworks": { 27 | "net35": {} 28 | } 29 | } --------------------------------------------------------------------------------