diff --git a/Assets/Artists/Configs/Animator/GunController.controller b/Assets/Artists/Configs/Animator/GunController.controller index 09fad3276..d2f61a005 100644 --- a/Assets/Artists/Configs/Animator/GunController.controller +++ b/Assets/Artists/Configs/Animator/GunController.controller @@ -10,7 +10,7 @@ AnimatorStateTransition: m_Conditions: - m_ConditionMode: 4 m_ConditionEvent: SqrMagnitude - m_EventTreshold: 0.16 + m_EventTreshold: 0.08 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 8660854411730663567} m_Solo: 0 @@ -799,7 +799,7 @@ AnimatorStateTransition: m_Conditions: - m_ConditionMode: 3 m_ConditionEvent: SqrMagnitude - m_EventTreshold: 0.16 + m_EventTreshold: 0.08 m_DstStateMachine: {fileID: 0} m_DstState: {fileID: 5953952884183743852} m_Solo: 0 @@ -1867,7 +1867,7 @@ AnimatorState: m_IKOnFeet: 0 m_WriteDefaultValues: 1 m_Mirror: 0 - m_SpeedParameterActive: 0 + m_SpeedParameterActive: 1 m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 diff --git a/Assets/Artists/Prefabs/EntityProxy.prefab b/Assets/Artists/Prefabs/EntityProxy.prefab index 0607bee26..d923891a5 100644 --- a/Assets/Artists/Prefabs/EntityProxy.prefab +++ b/Assets/Artists/Prefabs/EntityProxy.prefab @@ -206,7 +206,7 @@ MonoBehaviour: type: {class: BulletServiceSingleton, ns: BITFALL, asm: BITFALL.Bullet.Runtime} data: - rid: 1055089355266719758 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &3116384759055216959 GameObject: @@ -275,7 +275,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 1055089355266719756 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &3282564729361582311 GameObject: @@ -424,7 +424,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583703969988608 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &4066453597750257159 GameObject: @@ -1024,7 +1024,7 @@ MonoBehaviour: type: {class: BulletServiceSingleton, ns: BITFALL, asm: BITFALL.Bullet.Runtime} data: - rid: 1055089355266719760 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &5568622665405429642 GameObject: @@ -1104,7 +1104,7 @@ MonoBehaviour: type: {class: BulletServiceSingleton, ns: BITFALL, asm: BITFALL.Bullet.Runtime} data: - rid: 1055089355266719759 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &7407409373653409842 GameObject: diff --git a/Assets/Artists/Prefabs/Player.prefab b/Assets/Artists/Prefabs/Player.prefab index b216420d1..e928a7b70 100644 --- a/Assets/Artists/Prefabs/Player.prefab +++ b/Assets/Artists/Prefabs/Player.prefab @@ -734,7 +734,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 1055089217745715201 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &2809084911145372184 GameObject: @@ -1678,7 +1678,7 @@ MonoBehaviour: version: 2 RefIds: - rid: 806583545631342608 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &3865076157975442983 MonoBehaviour: @@ -3237,7 +3237,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583703969988652 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!1 &5633551467716821190 GameObject: @@ -5007,13 +5007,8 @@ PrefabInstance: - target: {fileID: 3555939717849507634, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, type: 3} propertyPath: renderers.Array.size - value: 3 + value: 2 objectReference: {fileID: 0} - - target: {fileID: 3555939717849507634, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, - type: 3} - propertyPath: renderers.Array.data[2] - value: - objectReference: {fileID: 1691712603686457520} - target: {fileID: 3808369081287560470, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, type: 3} propertyPath: m_LocalPosition.x @@ -5201,23 +5196,13 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: - - targetCorrespondingSourceObject: {fileID: 847274249425463477, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, - type: 3} - insertIndex: -1 - addedObject: {fileID: 518203656061299679} + m_AddedGameObjects: [] m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 4580683282014377900, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, type: 3} insertIndex: -1 addedObject: {fileID: 4059732203151340930} m_SourcePrefab: {fileID: 100100000, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, type: 3} ---- !u!4 &461740354935876669 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 847274249425463477, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, - type: 3} - m_PrefabInstance: {fileID: 984723819954259080} - m_PrefabAsset: {fileID: 0} --- !u!137 &2348331999583567347 stripped SkinnedMeshRenderer: m_CorrespondingSourceObject: {fileID: 3259623828982151547, guid: 4d2e2ea1a5d15fa4a90ca3a79baa74fa, @@ -5359,92 +5344,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1040364863550748081} m_PrefabAsset: {fileID: 0} ---- !u!1001 &1451497798110618150 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 461740354935876669} - m_Modifications: - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1755865475335770947, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_Name - value: Apple_01 - objectReference: {fileID: 0} - - target: {fileID: 1755865475335770947, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - propertyPath: m_Layer - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: - - {fileID: 2120823588654661318, guid: 6db7680dca4eb2748a7339cb3bc13d14, type: 3} - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 6db7680dca4eb2748a7339cb3bc13d14, type: 3} ---- !u!4 &518203656061299679 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1375224013855558137, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - m_PrefabInstance: {fileID: 1451497798110618150} - m_PrefabAsset: {fileID: 0} ---- !u!23 &1691712603686457520 stripped -MeshRenderer: - m_CorrespondingSourceObject: {fileID: 242888891679208086, guid: 6db7680dca4eb2748a7339cb3bc13d14, - type: 3} - m_PrefabInstance: {fileID: 1451497798110618150} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1455826409223114458 PrefabInstance: m_ObjectHideFlags: 0 @@ -6076,7 +5975,7 @@ MonoBehaviour: data: meleeController: {fileID: 2426015728857496741} - rid: 806583484692037644 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: - rid: 806583545631342604 type: {class: Blocking, ns: BITFALL.Entities.Equipment.Melee, asm: BITFALL.Equip} @@ -7277,7 +7176,7 @@ MonoBehaviour: data: useController: {fileID: 316352626332989457} - rid: 806583484692037659 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &2486523390929547415 MonoBehaviour: @@ -9997,7 +9896,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583611772633088 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &8391365113968233690 MonoBehaviour: @@ -10369,7 +10268,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583526086934616 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &2801954557211680929 MonoBehaviour: @@ -12297,7 +12196,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583526086934616 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &3339523282537532634 MonoBehaviour: diff --git a/Assets/Artists/Prefabs/Rig/GunController Variant.prefab b/Assets/Artists/Prefabs/Rig/GunController Variant.prefab index d81ddf65d..46953f7ee 100644 --- a/Assets/Artists/Prefabs/Rig/GunController Variant.prefab +++ b/Assets/Artists/Prefabs/Rig/GunController Variant.prefab @@ -454,7 +454,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583325261299712 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: - rid: 806583384995266560 type: {class: Holster, ns: BITFALL.Guns.States, asm: BITFALL.Equip} diff --git a/Assets/Artists/Prefabs/Rig/PlacingController Variant.prefab b/Assets/Artists/Prefabs/Rig/PlacingController Variant.prefab index 4d73347ec..ef0bcc912 100644 --- a/Assets/Artists/Prefabs/Rig/PlacingController Variant.prefab +++ b/Assets/Artists/Prefabs/Rig/PlacingController Variant.prefab @@ -114,7 +114,7 @@ MonoBehaviour: version: 2 RefIds: - rid: 1055089825765916695 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &4077778554487099840 stripped MonoBehaviour: diff --git a/Assets/Artists/Prefabs/Rig/Player Weapon Rig/Weapon_M4A1 Variant.prefab b/Assets/Artists/Prefabs/Rig/Player Weapon Rig/Weapon_M4A1 Variant.prefab index 1b1b75df2..5a603bca0 100644 --- a/Assets/Artists/Prefabs/Rig/Player Weapon Rig/Weapon_M4A1 Variant.prefab +++ b/Assets/Artists/Prefabs/Rig/Player Weapon Rig/Weapon_M4A1 Variant.prefab @@ -783,7 +783,7 @@ MonoBehaviour: - rid: -2 type: {class: , ns: , asm: } - rid: 806583325261299712 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: - rid: 806583384995266560 type: {class: Holster, ns: BITFALL.Guns.States, asm: BITFALL.Equip} diff --git a/Assets/Artists/Prefabs/Rig/Universal Use Controller Variant.prefab b/Assets/Artists/Prefabs/Rig/Universal Use Controller Variant.prefab index 104c30d54..7fb440cfa 100644 --- a/Assets/Artists/Prefabs/Rig/Universal Use Controller Variant.prefab +++ b/Assets/Artists/Prefabs/Rig/Universal Use Controller Variant.prefab @@ -416,7 +416,7 @@ MonoBehaviour: version: 2 RefIds: - rid: 806583545631342593 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: - rid: 806583545631342595 type: {class: Draw, ns: BITFALL.Entities.Equipment.Universal.States, asm: BITFALL.Equip} diff --git a/Assets/Artists/Prefabs/Zombie.prefab b/Assets/Artists/Prefabs/Zombie.prefab index f24efef6c..181ef7b67 100644 --- a/Assets/Artists/Prefabs/Zombie.prefab +++ b/Assets/Artists/Prefabs/Zombie.prefab @@ -10,7 +10,6 @@ GameObject: m_Component: - component: {fileID: 5964803017347144284} - component: {fileID: 2126668844316887849} - - component: {fileID: 8579368653672686413} - component: {fileID: 673930142905110667} - component: {fileID: 1765543596226114749} - component: {fileID: 4827747552512862242} @@ -71,29 +70,6 @@ MonoBehaviour: references: version: 2 RefIds: [] ---- !u!136 &8579368653672686413 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1610736432900663163} - m_Material: {fileID: 0} - m_IncludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_ExcludeLayers: - serializedVersion: 2 - m_Bits: 0 - m_LayerOverridePriority: 0 - m_IsTrigger: 0 - m_ProvidesContacts: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.32 - m_Height: 1.6 - m_Direction: 1 - m_Center: {x: 0, y: 0.8, z: 0} --- !u!95 &673930142905110667 Animator: serializedVersion: 5 @@ -226,7 +202,7 @@ MonoBehaviour: _zoomFactor: 1 _firstActivation: 2 _enableAction: 1 - _disableAction: 2 + _disableAction: 0 _lockBoundGraphPrefabOverrides: 1 _preInitializeSubGraphs: 0 _updateMode: 0 @@ -318,7 +294,7 @@ MonoBehaviour: version: 2 RefIds: - rid: 806583325261299714 - type: {class: MeleeServiceSingleton, ns: BITFALL.Melee, asm: BITFALL.Melee.Runtime} + type: {class: MeleeServiceSingleton, ns: BITFALL.Combat, asm: BITFALL.Melee.Runtime} data: --- !u!114 &403058373197954028 MonoBehaviour: @@ -429,8 +405,8 @@ MonoBehaviour: _getDamage: rid: 806583346156273669 aliveCollider: - allow: 1 - value: {fileID: 8579368653672686413} + allow: 0 + value: {fileID: 0} allowAnimatorParameter: 0 physicsBasedAnimation: allow: 0 @@ -639,12 +615,12 @@ PrefabInstance: - target: {fileID: 421487889729838279, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: 0.000000029802322 + value: 0 objectReference: {fileID: 0} - target: {fileID: 421487889729838279, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.w - value: -0.00000033102052 + value: -0.0000001986123 objectReference: {fileID: 0} - target: {fileID: 421487889729838279, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -659,7 +635,7 @@ PrefabInstance: - target: {fileID: 421487889729838279, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.z - value: 0.0000004634289 + value: 0.00000033102063 objectReference: {fileID: 0} - target: {fileID: 913909496426237269, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -679,7 +655,7 @@ PrefabInstance: - target: {fileID: 1286267001055454466, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: -0.000000007450581 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1286267001055454466, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -839,27 +815,27 @@ PrefabInstance: - target: {fileID: 5977324375018029203, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: -0.000000029802322 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5977324375018029203, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.w - value: 0.00000046342882 + value: -0.00000013240823 objectReference: {fileID: 0} - target: {fileID: 5977324375018029203, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.x - value: -0.70710677 + value: 0.7071068 objectReference: {fileID: 0} - target: {fileID: 5977324375018029203, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.y - value: 0.70710677 + value: -0.7071068 objectReference: {fileID: 0} - target: {fileID: 5977324375018029203, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.z - value: 0.000000066204116 + value: -0.00000013240823 objectReference: {fileID: 0} - target: {fileID: 5997892003019056750, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -884,27 +860,27 @@ PrefabInstance: - target: {fileID: 6658073127811331136, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: -0.000000029802322 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6658073127811331136, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.w - value: 0.00000039722462 + value: -0.0000001986123 objectReference: {fileID: 0} - target: {fileID: 6658073127811331136, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.x - value: -0.70710665 + value: 0.70710665 objectReference: {fileID: 0} - target: {fileID: 6658073127811331136, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.y - value: 0.70710695 + value: -0.70710695 objectReference: {fileID: 0} - target: {fileID: 6658073127811331136, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.z - value: 0.0000003972248 + value: -0.00000033102063 objectReference: {fileID: 0} - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -914,27 +890,27 @@ PrefabInstance: - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: 0.000000029802322 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.w - value: -0.00000013240823 + value: 0.00000013240823 objectReference: {fileID: 0} - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.x - value: 0.7071068 + value: -0.7071068 objectReference: {fileID: 0} - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.y - value: 0.7071068 + value: -0.70710677 objectReference: {fileID: 0} - target: {fileID: 7136674892077359098, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.z - value: 0.00000013240823 + value: -0.00000013240822 objectReference: {fileID: 0} - target: {fileID: 7520077443289668456, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -954,12 +930,12 @@ PrefabInstance: - target: {fileID: 7875696957335602972, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: -0.000000007450581 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7875696957335602972, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.w - value: 0 + value: 8.7659685e-15 objectReference: {fileID: 0} - target: {fileID: 7875696957335602972, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -974,7 +950,7 @@ PrefabInstance: - target: {fileID: 7875696957335602972, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.z - value: -0 + value: 0.00000009362675 objectReference: {fileID: 0} - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -989,7 +965,7 @@ PrefabInstance: - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: 0.000000007450581 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -999,12 +975,12 @@ PrefabInstance: - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.x - value: -1 + value: 1 objectReference: {fileID: 0} - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalRotation.y - value: 0.00000009362675 + value: -0.00000009362675 objectReference: {fileID: 0} - target: {fileID: 8632246090726818035, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -1024,7 +1000,7 @@ PrefabInstance: - target: {fileID: 8917115317957186730, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: 0.000000007450581 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8917115317957186730, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -1059,7 +1035,7 @@ PrefabInstance: - target: {fileID: 9002121479163606272, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} propertyPath: m_LocalPosition.z - value: 0.000000007450581 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9002121479163606272, guid: d6020a576e13b6d43bd1143a33ff7f8e, type: 3} @@ -1165,11 +1141,6 @@ PrefabInstance: propertyPath: fov value: 0 objectReference: {fileID: 0} - - target: {fileID: 8772707305530588351, guid: 2ad4d682518910847b19ed8106c0071a, - type: 3} - propertyPath: ignoreColliders.Array.data[0] - value: - objectReference: {fileID: 8579368653672686413} - target: {fileID: 9015502658869033244, guid: 2ad4d682518910847b19ed8106c0071a, type: 3} propertyPath: ignoreTags.allow diff --git a/Assets/Artists/Scenes/Game/gm-bigcity-2.unity b/Assets/Artists/Scenes/Game/gm-bigcity-2.unity index 9ff55b558..f316a419a 100644 --- a/Assets/Artists/Scenes/Game/gm-bigcity-2.unity +++ b/Assets/Artists/Scenes/Game/gm-bigcity-2.unity @@ -124,6 +124,69 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1001 &759160 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 131 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -118.055016 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &759161 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 759160} + m_PrefabAsset: {fileID: 0} --- !u!1 &10251313 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6055432837394285982, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -305,7 +368,7 @@ PrefabInstance: - target: {fileID: 7373593881184515222, guid: 49b382019c702974cb5c1ae3306d01a2, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7373593881184515222, guid: 49b382019c702974cb5c1ae3306d01a2, type: 3} @@ -384,7 +447,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -688,7 +751,7 @@ PrefabInstance: - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} propertyPath: m_LocalPosition.y - value: 0.018 + value: -0.13558891 objectReference: {fileID: 0} - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} @@ -801,7 +864,7 @@ PrefabInstance: - target: {fileID: 1275605982261414178, guid: b4d97f62efaf01a4ea564225ea57ecdd, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 1275605982261414178, guid: b4d97f62efaf01a4ea564225ea57ecdd, type: 3} @@ -885,7 +948,7 @@ PrefabInstance: - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} propertyPath: m_LocalPosition.y - value: 1.4879718 + value: 1.3343829 objectReference: {fileID: 0} - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} @@ -943,6 +1006,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 39976522} m_PrefabAsset: {fileID: 0} +--- !u!1001 &54114816 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 145 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -149.29727 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &54114817 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 54114816} + m_PrefabAsset: {fileID: 0} --- !u!1 &56193212 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5705089020437758687, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -1043,6 +1315,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1310687812} m_Modifications: + - target: {fileID: 160496, guid: bfe2346f95c617746b296819351d17cd, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 413204, guid: bfe2346f95c617746b296819351d17cd, type: 3} propertyPath: m_RootOrder value: 3 @@ -1112,7 +1388,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -1232,7 +1508,7 @@ PrefabInstance: - target: {fileID: 2718495270144134147, guid: 6c833c6132da3bb42842becb3b6f66af, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 2718495270144134147, guid: 6c833c6132da3bb42842becb3b6f66af, type: 3} @@ -1336,6 +1612,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -2036623037550759299, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &78170110 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 195 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -145.81702 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &78170111 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 78170110} + m_PrefabAsset: {fileID: 0} --- !u!1 &78755869 stripped GameObject: m_CorrespondingSourceObject: {fileID: -4027555734099126311, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -1574,6 +1913,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1310687812} m_Modifications: + - target: {fileID: 126124, guid: 41995a67da46cd041b30345cc6dff096, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 426904, guid: 41995a67da46cd041b30345cc6dff096, type: 3} propertyPath: m_RootOrder value: 0 @@ -2622,6 +2965,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -651327938784892547, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &141526605 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 138 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -111.24093 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &141526606 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 141526605} + m_PrefabAsset: {fileID: 0} --- !u!1 &142061253 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2829653876579195664, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -2714,6 +3266,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -8976247273610726015, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &145933870 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 185 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -88.82273 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &145933871 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 145933870} + m_PrefabAsset: {fileID: 0} --- !u!1 &151552940 stripped GameObject: m_CorrespondingSourceObject: {fileID: 526451804553595228, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -2760,6 +3375,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8165543641302364302, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &159702234 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 153 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -85.069595 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &159702235 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 159702234} + m_PrefabAsset: {fileID: 0} --- !u!1 &169486601 stripped GameObject: m_CorrespondingSourceObject: {fileID: -1218492160083309737, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -2832,7 +3656,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400006 + value: -0.07958886 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -2977,6 +3801,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 3204943448813164953, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &185562350 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 132 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -91.997246 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &185562351 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 185562350} + m_PrefabAsset: {fileID: 0} --- !u!1 &186425469 stripped GameObject: m_CorrespondingSourceObject: {fileID: 7968385737071163295, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -3049,7 +4082,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -3123,7 +4156,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -3411,7 +4444,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035892725 + value: -0.14999965 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -3582,7 +4615,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -3666,7 +4699,7 @@ PrefabInstance: - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} propertyPath: m_LocalPosition.y - value: 1.0900421 + value: 0.9364532 objectReference: {fileID: 0} - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} @@ -3878,7 +4911,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -3944,6 +4977,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1310687812} m_Modifications: + - target: {fileID: 131214, guid: 2be38d8603bd375459a24022e0a4a8d0, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 492806, guid: 2be38d8603bd375459a24022e0a4a8d0, type: 3} propertyPath: m_RootOrder value: 2 @@ -4146,7 +5183,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -4899,7 +5936,7 @@ PrefabInstance: - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} propertyPath: m_LocalPosition.y - value: 0.018 + value: -0.13558891 objectReference: {fileID: 0} - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} @@ -4962,6 +5999,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 318279132} m_PrefabAsset: {fileID: 0} +--- !u!1001 &320225691 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 142 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -136.00949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &320225692 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 320225691} + m_PrefabAsset: {fileID: 0} --- !u!1 &320274774 stripped GameObject: m_CorrespondingSourceObject: {fileID: -812262184584514024, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -5056,7 +6302,7 @@ PrefabInstance: - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} propertyPath: m_LocalPosition.y - value: 1.4117956 + value: 1.2582067 objectReference: {fileID: 0} - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} @@ -5197,6 +6443,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -7583051950659884106, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &345035436 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 131 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -136.72336 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &345035437 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 345035436} + m_PrefabAsset: {fileID: 0} --- !u!1 &348072765 stripped GameObject: m_CorrespondingSourceObject: {fileID: -1246657065147316460, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -5394,7 +6703,7 @@ PrefabInstance: - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} propertyPath: m_LocalPosition.y - value: 0.018 + value: -0.13558891 objectReference: {fileID: 0} - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} @@ -5549,6 +6858,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5846242281101219680, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &370696703 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 154 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -160.779 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &370696704 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 370696703} + m_PrefabAsset: {fileID: 0} --- !u!1 &370888704 stripped GameObject: m_CorrespondingSourceObject: {fileID: -1189232575542602967, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -5595,6 +7113,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -4309562597137791198, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &371055291 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 189 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -88.341385 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &371055292 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 371055291} + m_PrefabAsset: {fileID: 0} --- !u!1001 &372493683 PrefabInstance: m_ObjectHideFlags: 0 @@ -5616,7 +7343,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -5741,7 +7468,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -6090,6 +7817,215 @@ Transform: - {fileID: 1196241325} m_Father: {fileID: 585369273} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &409864172 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 183 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -197.25436 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &409864173 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 409864172} + m_PrefabAsset: {fileID: 0} --- !u!1001 &416407210 PrefabInstance: m_ObjectHideFlags: 0 @@ -6111,7 +8047,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -6247,6 +8183,52 @@ Transform: - {fileID: 1280258743} m_Father: {fileID: 585369273} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &439743219 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 439743220} + m_Layer: 0 + m_Name: FAE_Birch_A + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &439743220 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 439743219} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 78170111} + - {fileID: 858248876} + - {fileID: 722456333} + - {fileID: 145933871} + - {fileID: 893406991} + - {fileID: 660073723} + - {fileID: 2066421427} + - {fileID: 1900646617} + - {fileID: 345035437} + - {fileID: 759161} + - {fileID: 1705900196} + - {fileID: 618151051} + - {fileID: 1762635790} + - {fileID: 1867596365} + - {fileID: 1997980743} + m_Father: {fileID: 1335306519} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &442247605 PrefabInstance: m_ObjectHideFlags: 0 @@ -6263,7 +8245,7 @@ PrefabInstance: - target: {fileID: 6603531154576885456, guid: b3ebf5aa66a5f1f4c8ef6adfc5a34f0c, type: 3} propertyPath: m_LocalPosition.y - value: 0.3730812 + value: 0.21949229 objectReference: {fileID: 0} - target: {fileID: 6603531154576885456, guid: b3ebf5aa66a5f1f4c8ef6adfc5a34f0c, type: 3} @@ -6398,7 +8380,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400006 + value: -0.07958886 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -6518,7 +8500,7 @@ PrefabInstance: - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} propertyPath: m_LocalPosition.y - value: 1.1186204 + value: 0.9650315 objectReference: {fileID: 0} - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} @@ -6925,6 +8907,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 1360699139090654427, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &487531909 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 175 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -107.04329 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &487531910 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 487531909} + m_PrefabAsset: {fileID: 0} --- !u!1 &488084911 stripped GameObject: m_CorrespondingSourceObject: {fileID: -6670230704693717900, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -7176,7 +9367,7 @@ PrefabInstance: - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} propertyPath: m_LocalPosition.y - value: 0.004 + value: -0.14958893 objectReference: {fileID: 0} - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} @@ -7718,7 +9909,7 @@ PrefabInstance: - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} @@ -7884,7 +10075,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -8056,6 +10247,424 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 581a1bfc578bf774895416853467659a, type: 3} +--- !u!1001 &542819838 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 177 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -162.71469 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &542819839 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 542819838} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &546326839 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 163 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -110.92197 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &546326840 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 546326839} + m_PrefabAsset: {fileID: 0} --- !u!1 &546700406 GameObject: m_ObjectHideFlags: 0 @@ -8088,6 +10697,215 @@ Transform: - {fileID: 1350915220} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &549303395 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -119.949585 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &549303396 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 549303395} + m_PrefabAsset: {fileID: 0} --- !u!1001 &551727501 PrefabInstance: m_ObjectHideFlags: 0 @@ -8109,7 +10927,7 @@ PrefabInstance: - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} @@ -9669,7 +12487,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -10129,7 +12947,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.0094725 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -10266,6 +13084,215 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f18510934c4581d47819abfbf1bd3647, type: 3} +--- !u!1001 &570572098 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 156 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -147.64154 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &570572099 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 570572098} + m_PrefabAsset: {fileID: 0} --- !u!1 &582963180 stripped GameObject: m_CorrespondingSourceObject: {fileID: -26689313234294246, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -10876,7 +13903,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.0094725 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -11248,6 +14275,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -7037375721434231285, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &618151050 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 139 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -159.2314 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &618151051 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 618151050} + m_PrefabAsset: {fileID: 0} --- !u!1001 &619455030 PrefabInstance: m_ObjectHideFlags: 0 @@ -11269,7 +14359,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035890937 + value: -0.14999983 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -11648,7 +14738,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.0094725 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -11978,6 +15068,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 3655279374929464650, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &651668042 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 157 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -139.45393 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &651668043 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 651668042} + m_PrefabAsset: {fileID: 0} --- !u!1 &653887798 stripped GameObject: m_CorrespondingSourceObject: {fileID: -2229623320014660005, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -12024,6 +15323,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 1618489578592549132, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &660073722 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 154 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -88.48974 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &660073723 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 660073722} + m_PrefabAsset: {fileID: 0} --- !u!1 &660131715 GameObject: m_ObjectHideFlags: 0 @@ -12057,7 +15419,7 @@ MonoBehaviour: priority: 0 blendDistance: 0 weight: 1 - sharedProfile: {fileID: 11400000, guid: 150010a6b77b9944ba0794fe87e2adff, type: 2} + sharedProfile: {fileID: 11400000, guid: 291a106b25af4384f89ad564ba3eeac7, type: 2} --- !u!4 &660131717 Transform: m_ObjectHideFlags: 0 @@ -12094,7 +15456,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -12316,7 +15678,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -12608,7 +15970,7 @@ PrefabInstance: - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035888553 + value: -0.15000007 objectReference: {fileID: 0} - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} @@ -12882,6 +16244,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 7963003431818410962, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &722456332 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 195 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -96.49719 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &722456333 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 722456332} + m_PrefabAsset: {fileID: 0} --- !u!1001 &724399629 PrefabInstance: m_ObjectHideFlags: 0 @@ -12908,7 +16333,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -13297,7 +16722,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400012 + value: -0.0795888 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -13580,6 +17005,38 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 7986852702656991495, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &794923684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 794923685} + m_Layer: 0 + m_Name: DustMotes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &794923685 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 794923684} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1549478464} + m_Father: {fileID: 947639366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &799169506 stripped GameObject: m_CorrespondingSourceObject: {fileID: -5359212519286166371, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -13744,7 +17201,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400006 + value: -0.07958886 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -13910,7 +17367,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -13994,7 +17451,7 @@ PrefabInstance: - target: {fileID: 8361831431482542621, guid: 9fed5476c0797e3418a067665d413cd7, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 8361831431482542621, guid: 9fed5476c0797e3418a067665d413cd7, type: 3} @@ -14073,7 +17530,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -18584,7 +22041,7 @@ PrefabInstance: - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} propertyPath: m_LocalPosition.y - value: 0.7763672 + value: 0.6227783 objectReference: {fileID: 0} - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} @@ -18720,6 +22177,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 3435930653356990691, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &858248875 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 195 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -122.7392 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &858248876 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 858248875} + m_PrefabAsset: {fileID: 0} --- !u!1001 &863261929 PrefabInstance: m_ObjectHideFlags: 0 @@ -18746,7 +22266,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -18799,6 +22319,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 863261929} m_PrefabAsset: {fileID: 0} +--- !u!1001 &887546046 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 185 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -101.321365 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &887546047 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 887546046} + m_PrefabAsset: {fileID: 0} --- !u!1001 &889454866 PrefabInstance: m_ObjectHideFlags: 0 @@ -18820,7 +22549,7 @@ PrefabInstance: - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} propertyPath: m_LocalPosition.y - value: 0.7855706 + value: 0.63198173 objectReference: {fileID: 0} - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} @@ -18970,6 +22699,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5341184116029734936, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &893406990 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 166 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -89.17647 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &893406991 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 893406990} + m_PrefabAsset: {fileID: 0} --- !u!1 &898296461 stripped GameObject: m_CorrespondingSourceObject: {fileID: -709428731916859675, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -19016,6 +22808,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -4496988240597303627, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &899183771 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -95.773865 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &899183772 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 899183771} + m_PrefabAsset: {fileID: 0} --- !u!1 &899857116 stripped GameObject: m_CorrespondingSourceObject: {fileID: -4303942388364145092, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -19207,7 +23208,7 @@ PrefabInstance: - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} propertyPath: m_LocalPosition.y - value: 1.4488883 + value: 1.2952994 objectReference: {fileID: 0} - target: {fileID: 5475116632814583126, guid: 75b80990dc9cc42498edb3ea54f1203d, type: 3} @@ -19286,7 +23287,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -19406,7 +23407,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -19565,7 +23566,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -19756,6 +23757,39 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8269614376050434177, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &947639365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 947639366} + m_Layer: 0 + m_Name: PIN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &947639366 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 947639365} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 794923685} + - {fileID: 1013156859} + m_Father: {fileID: 1031015336} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &948127583 stripped GameObject: m_CorrespondingSourceObject: {fileID: -2137672853972208559, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -20281,6 +24315,215 @@ ReflectionProbe: m_UseOcclusionCulling: 1 m_Importance: 1 m_CustomBakedTexture: {fileID: 0} +--- !u!1001 &1001099569 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 134 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -124.656265 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1001099570 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1001099569} + m_PrefabAsset: {fileID: 0} --- !u!1 &1002750624 GameObject: m_ObjectHideFlags: 0 @@ -20385,7 +24628,7 @@ PrefabInstance: - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035890937 + value: -0.14999983 objectReference: {fileID: 0} - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} @@ -20464,7 +24707,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035892725 + value: -0.14999965 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -20538,7 +24781,7 @@ PrefabInstance: - target: {fileID: 415166089409558513, guid: df402c9deba8902458ad72d7a8fd0faf, type: 3} propertyPath: m_LocalPosition.y - value: -0.97809505 + value: -1.131684 objectReference: {fileID: 0} - target: {fileID: 415166089409558513, guid: df402c9deba8902458ad72d7a8fd0faf, type: 3} @@ -20688,6 +24931,38 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -495430830218017574, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &1013156858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1013156859} + m_Layer: 0 + m_Name: FallingLeafs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1013156859 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1013156858} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1304118996} + m_Father: {fileID: 947639366} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1018063866 stripped GameObject: m_CorrespondingSourceObject: {fileID: -2345178121812212574, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -20734,6 +25009,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8768535240810755559, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1023446525 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 209 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -147.52484 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1023446526 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1023446525} + m_PrefabAsset: {fileID: 0} --- !u!1 &1024014293 stripped GameObject: m_CorrespondingSourceObject: {fileID: -293046788447394297, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -20813,6 +25297,247 @@ Transform: - {fileID: 1795736234} m_Father: {fileID: 585369273} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1029866994 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 218 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -164.15462 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1029866995 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1029866994} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1031015335 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1031015336} + m_Layer: 0 + m_Name: Effects + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1031015336 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031015335} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 947639366} + m_Father: {fileID: 2091862981} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1032378050 GameObject: m_ObjectHideFlags: 0 @@ -20998,7 +25723,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035890937 + value: -0.14999983 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -21348,7 +26073,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -21473,7 +26198,7 @@ PrefabInstance: - target: {fileID: 8964120458268400549, guid: f9d15657f7beab142b68c36f80b7e192, type: 3} propertyPath: m_LocalPosition.y - value: -0.97809505 + value: -1.131684 objectReference: {fileID: 0} - target: {fileID: 8964120458268400549, guid: f9d15657f7beab142b68c36f80b7e192, type: 3} @@ -21526,6 +26251,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1070810288} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1071284477 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 161 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -103.316376 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1071284478 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1071284477} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1073660761 PrefabInstance: m_ObjectHideFlags: 0 @@ -21552,7 +26486,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -21631,7 +26565,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -21710,7 +26644,7 @@ PrefabInstance: - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} @@ -21864,7 +26798,7 @@ PrefabInstance: - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} propertyPath: m_LocalPosition.y - value: 0.8017616 + value: 0.64817274 objectReference: {fileID: 0} - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} @@ -22014,6 +26948,38 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -3527448114856341806, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &1098291471 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1098291472} + m_Layer: 0 + m_Name: PIN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1098291472 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1098291471} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1371558135} + m_Father: {fileID: 1754450375} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1106829026 stripped GameObject: m_CorrespondingSourceObject: {fileID: 7835799180308677559, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -22060,6 +27026,38 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5425899045571371802, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &1116220609 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1116220610} + m_Layer: 0 + m_Name: Trees + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1116220610 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1116220609} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1335306519} + m_Father: {fileID: 2091862981} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1122400837 stripped GameObject: m_CorrespondingSourceObject: {fileID: 8359436153123103591, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -22480,7 +27478,7 @@ PrefabInstance: - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} propertyPath: m_LocalPosition.y - value: 0.018 + value: -0.13558891 objectReference: {fileID: 0} - target: {fileID: 3894949042580695768, guid: 1f4b86271ef90774495a3444f525ca20, type: 3} @@ -22635,6 +27633,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -6074019644466662021, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1154973477 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 144 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -100.25954 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1154973478 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1154973477} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1174994259 PrefabInstance: m_ObjectHideFlags: 0 @@ -22661,7 +27868,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -22714,6 +27921,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1174994259} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1182914790 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 179 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -103.25195 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1182914791 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1182914790} + m_PrefabAsset: {fileID: 0} --- !u!1 &1184828931 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5519837056529093591, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -22832,7 +28248,7 @@ PrefabInstance: - target: {fileID: 8964120458268400549, guid: f9d15657f7beab142b68c36f80b7e192, type: 3} propertyPath: m_LocalPosition.y - value: -0.97809505 + value: -1.131684 objectReference: {fileID: 0} - target: {fileID: 8964120458268400549, guid: f9d15657f7beab142b68c36f80b7e192, type: 3} @@ -22901,7 +28317,7 @@ PrefabInstance: - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} propertyPath: m_LocalPosition.y - value: 1.0423155 + value: 0.8887266 objectReference: {fileID: 0} - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} @@ -23016,7 +28432,7 @@ PrefabInstance: - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} propertyPath: m_LocalPosition.y - value: 1.5081329 + value: 1.354544 objectReference: {fileID: 0} - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} @@ -23074,6 +28490,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1216350486} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1222895486 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 183 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -178.06203 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1222895487 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1222895486} + m_PrefabAsset: {fileID: 0} --- !u!1 &1224621024 GameObject: m_ObjectHideFlags: 0 @@ -23284,7 +28909,7 @@ PrefabInstance: - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} @@ -23368,7 +28993,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -23575,7 +29200,7 @@ PrefabInstance: - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} propertyPath: m_LocalPosition.y - value: 0.6441364 + value: 0.4905475 objectReference: {fileID: 0} - target: {fileID: 5681355521161477298, guid: 91b80a7cf885c984ea8d0d306d167dea, type: 3} @@ -23643,6 +29268,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1256300457} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1258542166 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 225 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -159.00163 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1258542167 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1258542166} + m_PrefabAsset: {fileID: 0} --- !u!1 &1262092460 stripped GameObject: m_CorrespondingSourceObject: {fileID: -1821598974754330917, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -23767,6 +29601,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -4930970850545326325, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1274225829 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 147 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -114.33808 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1274225830 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1274225829} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1280258742 PrefabInstance: m_ObjectHideFlags: 0 @@ -23793,7 +29836,7 @@ PrefabInstance: - target: {fileID: 8577504764777975765, guid: 306b64e27eea09741b9240535ee436dc, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 8577504764777975765, guid: 306b64e27eea09741b9240535ee436dc, type: 3} @@ -23892,6 +29935,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 903349868028650007, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1293937268 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 162 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -149.96808 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1293937269 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1293937268} + m_PrefabAsset: {fileID: 0} --- !u!1 &1296554224 stripped GameObject: m_CorrespondingSourceObject: {fileID: -3552816589907291848, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -23938,6 +30190,278 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5631809339965333713, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1298204275 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 148 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -138.34146 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1298204276 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1298204275} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1304118995 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1013156859} + m_Modifications: + - target: {fileID: 1000014119614862, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_Name + value: FallingLeafs + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalPosition.x + value: 188 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalPosition.z + value: -128.60596 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalRotation.w + value: 0.9841549 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalRotation.y + value: 0.1773109 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 20.149 + objectReference: {fileID: 0} + - target: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 4222d3bd8d11edc4a808cb2a283aa227, type: 3} +--- !u!4 &1304118996 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012355244284, guid: 4222d3bd8d11edc4a808cb2a283aa227, + type: 3} + m_PrefabInstance: {fileID: 1304118995} + m_PrefabAsset: {fileID: 0} --- !u!1 &1310687811 GameObject: m_ObjectHideFlags: 0 @@ -24114,6 +30638,38 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8663199610471367090, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &1335306518 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1335306519} + m_Layer: 0 + m_Name: PIN + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1335306519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1335306518} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 439743220} + m_Father: {fileID: 1116220610} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1339227924 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6620694437982788064, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -24266,7 +30822,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 100002, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 100002, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} propertyPath: m_StaticEditorFlags @@ -24280,10 +30836,18 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 4294967295 objectReference: {fileID: 0} + - target: {fileID: 100010, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 100010, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} propertyPath: m_StaticEditorFlags value: 4294967295 objectReference: {fileID: 0} + - target: {fileID: 100012, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 100012, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} propertyPath: m_StaticEditorFlags value: 4294967295 @@ -24447,6 +31011,10 @@ PrefabInstance: type: 3} insertIndex: -1 addedObject: {fileID: 1898619249} + - targetCorrespondingSourceObject: {fileID: 400008, guid: 71f324b89e04ac24ab3947465b0ed852, + type: 3} + insertIndex: -1 + addedObject: {fileID: 1553275592} - targetCorrespondingSourceObject: {fileID: 400008, guid: 71f324b89e04ac24ab3947465b0ed852, type: 3} insertIndex: -1 @@ -24995,7 +31563,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.0094725 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -25311,6 +31879,78 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -4815314137791594271, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1 &1371558134 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1371558135} + m_Layer: 0 + m_Name: Zombie + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1371558135 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1371558134} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1746294637} + - {fileID: 1029866995} + - {fileID: 1787778357} + - {fileID: 1023446526} + - {fileID: 1258542167} + - {fileID: 2080733153} + - {fileID: 1222895487} + - {fileID: 542819839} + - {fileID: 1972913452} + - {fileID: 1422656458} + - {fileID: 409864173} + - {fileID: 370696704} + - {fileID: 1480534339} + - {fileID: 1810166098} + - {fileID: 1494940749} + - {fileID: 54114817} + - {fileID: 570572099} + - {fileID: 1293937269} + - {fileID: 1451335445} + - {fileID: 320225692} + - {fileID: 1951622202} + - {fileID: 651668043} + - {fileID: 1298204276} + - {fileID: 1001099570} + - {fileID: 1274225830} + - {fileID: 1071284478} + - {fileID: 899183772} + - {fileID: 185562351} + - {fileID: 141526606} + - {fileID: 1893679856} + - {fileID: 2095601709} + - {fileID: 887546047} + - {fileID: 371055292} + - {fileID: 1766637281} + - {fileID: 1182914791} + - {fileID: 546326840} + - {fileID: 1154973478} + - {fileID: 159702235} + - {fileID: 1898117810} + - {fileID: 487531910} + - {fileID: 549303396} + m_Father: {fileID: 1098291472} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1374856742 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6663633237792289711, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -25412,7 +32052,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.y - value: 0.192 + value: -0.13 objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.z @@ -25878,7 +32518,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.021 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -26077,7 +32717,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07399994 + value: -0.07958898 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -26202,7 +32842,7 @@ PrefabInstance: - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} propertyPath: m_LocalPosition.y - value: 1.4447932 + value: 1.2912043 objectReference: {fileID: 0} - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} @@ -26319,7 +32959,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.y - value: 0.192 + value: -0.13 objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.z @@ -26352,6 +32992,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1413496565} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1422656457 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 186 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -485.156 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1422656458 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1422656457} + m_PrefabAsset: {fileID: 0} --- !u!1 &1427162638 stripped GameObject: m_CorrespondingSourceObject: {fileID: -8546940392626340956, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -26511,7 +33360,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -26590,7 +33439,7 @@ PrefabInstance: - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} propertyPath: m_LocalPosition.y - value: 1.1959939 + value: 1.042405 objectReference: {fileID: 0} - target: {fileID: 4055582876461377284, guid: 059af80b25e46ce498d52b39cc7dd9d2, type: 3} @@ -26803,6 +33652,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -2822872625724324293, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1451335444 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 151 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -128.59395 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1451335445 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1451335444} + m_PrefabAsset: {fileID: 0} --- !u!1 &1452975621 stripped GameObject: m_CorrespondingSourceObject: {fileID: -4380820333479083219, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -26875,7 +33933,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -27092,7 +34150,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -27191,6 +34249,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 2525074658578532257, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1480534338 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 162 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -162.43692 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1480534339 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1480534338} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1481238942 PrefabInstance: m_ObjectHideFlags: 0 @@ -27212,7 +34479,7 @@ PrefabInstance: - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} propertyPath: m_LocalPosition.y - value: 0.004 + value: -0.14958893 objectReference: {fileID: 0} - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} @@ -27296,7 +34563,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400006 + value: -0.07958886 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -27395,6 +34662,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8357356201839137620, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1494940748 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 133 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -139.9689 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1494940749 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1494940748} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1495385827 PrefabInstance: m_ObjectHideFlags: 0 @@ -27416,7 +34892,7 @@ PrefabInstance: - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} propertyPath: m_LocalPosition.y - value: 1.1871734 + value: 1.0335845 objectReference: {fileID: 0} - target: {fileID: 1105247419150724670, guid: 886b1879e4f7f2941ad6ffc850f170a7, type: 3} @@ -27776,7 +35252,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -27855,7 +35331,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -27988,6 +35464,421 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -8960900850950947272, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1549478463 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 794923685} + m_Modifications: + - target: {fileID: 1000010332621118, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_Name + value: DustMotes + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalPosition.x + value: 188 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalPosition.z + value: -135.29547 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: dcecde6d27461044ba6b1aeffe470bf9, type: 3} +--- !u!4 &1549478464 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012178766392, guid: dcecde6d27461044ba6b1aeffe470bf9, + type: 3} + m_PrefabInstance: {fileID: 1549478463} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1553275591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1553275592} + - component: {fileID: 1553275597} + - component: {fileID: 1553275596} + - component: {fileID: 1553275595} + - component: {fileID: 1553275594} + - component: {fileID: 1553275593} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &1553275592 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: 0.70710677, z: -0, w: 0.7071068} + m_LocalPosition: {x: -16.346664, y: 1.6700001, z: -1.463747} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1350915220} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1553275593 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 10, y: 3, z: 3} + m_Center: {x: 0, y: -0.5, z: 0} +--- !u!33 &1553275594 +MeshFilter: + m_ObjectHideFlags: 10 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + m_Mesh: {fileID: 1572818290} +--- !u!23 &1553275595 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: dbf2d2587ed57dc499d9196dab40ff06, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 2 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &1553275596 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1ca002da428252441b92f28d83c8a65f, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Shape: + rid: 7707057873788076032 + m_Size: {x: 10, y: 2, z: 3} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_PivotLocation: 0 + m_PivotPosition: {x: 0, y: 0, z: 0} + m_UnmodifiedMeshVersion: 2834 + m_ShapeBox: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 5, y: 1, z: 1.5} + references: + version: 2 + RefIds: + - rid: 7707057873788076032 + type: {class: Cube, ns: UnityEngine.ProBuilder.Shapes, asm: Unity.ProBuilder} + data: +--- !u!114 &1553275597 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1553275591} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8233d90336aea43098adf6dbabd606a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MeshFormatVersion: 2 + m_Faces: + - m_Indexes: 000000000100000002000000010000000300000002000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 040000000500000006000000050000000700000006000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 08000000090000000a000000090000000b0000000a000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 0c0000000d0000000e0000000d0000000f0000000e000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 100000001100000012000000110000001300000012000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + - m_Indexes: 140000001500000016000000150000001700000016000000 + m_SmoothingGroup: 0 + m_Uv: + m_UseWorldSpace: 0 + m_FlipU: 0 + m_FlipV: 0 + m_SwapUV: 0 + m_Fill: 1 + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Rotation: 0 + m_Anchor: 9 + m_Material: {fileID: 0} + m_SubmeshIndex: 0 + m_ManualUV: 0 + elementGroup: -1 + m_TextureGroup: -1 + m_SharedVertices: + - m_Vertices: 000000000d00000016000000 + - m_Vertices: 010000000400000017000000 + - m_Vertices: 020000000f00000010000000 + - m_Vertices: 030000000600000011000000 + - m_Vertices: 050000000800000015000000 + - m_Vertices: 070000000a00000013000000 + - m_Vertices: 090000000c00000014000000 + - m_Vertices: 0b0000000e00000012000000 + m_SharedTextures: [] + m_Positions: + - {x: -5, y: -2, z: 1.5} + - {x: 5, y: -2, z: 1.5} + - {x: -5, y: 1.9033039, z: 1.5} + - {x: 5, y: 1.9033039, z: 1.5} + - {x: 5, y: -2, z: 1.5} + - {x: 5, y: -2, z: -1.5} + - {x: 5, y: 1.9033039, z: 1.5} + - {x: 5, y: 1.9033039, z: -1.5} + - {x: 5, y: -2, z: -1.5} + - {x: -5, y: -2, z: -1.5} + - {x: 5, y: 1.9033039, z: -1.5} + - {x: -5, y: 1.9033039, z: -1.5} + - {x: -5, y: -2, z: -1.5} + - {x: -5, y: -2, z: 1.5} + - {x: -5, y: 1.9033039, z: -1.5} + - {x: -5, y: 1.9033039, z: 1.5} + - {x: -5, y: 1.9033039, z: 1.5} + - {x: 5, y: 1.9033039, z: 1.5} + - {x: -5, y: 1.9033039, z: -1.5} + - {x: 5, y: 1.9033039, z: -1.5} + - {x: -5, y: -2, z: -1.5} + - {x: 5, y: -2, z: -1.5} + - {x: -5, y: -2, z: 1.5} + - {x: 5, y: -2, z: 1.5} + m_Textures0: + - {x: 5, y: -2} + - {x: -5, y: -2} + - {x: 5, y: 1.9033039} + - {x: -5, y: 1.9033039} + - {x: 1.5, y: -2} + - {x: -1.5, y: -2} + - {x: 1.5, y: 1.9033039} + - {x: -1.5, y: 1.9033039} + - {x: 5, y: -2} + - {x: -5, y: -2} + - {x: 5, y: 1.9033039} + - {x: -5, y: 1.9033039} + - {x: 1.5, y: -2} + - {x: -1.5, y: -2} + - {x: 1.5, y: 1.9033039} + - {x: -1.5, y: 1.9033039} + - {x: -5, y: 1.5} + - {x: 5, y: 1.5} + - {x: -5, y: -1.5} + - {x: 5, y: -1.5} + - {x: 5, y: -1.5} + - {x: -5, y: -1.5} + - {x: 5, y: 1.5} + - {x: -5, y: 1.5} + m_Textures2: [] + m_Textures3: [] + m_Tangents: + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 0, y: 0, z: 1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 0, y: 0, z: -1, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: 1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + - {x: -1, y: 0, z: 0, w: -1} + m_Colors: [] + m_UnwrapParameters: + m_HardAngle: 88 + m_PackMargin: 20 + m_AngleError: 8 + m_AreaError: 15 + m_PreserveMeshAssetOnDestroy: 0 + assetGuid: + m_Mesh: {fileID: 1572818290} + m_VersionIndex: 2957 + m_IsSelectable: 1 + m_SelectedFaces: + m_SelectedEdges: [] + m_SelectedVertices: --- !u!1001 &1559834471 PrefabInstance: m_ObjectHideFlags: 0 @@ -28009,7 +35900,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -28093,7 +35984,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -28192,6 +36083,171 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -5624729214154556756, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!43 &1572818290 +Mesh: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: pb_Mesh-143320 + serializedVersion: 11 + m_SubMeshes: + - serializedVersion: 2 + firstByte: 0 + indexCount: 36 + topology: 0 + baseVertex: 0 + firstVertex: 0 + vertexCount: 24 + localAABB: + m_Center: {x: 0, y: -0.04834807, z: 0} + m_Extent: {x: 5, y: 1.9516519, z: 1.5} + m_Shapes: + vertices: [] + shapes: [] + channels: [] + fullWeights: [] + m_BindPose: [] + m_BoneNameHashes: + m_RootBoneNameHash: 0 + m_BonesAABB: [] + m_VariableBoneCountWeights: + m_Data: + m_MeshCompression: 0 + m_IsReadable: 1 + m_KeepVertices: 1 + m_KeepIndices: 1 + m_IndexFormat: 0 + m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00100011001200110013001200140015001600150017001600 + m_VertexData: + serializedVersion: 3 + m_VertexCount: 24 + m_Channels: + - stream: 0 + offset: 0 + format: 0 + dimension: 3 + - stream: 0 + offset: 12 + format: 0 + dimension: 3 + - stream: 0 + offset: 24 + format: 0 + dimension: 4 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 40 + format: 0 + dimension: 2 + - stream: 0 + offset: 48 + format: 0 + dimension: 2 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + - stream: 0 + offset: 0 + format: 0 + dimension: 0 + m_DataSize: 1344 + _typelessdata: 0000a0c0000000c00000c03f00000000000000000000803f000080bf0000000000000000000080bf0000a040000000c028d8a33c0bd7a33c0000a040000000c00000c03f00000000000000000000803f000080bf0000000000000000000080bf0000a0c0000000c0777e2c3f0bd7a33c0000a0c0769ff33f0000c03f00000000000000000000803f000080bf0000000000000000000080bf0000a040769ff33f0bd7a33cffe68c3e0000a040769ff33f0000c03f00000000000000000000803f000080bf0000000000000000000080bf0000a0c0769ff33f6e7e2c3fffe68c3e0000a040000000c00000c03f0000803f000000000000000000000000000000000000803f000080bf0000c03f000000c02f9d313f1391fb3e0000a040000000c00000c0bf0000803f000000000000000000000000000000000000803f000080bf0000c0bf000000c02f9d313f6f24973e0000a040769ff33f0000c03f0000803f000000000000000000000000000000000000803f000080bf0000c03f769ff33ff4f1723f1391fb3e0000a040769ff33f0000c0bf0000803f000000000000000000000000000000000000803f000080bf0000c0bf769ff33ff4f1723f6f24973e0000a040000000c00000c0bf0000000000000000000080bf0000803f0000000000000000000080bf0000a040000000c028d8a33c6f24973e0000a0c0000000c00000c0bf0000000000000000000080bf0000803f0000000000000000000080bf0000a0c0000000c0777e2c3f6f24973e0000a040769ff33f0000c0bf0000000000000000000080bf0000803f0000000000000000000080bf0000a040769ff33f0bd7a33cffe60c3f0000a0c0769ff33f0000c0bf0000000000000000000080bf0000803f0000000000000000000080bf0000a0c0769ff33f6e7e2c3fffe60c3f0000a0c0000000c00000c0bf000080bf00000000000000000000000000000000000080bf000080bf0000c03f000000c0f4f1723f0bd7a33c0000a0c0000000c00000c03f000080bf00000000000000000000000000000000000080bf000080bf0000c0bf000000c0f4f1723f28545d3e0000a0c0769ff33f0000c0bf000080bf00000000000000000000000000000000000080bf000080bf0000c03f769ff33f2f9d313f0bd7a33c0000a0c0769ff33f0000c03f000080bf00000000000000000000000000000000000080bf000080bf0000c0bf769ff33f2f9d313f28545d3e0000a0c0769ff33f0000c03f000000000000803f000000000000803f0000000000000000000080bf0000a0c00000c03f6e7e2c3f0a3c443f0000a040769ff33f0000c03f000000000000803f000000000000803f0000000000000000000080bf0000a0400000c03f0bd7a33c0a3c443f0000a0c0769ff33f0000c0bf000000000000803f000000000000803f0000000000000000000080bf0000a0c00000c0bf777e2c3fb705123f0000a040769ff33f0000c0bf000000000000803f000000000000803f0000000000000000000080bf0000a0400000c0bf27d8a33cb705123f0000a0c0000000c00000c0bf00000000000080bf00000000000080bf0000000000000000000080bf0000a0400000c0bf27d8a33cc25a493f0000a040000000c00000c0bf00000000000080bf00000000000080bf0000000000000000000080bf0000a0c00000c0bf777e2c3fc25a493f0000a0c0000000c00000c03f00000000000080bf00000000000080bf0000000000000000000080bf0000a0400000c03f0bd7a33c15917b3f0000a040000000c00000c03f00000000000080bf00000000000080bf0000000000000000000080bf0000a0c00000c03f6e7e2c3f15917b3f + m_CompressedMesh: + m_Vertices: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_UV: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Normals: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Tangents: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_Weights: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_NormalSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_TangentSigns: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_FloatColors: + m_NumItems: 0 + m_Range: 0 + m_Start: 0 + m_Data: + m_BitSize: 0 + m_BoneIndices: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_Triangles: + m_NumItems: 0 + m_Data: + m_BitSize: 0 + m_UVInfo: 0 + m_LocalAABB: + m_Center: {x: 0, y: -0.04834807, z: 0} + m_Extent: {x: 5, y: 1.9516519, z: 1.5} + m_MeshUsageFlags: 0 + m_CookingOptions: 30 + m_BakedConvexCollisionMesh: + m_BakedTriangleCollisionMesh: + m_MeshMetrics[0]: 1 + m_MeshMetrics[1]: 233.93988 + m_MeshOptimizationFlags: 1 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: --- !u!1 &1585231574 stripped GameObject: m_CorrespondingSourceObject: {fileID: -6667546758067706848, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -28338,7 +36394,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.y - value: 0.192 + value: -0.13 objectReference: {fileID: 0} - target: {fileID: 489710, guid: dfd1c55212384cc4c96455a708b5c839, type: 3} propertyPath: m_LocalPosition.z @@ -28483,7 +36539,7 @@ PrefabInstance: - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035892725 + value: -0.14999965 objectReference: {fileID: 0} - target: {fileID: 2925653066038063199, guid: c7d364eea8941e847b69eba0d43e22b6, type: 3} @@ -28741,7 +36797,7 @@ PrefabInstance: - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035890937 + value: -0.14999983 objectReference: {fileID: 0} - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} @@ -28820,7 +36876,7 @@ PrefabInstance: - target: {fileID: 8780136398411450214, guid: 792960a9d1c98ed4096dc0fe9466396d, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 8780136398411450214, guid: 792960a9d1c98ed4096dc0fe9466396d, type: 3} @@ -28977,7 +37033,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -29051,7 +37107,7 @@ PrefabInstance: - target: {fileID: 7478820260094553338, guid: c3b7bc862efff4a4783063ab2fe49671, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 7478820260094553338, guid: c3b7bc862efff4a4783063ab2fe49671, type: 3} @@ -29232,7 +37288,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -29306,7 +37362,7 @@ PrefabInstance: - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 2863517944316068457, guid: a553c303344ee814ab274017e0f0e389, type: 3} @@ -29385,7 +37441,7 @@ PrefabInstance: - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} propertyPath: m_LocalPosition.y - value: 0.004 + value: -0.14958893 objectReference: {fileID: 0} - target: {fileID: 8889410696358529550, guid: bc90096cf6047474a8195137fb77e890, type: 3} @@ -29607,7 +37663,7 @@ PrefabInstance: - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 2557792718428324485, guid: 95924c72a6f225c46b53abae2226b5bd, type: 3} @@ -43578,6 +51634,7 @@ MonoBehaviour: parent: {fileID: 0} parentGOs: - {fileID: 850732454} + - {fileID: 2091862980} objectCenter: 0 lodGroupSearchMode: 0 useSearchBox: 0 @@ -43601,7 +51658,7 @@ MonoBehaviour: nameContainList: [] onlyActive: 0 editorStatic: 4 - onlyStatic: 0 + onlyStatic: 1 onlyActiveMeshRenderers: 0 useComponentsFilter: 0 componentCondition: 0 @@ -43821,7 +51878,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -43997,7 +52054,7 @@ PrefabInstance: - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} @@ -44050,6 +52107,69 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1705681296} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1705900195 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 140 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -148.15086 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &1705900196 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 1705900195} + m_PrefabAsset: {fileID: 0} --- !u!1 &1710576946 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5089537625362645497, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -44163,7 +52283,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035888553 + value: -0.15000007 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -44247,7 +52367,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.07400006 + value: -0.07958886 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -44326,7 +52446,7 @@ PrefabInstance: - target: {fileID: 1927291751145116269, guid: d35acde394701754dbb50a0f9421c492, type: 3} propertyPath: m_LocalPosition.y - value: -0.9650003 + value: -1.1185892 objectReference: {fileID: 0} - target: {fileID: 1927291751145116269, guid: d35acde394701754dbb50a0f9421c492, type: 3} @@ -44395,7 +52515,7 @@ PrefabInstance: - target: {fileID: 6603531154576885456, guid: b3ebf5aa66a5f1f4c8ef6adfc5a34f0c, type: 3} propertyPath: m_LocalPosition.y - value: 1.5000463 + value: 1.3464574 objectReference: {fileID: 0} - target: {fileID: 6603531154576885456, guid: b3ebf5aa66a5f1f4c8ef6adfc5a34f0c, type: 3} @@ -44725,6 +52845,215 @@ Transform: - {fileID: 1006860162} m_Father: {fileID: 1777737239} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1746294636 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 217 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -145.24268 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1746294637 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1746294636} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1750524072 PrefabInstance: m_ObjectHideFlags: 0 @@ -44746,7 +53075,7 @@ PrefabInstance: - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 4007977963063726467, guid: 94679e65631c0fd4ab299dd8ee0101a1, type: 3} @@ -44932,6 +53261,38 @@ MonoBehaviour: m_EditorClassIdentifier: respawnInterval: Interval: 5 +--- !u!1 &1754450374 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1754450375} + m_Layer: 0 + m_Name: AI + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1754450375 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1754450374} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1098291472} + m_Father: {fileID: 2091862981} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1761146513 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6760097793491904485, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -45116,6 +53477,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 8524560584053220120, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1762635789 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 155 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -159.42744 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &1762635790 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 1762635789} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1762675493 PrefabInstance: m_ObjectHideFlags: 0 @@ -45142,7 +53566,7 @@ PrefabInstance: - target: {fileID: 4300375640898821461, guid: 0a779257212729a49b7971859cb9147b, type: 3} propertyPath: m_LocalPosition.y - value: -0.965 + value: -1.1185889 objectReference: {fileID: 0} - target: {fileID: 4300375640898821461, guid: 0a779257212729a49b7971859cb9147b, type: 3} @@ -45195,6 +53619,215 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1762675493} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1766637280 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 169 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -82.29175 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1766637281 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1766637280} + m_PrefabAsset: {fileID: 0} --- !u!1 &1774594459 stripped GameObject: m_CorrespondingSourceObject: {fileID: -6117790971606842295, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -45399,6 +54032,215 @@ Transform: - {fileID: 1256300458} m_Father: {fileID: 1236012505} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1787778356 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 238 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -175.55739 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1787778357 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1787778356} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1790296835 PrefabInstance: m_ObjectHideFlags: 0 @@ -45420,7 +54262,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889745 + value: -0.14999995 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -45499,7 +54341,7 @@ PrefabInstance: - target: {fileID: 415166089409558513, guid: df402c9deba8902458ad72d7a8fd0faf, type: 3} propertyPath: m_LocalPosition.y - value: -0.97809505 + value: -1.131684 objectReference: {fileID: 0} - target: {fileID: 415166089409558513, guid: df402c9deba8902458ad72d7a8fd0faf, type: 3} @@ -45833,6 +54675,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -6641134839316759250, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1810166097 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 141 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -160.28723 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1810166098 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1810166097} + m_PrefabAsset: {fileID: 0} --- !u!1 &1823434783 stripped GameObject: m_CorrespondingSourceObject: {fileID: -9209171734097516455, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -46171,7 +55222,7 @@ PrefabInstance: - target: {fileID: 4684239773132839288, guid: f540cab8cf7947944896bf6896cfc1ac, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 4684239773132839288, guid: f540cab8cf7947944896bf6896cfc1ac, type: 3} @@ -46255,7 +55306,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -46477,7 +55528,7 @@ PrefabInstance: - target: {fileID: 8345163905356490183, guid: 405a2254073206e42bbe8aad0088a501, type: 3} propertyPath: m_LocalPosition.y - value: -0.96500015 + value: -1.118589 objectReference: {fileID: 0} - target: {fileID: 8345163905356490183, guid: 405a2254073206e42bbe8aad0088a501, type: 3} @@ -46694,6 +55745,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5476380421209227037, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1867596364 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 173 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -159.16063 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &1867596365 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 1867596364} + m_PrefabAsset: {fileID: 0} --- !u!1 &1875892104 stripped GameObject: m_CorrespondingSourceObject: {fileID: 5204458440076891228, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -46766,7 +55880,7 @@ PrefabInstance: - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} propertyPath: m_LocalPosition.y - value: 0.7475147 + value: 0.59392583 objectReference: {fileID: 0} - target: {fileID: 779873640124114517, guid: c54ef1299dd238b49a8708e144b575ca, type: 3} @@ -46942,6 +56056,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 6759399386922453581, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1893679855 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 173 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -91 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1893679856 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1893679855} + m_PrefabAsset: {fileID: 0} --- !u!1 &1895409471 stripped GameObject: m_CorrespondingSourceObject: {fileID: -777973159973500787, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -47034,6 +56357,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -7271626476572077524, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1898117809 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 170 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -98.46698 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1898117810 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1898117809} + m_PrefabAsset: {fileID: 0} --- !u!1 &1898619243 GameObject: m_ObjectHideFlags: 0 @@ -47053,7 +56585,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!33 &1898619245 MeshFilter: m_ObjectHideFlags: 10 @@ -47455,6 +56987,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 2780904601045774087, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1900646616 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 131 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -107.114746 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &1900646617 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 1900646616} + m_PrefabAsset: {fileID: 0} --- !u!1 &1906957344 stripped GameObject: m_CorrespondingSourceObject: {fileID: -6054871217896100068, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -47639,6 +57234,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -7994709830494857947, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1951622201 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 156 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -133.55663 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1951622202 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1951622201} + m_PrefabAsset: {fileID: 0} --- !u!1 &1967396259 stripped GameObject: m_CorrespondingSourceObject: {fileID: 3054677310117067608, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -47731,6 +57535,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: -622677886187777451, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1972913451 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 173 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -189.5801 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &1972913452 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 1972913451} + m_PrefabAsset: {fileID: 0} --- !u!1 &1977160653 stripped GameObject: m_CorrespondingSourceObject: {fileID: -6395045247431373964, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -47803,7 +57816,7 @@ PrefabInstance: - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035891533 + value: -0.14999977 objectReference: {fileID: 0} - target: {fileID: 8601138085890622815, guid: efc774f137e862743b5d548f65d919bc, type: 3} @@ -48040,6 +58053,69 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 5741180922913356858, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &1997980742 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 193 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -158.50214 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &1997980743 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 1997980742} + m_PrefabAsset: {fileID: 0} --- !u!1 &2002166788 stripped GameObject: m_CorrespondingSourceObject: {fileID: 624281231709468785, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -48370,7 +58446,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589034 + value: -0.14999989 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -48766,7 +58842,7 @@ PrefabInstance: - target: {fileID: 7478820260094553338, guid: c3b7bc862efff4a4783063ab2fe49671, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7478820260094553338, guid: c3b7bc862efff4a4783063ab2fe49671, type: 3} @@ -48896,7 +58972,7 @@ PrefabInstance: - target: {fileID: 7114743027994160827, guid: 9c78badd3e3268c48980cd59a0485dc5, type: 3} propertyPath: m_LocalPosition.y - value: 0.003589213 + value: -0.14999971 objectReference: {fileID: 0} - target: {fileID: 7114743027994160827, guid: 9c78badd3e3268c48980cd59a0485dc5, type: 3} @@ -48975,7 +59051,7 @@ PrefabInstance: - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 5208964437046230547, guid: 373d78c28a8f6024cada3a296368b6c5, type: 3} @@ -49033,6 +59109,69 @@ Transform: type: 3} m_PrefabInstance: {fileID: 2065354181} m_PrefabAsset: {fileID: 0} +--- !u!1001 &2066421426 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 439743220} + m_Modifications: + - target: {fileID: 1000010151976528, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_Name + value: FAE_Birch_A + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.x + value: 140 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalPosition.z + value: -88.84765 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ca0f87d8635ce0940b7441781fb4354d, type: 3} +--- !u!4 &2066421427 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4000012308464578, guid: ca0f87d8635ce0940b7441781fb4354d, + type: 3} + m_PrefabInstance: {fileID: 2066421426} + m_PrefabAsset: {fileID: 0} --- !u!1 &2069048261 stripped GameObject: m_CorrespondingSourceObject: {fileID: 6885634260881939322, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -49171,6 +59310,215 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 4663610592584690475, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, type: 3} +--- !u!1001 &2080733152 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 237 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -154.48627 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &2080733153 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 2080733152} + m_PrefabAsset: {fileID: 0} --- !u!1 &2084641602 stripped GameObject: m_CorrespondingSourceObject: {fileID: 674122633459335149, guid: 1a0b4d3c9bceed24eb0ca8dec51e79a2, @@ -49284,7 +59632,7 @@ PrefabInstance: - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} propertyPath: m_LocalPosition.y - value: 0.0035889149 + value: -0.15 objectReference: {fileID: 0} - target: {fileID: 7714000239592616971, guid: 3ffa8857b55c0e04dbeb91cf5b61e23b, type: 3} @@ -49368,7 +59716,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} @@ -49452,8 +59800,220 @@ Transform: m_Children: - {fileID: 2099022928} - {fileID: 853010222} + - {fileID: 1116220610} + - {fileID: 1031015336} + - {fileID: 1754450375} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &2095601708 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1371558135} + m_Modifications: + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 349114255037271128, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 1213893366506059165, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1610736432900663163, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_Name + value: Zombie + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.x + value: 200 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.y + value: -1.4593949 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: -102.18702 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 6049064691190697996, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: -0.0000001986123 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 0.70710665 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710695 + objectReference: {fileID: 0} + - target: {fileID: 6730377493262951647, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000033102063 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 0.00000013240823 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: -0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.70710677 + objectReference: {fileID: 0} + - target: {fileID: 7064934576040447845, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: -0.00000013240822 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.w + value: 8.7659685e-15 + objectReference: {fileID: 0} + - target: {fileID: 7803955541690111875, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.z + value: 0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8559872318023307372, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalRotation.y + value: -0.00000009362675 + objectReference: {fileID: 0} + - target: {fileID: 8844741683413517365, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 9073861932364703135, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 87496a4c1c33c9f4a9a90a9757655d40, type: 3} +--- !u!4 &2095601709 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5964803017347144284, guid: 87496a4c1c33c9f4a9a90a9757655d40, + type: 3} + m_PrefabInstance: {fileID: 2095601708} + m_PrefabAsset: {fileID: 0} --- !u!1 &2099022927 GameObject: m_ObjectHideFlags: 0 @@ -49819,7 +60379,7 @@ PrefabInstance: - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} propertyPath: m_LocalPosition.y - value: -1.0094725 + value: -1.1 objectReference: {fileID: 0} - target: {fileID: 5088247503209915273, guid: f18510934c4581d47819abfbf1bd3647, type: 3} @@ -50087,6 +60647,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1310687812} m_Modifications: + - target: {fileID: 168022, guid: 35a54a513e06d33418fdf42de1062724, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 459632, guid: 35a54a513e06d33418fdf42de1062724, type: 3} propertyPath: m_RootOrder value: 4 @@ -50337,7 +60901,7 @@ PrefabInstance: - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} propertyPath: m_LocalPosition.y - value: 0.074 + value: -0.07958892 objectReference: {fileID: 0} - target: {fileID: 2912657673940515623, guid: e5ff4635697757a43bc8b359bbf33049, type: 3} diff --git a/Assets/Artists/Scripts/Entities/Movement/NavAgentMovement.cs b/Assets/Artists/Scripts/Entities/Movement/NavAgentMovement.cs index 60481a5d3..cab5f3ac4 100644 --- a/Assets/Artists/Scripts/Entities/Movement/NavAgentMovement.cs +++ b/Assets/Artists/Scripts/Entities/Movement/NavAgentMovement.cs @@ -91,12 +91,12 @@ namespace BITKit { } - public void Movement(Vector3 relativeVector) + public void OnMovement(Vector3 relativeVector) { } - public void Movement(InputAction.CallbackContext context) + public void OnMovement(InputAction.CallbackContext context) { throw new NotImplementedException(); } diff --git a/Assets/Artists/Scripts/Equip/BITGun.cs b/Assets/Artists/Scripts/Equip/BITGun.cs index d9fee9381..64d839e52 100644 --- a/Assets/Artists/Scripts/Equip/BITGun.cs +++ b/Assets/Artists/Scripts/Equip/BITGun.cs @@ -369,7 +369,13 @@ namespace BITFALL.Guns animator.animator.SetBool((int)BITHash.Player.Cancel, recoilSpring.value.GetLength()>0.1f); animator.animator.SetFloat((int)BITHash.Player.Aim,_equipService.Zoom.Value); - animator.animator.SetFloat(BITConstant.Player.SqrMagnitude,_movement.LocomotionBasedVelocity.sqrMagnitude); + animator.animator.SetFloat(BITConstant.Player.SqrMagnitude, + math.clamp( + _movement.LocomotionBasedVelocity.sqrMagnitude + ,0,1 + ) + ); + recoilSpring.Update(deltaTime,default); diff --git a/Assets/Artists/Scripts/MeleeService/MeleeService.cs b/Assets/Artists/Scripts/MeleeService/MeleeService.cs index 5b64ed486..60980440c 100644 --- a/Assets/Artists/Scripts/MeleeService/MeleeService.cs +++ b/Assets/Artists/Scripts/MeleeService/MeleeService.cs @@ -12,7 +12,7 @@ using Unity.Collections; using UnityEngine; using UnityEngine.VFX; -namespace BITFALL.Melee +namespace BITFALL.Combat { [Serializable] public class MeleeServiceSingleton : IMeleeService diff --git a/Assets/Artists/Scripts/Player/CharacterControllerPro/PlayerCharacterController.cs b/Assets/Artists/Scripts/Player/CharacterControllerPro/PlayerCharacterController.cs index e0f96ae8a..1a6d68cc9 100644 --- a/Assets/Artists/Scripts/Player/CharacterControllerPro/PlayerCharacterController.cs +++ b/Assets/Artists/Scripts/Player/CharacterControllerPro/PlayerCharacterController.cs @@ -13,6 +13,7 @@ using BITKit.Entities.Movement; using BITKit.Entities.Physics; using BITKit.Entities.Player; using BITKit.PlayerCamera; +using Cysharp.Threading.Tasks; using Lightbug.CharacterControllerPro.Core; using Unity.Mathematics; using UnityEngine; @@ -151,11 +152,11 @@ namespace BITFALL.Entities.Player.Movement TransitionState(); - _inputActionGroup.RegisterCallback(movementAction, Movement); - _inputActionGroup.RegisterCallback(viewAction, View); - _inputActionGroup.RegisterCallback(jumpAction, Jump); - _inputActionGroup.RegisterCallback(crouchAction, Crouch); - _inputActionGroup.RegisterCallback(runAction, Run); + _inputActionGroup.RegisterCallback(movementAction, OnMovement); + _inputActionGroup.RegisterCallback(viewAction, OnView); + _inputActionGroup.RegisterCallback(jumpAction, OnJump); + _inputActionGroup.RegisterCallback(crouchAction, OnCrouch); + _inputActionGroup.RegisterCallback(runAction, OnRun); } private void OnSetPhysics(bool obj) { @@ -167,8 +168,9 @@ namespace BITFALL.Entities.Player.Movement private void OnSetAlive(bool obj) { - allowMovement.SetElements(this,obj); - allowRun.SetElements(this,obj); + + allowMovement.SetElements(123,obj); + allowRun.SetElements(123,obj); if (obj) { if (!isDead) return; @@ -186,11 +188,11 @@ namespace BITFALL.Entities.Player.Movement { throw new NotImplementedException(); } - public void Movement(Vector3 relativeVector) + public void OnMovement(Vector3 relativeVector) { MovementInput = relativeVector; } - public void Movement(InputAction.CallbackContext context) + public void OnMovement(InputAction.CallbackContext context) { MovementInput = context.ReadValue(); MovementInput = new Vector3(MovementInput.x,0,MovementInput.y); @@ -205,8 +207,8 @@ namespace BITFALL.Entities.Player.Movement ExpectSprint.Reset(); } } - - public void ExecuteCommand(T command=default) + + public void ExecuteCommand(T command=default) { foreach (var x in StateDictionary.Values) { @@ -233,7 +235,7 @@ namespace BITFALL.Entities.Player.Movement gravityDamping.Release(addGravityDampingCommand.Damping); break; case PlayerPauseRunCommand pauseRunCommand: - pauseRun.SetElements(this,pauseRunCommand.Pause); + pauseRun.SetElements(123,pauseRunCommand.Pause); break; case PlayerFocusCommand focusCommand: allowFocus.SetElements(focusCommand.Sender,focusCommand.Focus); @@ -253,7 +255,7 @@ namespace BITFALL.Entities.Player.Movement } public event Action OnCommand; - public void View(InputAction.CallbackContext context) + public void OnView(InputAction.CallbackContext context) { if (BITAppForUnity.AllowCursor) return; var playerConfig = PlayerConfig.Singleton; @@ -293,12 +295,9 @@ namespace BITFALL.Entities.Player.Movement -raw.x ); } - public void Jump(InputAction.CallbackContext context) + public void OnJump(InputAction.CallbackContext context) { if (_knockdown.IsKnockdown) return; - - var y = actor.ColliderComponent.Size.y; - RequestClimb = context switch @@ -306,10 +305,9 @@ namespace BITFALL.Entities.Player.Movement { interaction: PressInteraction, performed: true } => true, { interaction: PressInteraction, canceled: true } => false, _ => RequestClimb - }; + }; if (ExpectJump.shouldBe) return; - if (context is not {interaction:PressInteraction , performed:true}) return; switch (CurrentState) { @@ -373,7 +371,7 @@ namespace BITFALL.Entities.Player.Movement } ExpectCrouch.Reset(); } - public void Run(InputAction.CallbackContext context) + public void OnRun(InputAction.CallbackContext context) { if (allowRun.Allow is false) return; if (_knockdown.IsKnockdown) return; @@ -419,7 +417,7 @@ namespace BITFALL.Entities.Player.Movement } - public void Crouch(InputAction.CallbackContext context) + public void OnCrouch(InputAction.CallbackContext context) { if (_knockdown.IsKnockdown) return; @@ -524,12 +522,9 @@ namespace BITFALL.Entities.Player.Movement } if (allowMovement.Allow is false) return; - var additiveTransform = locationAdditive.transform; - var rotation = Quaternion.Euler(LookInput); - - + if (LimitViewAngle is not 0) { float angleDifference = Quaternion.Angle(rotation, FpvRotation); diff --git a/Assets/Artists/Scripts/UX/UXHud.cs b/Assets/Artists/Scripts/UX/UXHud.cs index c4c0af079..80a944a7d 100644 --- a/Assets/Artists/Scripts/UX/UXHud.cs +++ b/Assets/Artists/Scripts/UX/UXHud.cs @@ -72,6 +72,8 @@ namespace BITFALL.UX [UXBindPath("bloody-container")] private VisualElement bloodyContainer; + private VisualElement[] swayElements; + private float _currentHealthLerp; protected CancellationTokenSource bloodyScreenCancellationTokenSource; @@ -91,6 +93,8 @@ namespace BITFALL.UX bloodyContainer.SetOpacity(0); injuryContainer.SetOpacity(0); + + swayElements = document.rootVisualElement.Query(className: "swap").ToList().ToArray(); } private void OnInspect(InputAction.CallbackContext obj) @@ -268,7 +272,6 @@ namespace BITFALL.UX } { - var currentPos = document.rootVisualElement.transform.position; var movementVelocity = _entityMovement.LocomotionBasedVelocity * 16; var velocity = -_entityMovement.AngularVelocity * 10 @@ -278,8 +281,16 @@ namespace BITFALL.UX x = velocity.y, y = velocity.x, }; - newPos = Vector3.Lerp(currentPos, newPos, Time.deltaTime * 10); - document.rootVisualElement.transform.position = newPos; + + + foreach (var x in swayElements) + { + var currentPos = x.transform.position; + + newPos = Vector3.Lerp(currentPos, newPos, Time.deltaTime * 10); + + x.transform.position = newPos; + } } } @@ -305,7 +316,7 @@ namespace BITFALL.UX healthBar.Set(Mathf.Clamp(hp,0,100) * 0.01f); injuryContainer.SetOpacity( - hp<50 ? 1 : 0 + hp< 60 ? Mathf.InverseLerp(40,60,hp) : 0 ); } } diff --git a/Assets/Artists/UX/HUD.uxml b/Assets/Artists/UX/HUD.uxml index a2ca559b6..e52d9e3e2 100644 --- a/Assets/Artists/UX/HUD.uxml +++ b/Assets/Artists/UX/HUD.uxml @@ -12,9 +12,6 @@ - - - @@ -32,7 +29,7 @@ - + @@ -52,7 +49,7 @@ - + @@ -86,7 +83,7 @@ - + diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/EntityMovement.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/EntityMovement.cs index f9502145a..9828d86c1 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/EntityMovement.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/EntityMovement.cs @@ -113,12 +113,12 @@ namespace BITKit.Entities /// 基于相对坐标的移动 /// /// - void Movement(Vector3 relativeVector); + void OnMovement(Vector3 relativeVector); /// /// 基于InputAction的移动 /// /// - void Movement(InputAction.CallbackContext context); + void OnMovement(InputAction.CallbackContext context); /// /// 执行命令 /// diff --git a/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/RigidbodyBasedMovement.cs b/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/RigidbodyBasedMovement.cs index 38ead5206..995a02679 100644 --- a/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/RigidbodyBasedMovement.cs +++ b/Assets/BITKit/Unity/Scripts/Entity/Components/EntityMovement/RigidbodyBasedMovement.cs @@ -35,11 +35,11 @@ namespace BITKit.Entities.Movement { } - public void Movement(Vector3 relativeVector) + public void OnMovement(Vector3 relativeVector) { } - public void Movement(InputAction.CallbackContext context) + public void OnMovement(InputAction.CallbackContext context) { } diff --git a/Assets/FastScriptReload/Documentation/documentation.md b/Assets/FastScriptReload/Documentation/documentation.md deleted file mode 100644 index 360b40ea4..000000000 --- a/Assets/FastScriptReload/Documentation/documentation.md +++ /dev/null @@ -1,663 +0,0 @@ -# Fast/Live Script Reload - -Tool will allow you to iterate quicker on your code. You simply go into play mode, make a change to any file and it'll be compiled on the fly and hot-reloaded in your running play-mode session. - -## Getting started -1) Import -2) Welcome screen will open - it contains all needed info to get started as well as support links and configuration. -`You can always get back to this screen via 'Window -> Fast/Live Script Reload -> Start Screen'` -3) Go to Launch Demo -> Basic Example window -4) Follow instructions listed there - -> During startup asset will check if Unity Auto Refresh is enabled and offer to adjust it in order to work properly. Depending on your workflow you want it in 'EnabledOutsidePlaymode' or 'Disabled' - this is to ensure Unity will not trigger script compilation on changes and will let Fast Script Reload to work. - -> Sometimes Unity can be quite stubborn and try to auto-reload scripts even with Auto-Reload turned off, if you can still see standard 'Reloading script assemblies' progress bar on change please go to: -> 'Window -> Fast Script Reload -> Start Screen -> Reload -> Force prevent assembly reload during playmode'. -> This way tool will lock reload in code when you enter playmode. - -``` -Example scene 'Point' material should automatically detect URP or surface shader -If it shows pink, please adjust by picking shader manually: -1) URP: 'Shader Graphs/Point URP' -2) Surface: 'Graph/Point Surface' -``` - -## On-Device Hot-Reload - Live Script reload -There's an addon to this tool - Live Script Reload - that'll allow you to use same functionality over the network in device build, eg: -- android (including VR headsets like Quest 2) -- standalone windows - -[Find more details here](https://immersivevrtools.com/redirect/fast-script-reload/live-script-reload-extension) - -**Live Script Reload is using Fast Script Reload as a base asset - documentation is combined, if you don't use Live Script Reload you can skip any sections in this document prefixed with [Live-Reload]** - -## How Unity Hot Reload functionality is made? Technical Approach Breakdown -If you'd like to know how tool works from technical point of view - have a look at blog series which gets deeper into the subject: - -[1) How to build Hot Reload For Unity](https://immersivevrtools.com/Blog/how-to-build-hot-reload-functionality-for-unity) - -[2) Hot Reload - on device, (eg Android / Windows Exe)](https://immersivevrtools.com/Blog/how-to-build-unity-hot-reload-on-device) - -## Reporting Compilation Errors -I've put lots of effort to test various code patterns in various codebases. Still - it's possible you'll find some instances where code would not compile, it's easiest to: -1) Look at compiler error and compare with generated source code, usually it'll be very obvious why issue is occuring -2) Refactor problematic part (look at limitations section as they'll explain how) -3) Let me know via support email and I'll get it fixed - -## Executing custom code on hot reload -Custom code can be executed on hot reload by adding a method to changed script. - -**You can see example by adjusting code in 'Graph.cs' file.** - -``` - void OnScriptHotReload() - { - //do whatever you want to do with access to instance via 'this' - } -``` - -``` - static void OnScriptHotReloadNoInstance() - { - //do whatever you want to do without instance - //useful if you've added brand new type - // or want to simply execute some code without |any instance created. - //Like reload scene, call test function etc - } -``` - -## EXPERIMENTAL Adding New Fields -Asset has an experimental support for adding new fields at runtime which will also render in Editor and allow you to tweak values - same as with normal fields. - -To enable, please: -`Window -> Fast Script Reload -> Start Window -> New Fields -> Enable experimental added field support`. - -> As this is an experimental feature please expect it to break more often! It'd be great help if you could report any issues via Discord / email. - -### New Fields - specific limitations - -- outside classes can not call new fields added at runtime -- new fields will only show in editor if they were already used at least once - - eg if you've added a variable into a method, on first call that variable will be initialized and will start showing in editor - -### New Fields - performance -For new fields to work your code will be adjusted. Instead of calling fields directly your code will call into a method that retrieves value from dynamic dictionary. - -Due to that there'll be some overhead with: -- looking up proper object and new-field value in dictionary -- initializing values -- use of dynamic type, which will introduce some additional casts - -> All that shouldn't really add too much overhead on dev-machine - you may lose few FPS though. - - -## User Defined Script Overrides -For asset to hot reload your changes it needs to make some adjustments to code. This could cause some issues as described in limitations section. - -I continuously work on mitigating limitations. When they happen you can help yourself quickly by creating user defined script override. - -Those are simply overrides on a per-file / method basis - when specified their contents will be used for final source code. Allowing you to simply fix any issues. -This is especially helpful with larger files. - -### Replacing methods -You can replace existing methods by specifying their full signature in correct type - contents will be then replaced. -> If no match for the method signature is found it'll be ignored - -For example, let's look at limitation with assigning Singleton to Instance using 'this' keyword -> That limitation is already solved although it'll serve as a clean example illustrating the feature - -Following code: -``` -public class MySingleton: MonoBehaviour { - public static MySingleton Instance; - - void Start() { - Instance = this; - } - - void SomeOtherMethod() { - //some other logic - } -} -``` - -Would be rewritten to: -``` -public class MySingleton__Patched_: MonoBehaviour { //FSR: name change to include __Patched_ postfix to prevent name clashes - public static MySingleton Instance; - - void Start() { - //assigning 'this' (now of type MySingleton__Patched_) to - //'Instance' of type MySingleton will now show compilation error due to type mismach - Instance = this; - } - - void SomeOtherMethod() { - //some other logic - } -} -``` - -In that case you can create a user script rewrite override, to do so: -1) In Unity project panel right-click on 'MySingleton.cs' -2) Select `Fast Script Reload -> Add \ Open User Script Rewrite Override` -3) Asset will create override file for you with some template already in (there's also description in top comment how to use) - -Override: -``` -public class MySingleton__Patched_: MonoBehaviour { - void Start() { //override will target class specified above and only defined methods, in that case Start() - Instance = (MySingleton)(object)this; //contents will be changed as they are visible here, casting to object and then to expected type will correct the issue - } -} -``` - -### Adding types -When your code is recompiled it lands in new assembly. This can cause some issues, for example if your class is using `internal` -interface - after recompile it won't be able to access that interface. - -Following code will fail to compile when changing MyClass as it won't be able to access IInterface which is `internal`: -``` -//Defined in file MyClass.cs -public class MyClass: IInterface { - -} - -//Defined in other file, IInterface.cs -interface IInterface { //no access modifier for interfaces will infer 'internal' - only available to assembly it's defined in. - -} -``` - -In that case you can create a user script rewrite override, to do so: -1) In Unity project panel right-click on 'MyClass.cs' -2) Select `Fast Script Reload -> Add \ Open User Script Rewrite Override` -3) Asset will create override file for you with some template already in (there's also description in top comment how to use) - -And put following in the override file -``` -interface IInterface { - // add any definitions as needed -} -``` - -This will then be simply added to newly compiled file and interface will be accessible. -``` -//now both in same assembly/file when hot reloaded -public class MyClass: IInterface { - -} - - -interface IInterface { - -} -``` - -### Managing existing User Script Rewrite Overrides -You can see all your overrides by: - -1) Right clicking on file in Unity project panel -2) Clicking `Fast Script Reload -> Show User Script Rewrite Overrides` - -This will take you to tool settings window. You can also access it via: -1) Clicking `Window -> Fast Script Reload -> Start Screen` -2) Selecting `User Script Rewrite Overrides` side tab - -## EXPERIMENTAL In-editor Hot Reload (outside of playmode) -Asset has an experimental support for hot reload outside of playmode. However with limitations as they are now - it -is intended for some specific use cases (like iterating on editor scripts). - -> **Feature is not intended as a replacement for Unity compile / reload mechanism** - -To enable, please: -`Window -> Fast Script Reload -> Start Window -> Editor Hot-Reload -> Enable Hot-Reload outside of play mode`. - -> As this is an experimental feature please expect it to break more often! It'd be great help if you could report any issues via Discord / email. - -## Debugging -Debugging is fully supported although breakpoints in your original file won't be hit. - -Once change is compiled, you'll get an option to open generated file [via clickable link in console window] in which you can set breakpoints. - -Tool can also auto-open generated files for you on change for simpler access, you can find option via 'Window -> Fast Script Reload -> Start Screen -> Debugging -> Auto open generated source file for debugging' - -> Debugging with Rider for Unity 2019 and 2020 is having some issues, you can only open debuggable files with auto-open feature. Clicking a file in console causes subtle static-variables reload (not full domain reload) that'll break your play-session. - -### Adding Function Breakpoint -If for whatever reason debugger breakpoint is not hit you can try setting Function Breakpoint in your IDE. - -For type name you want to include `__Patched_`, the `__Patched_` postfix is auto-added by asset to prevent name clash. -Function name remains unchanged. - -## Production Build -For Fast Script Reload asset code will be excluded from any builds. - -For Live Script Reload you should exclude it from final production build, do that via: -- 'Window -> Fast Script Reload -> Welcome Screen -> Build -> Enable Hot Reload For Build' - untick - -**When building via File -> Build Settings - you'll also see Live Script Reload status under 'Build' button. You can click 'Adjust' button which will take you to build page for asset.** -```This is designed to make sure you don't accidentally build tool into release althoguh best approach would be to ensure your release process takes care of that.``` - -## Options -You can access Welcome Screen / Options via 'Window -> Fast/Live Script Reload -> Start Screen' - it contains useful information as well as options. -``` -Context menus will be prefixed with used version, either 'Fast Script Reload' or 'Live Script Reload' -``` - -### Auto Hot-Reload -By default tool will pick changes made to any file in playmode. You can add exclusions to that behaviour, more on that later. - -You can also manually manage reload, to do so: -1) Un-tick 'Enable auto Hot-Reload for changed files' in Options -> Reload page -2) Click Window -> Fast Script Reload -> Force Reload to trigger -3) or call `FastScriptReloadManager.TriggerReloadForChangedFiles()` method from code - -> You can also use Editor -> Hotkeys to bind Force Reload to specific key. - -### [Live-Reload] Hot-Reload over Network -With on-device build, your code changes will be distributed over the network in real-time. - -By default running application will send a broadcast and try to discover editor running the tool. - -Broadcast is initiated from device where build is running on (not from editor) - this means device running editor needs to allow the connection. - -### [Live-Reload] Troubleshooting network issues -If for whatever reason reload over network doesn't work, please: - -1) go to 'Window -> Live Script Reload -> Options/Network' -2) make sure port used is not already used by any other application -3) make sure your Firewall allows connections on that port -4) If you think broadcast doesn't work in your network it's best to specify IP Address explicitly (tick 'Force specific UP address for clients to receive Hot-Reload updates' and add IP) - - this will allow client (build on device) connect directly to specified address - -### [Live-Reload] Connected Client -In playmode, message will be logged when clients connects. Also Options/Network will display connected client, eg Android phone could be identified as: - -`SM-100232 connected from 192.189.168.68:12548` - -**Only 1 client can be connected at any time.** - -### [Live-Reload] Testing with Editor -By default, editor will reflect any changes you made without using network. If you want to force editor to behave as networked client: -1) Press play -2) Find DontDestroyOnLoadObject 'NetworkedAssemblyChangesLoader' - -3) tick 'IsDebug' -4) tick 'Editor Acts as Remote Client' -5) enable NetworkedAssemblyChangesLoader component - -### Managing file exclusions -Files can be excluded from auto-compilation. - -#### via 'Project' context menu -1) Right click on any *.cs file -2) Click Fast Script Reload -3) Add Hot-Reload Exclusion - -*You can remove exclusion from same menu* - -#### via Exclusions page -To view all exclusions: -1) Right click on any *.cs file -2) Click Fast Script Reload -3) Click Show Exclusions - -#### via class attribute -You can also add `[PreventHotReload]` attribute to a class to prevent hot reload for that class. - -### Batch script changes and reload every N seconds -Script will batch all your playmode changes and Hot-Reload them in bulk every 3 seconds - you can change duration from 'Reload' options page. - -### Disable added/removed fields check -By default if you add / remove fields, tool will not redirect method calls for recompiled class. -This is to ensure there are no issues as that is generally not supported. - -Some assets however will use IL weaving to adjust your classes (eg Mirror) as a post compile step. In that case it's quite likely hot-reload will still work. - -### Managing reference exclusions -Asset will reference all .dll files that original code is referencing. In some cases that causes compilation error (eg 'Type XYZ is defined in both assembly a.dll and b.dll). -You can use those options to exclude specific references from being added. - -> 'Start Screen -> Exclude References (Advanced) -> adjust as needed'. - -## Performance - -Your app performance won't be affected in any meaningful way. -Biggest bit is additional memory used for your re-compiled code. -Won't be visible unless you make 100s of changes in same play-session. - -### File Watchers Performance Overhead -In some cases watching for file changes is causing significant performance overhead. This is down to the Unity FileWatcher which I'm unable to change or provide suitable replacement for. If you're experiencing this issue please go to `Window -> Fast Script Reload -> File Watcher (Advanced Setup)` and narrow down watchers to specific path where you're working in. You can watch multiple folders in this manner. - -## LIMITATIONS -please make sure to read those -There are some limitation due to the approach taken to Hot-Reload your scripts. I've tried to minimise the impact to standard dev-workflow as much as possible. - -In some cases however you may need to use workarounds as described below. - -> In most cases you'll be able to use [User Defined Script Overrides](#user-defined-script-overrides) to overcome limitations and make hot reload code compilable. - -### Generic methods and classes won't be Hot-Reloaded -Unfortunately generics will not be Hot-Reloaded, to workaround you'd need to move code to non-generic class / method. - -Tool will try to change non-generic methods in those files and will simply skip generic ones. - -*Note - you can still Hot-Reload for class implementations that derive from generic base class but are not generic themselves, eg.* -``` - -class SingletonImplementation: SingletonBase { - public void SomeSpecificFunctionality() { - //you can change code here and it'll be Hot-Reloaded as type itself is not generic - } - - public void GenericMethod(T arg) { - //changes here won't be Hot-Reloaded as method is generic - } -} - -class SingletonBase where T: new() { - public T Instance; - - public void Init() { - Instance = new T(); //if you change this code it won't be Hot-Reloaded as it's in generic type - } -} - -``` - -### Adding new fields -Experimental support with 1.3, minor limitations remaining: -- outside classes can not call new fields added at runtime -- new fields will only show in editor if they were already used at least once - -> You need to opt in via start screen -> 'Window -> Fast Script Reload -> Start Screen -> New Fields -> enable'! - -### Passing `this` reference to method that expect concrete class implementation - - -`**By default experimental setting 'Enable method calls with 'this' as argument fix' is turned on in options, and should fix 'this' calls/assignment issue. -If you see issues with that please turn setting off and get in touch via support email.** - -Unless experimental setting is on - it'll throw compilation error `The best overloaded method match for xxx has some invalid arguments` - this is due to the fact that changed code is technically different type. -The code will need to be adjusted to depend on some abstraction instead (before hot-reload). - -This code would cause the above error. -``` -public class EnemyController: MonoBehaviour { - EnemyManager m_EnemyManager; - - void Start() - { - //calling 'this' causes issues as after hot-reload the type of EnemyController will change to 'EnemyController__Patched_' - m_EnemyManager.RegisterEnemy(this); - } -} - -public class EnemyManager : MonoBehaviour { - public void RegisterEnemy(EnemyController enemy) { //RegisterEnemy method expects parameter of concrete type (EnemyController) - //impementation - } -} -``` - -It could be changed to support Hot-Reload in following way: - - -1) Don't depend on concrete implementations, instead use interfaces/abstraction -``` -public class EnemyController: MonoBehaviour, IRegistrableEnemy { - EnemyManager m_EnemyManager; - - void Start() - { - //calling this causes issues as after hot-reload the type of EnemyController will change - m_EnemyManager.RegisterEnemy(this); - } -} - -public class EnemyManager : MonoBehaviour { - public void RegisterEnemy(IRegistrableEnemy enemy) { //Using interface will go around error - //impementation - } -} - -public interface IRegistrableEnemy -{ - //implementation -} -``` - -2) Adjust method param to have common base class -``` -public class EnemyManager : MonoBehaviour { - public void RegisterEnemy(MonoBehaviour enemy) { //Using common MonoBehaviour will go around error - //impementation - } -} -``` - -### Assigning `this` to a field references -Similar as above, this could cause some trouble although 'Enable method calls with 'this' as argument fix' setting will fix most of the issues. - -Especially visible with singletons. -eg. - -``` -public class MySingleton: MonoBehaviour { - public static MySingleton Instance; - - void Start() { - Instance = this; - } -} -``` - -### Calling internal class members from changed code -> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation - -Technically, once your changed code is compiled it'll be in a separate assembly. As a result this changed code won't be able to access internal classes from assembly it originated from. - -### Extensive use of nested classed / structs -> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation - -If your code-base contains lots of nested classes - you may see more compilation errors. - -Easy workaround is to move those nested classes away so they are top-level. - -### Creating new public methods -Hot-reload for new methods will only work with private methods (only called by changed code). - -### Adding new references -When you're trying to reference new code in play-mode session that'll fail if assembly is not yet referencing that (most often happens when using AsmDefs that are not yet referencing each other) - -### Changing class that uses extension and passes itself as a reference -> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation - -Changing class that uses extension method and passes itself as a reference will create compiler error. - -Generally that shouldn't be an issue, extension methods are primarily used as a syntatic sugar to extend a class that you do not have access to. -You shouldn't need to create extension methods for types you own (instead those are generally instance methods or base class methods). - -Given example: -``` -public class ExtensionMethodTest -{ - public string Name; - - void Update() - { - this.PrintName(); - } -} - -//separate extension file -public static ExtensionMethodTestExtensions -{ - public static void PrintName(this ExtensionMethodTest obj) - { - Debug.Log(obj.Name); - } -} -``` - -When changing `ExtensionMethodTest` you'll get compile error. Workaround would be to include method call in your type, eg: -``` -public class ExtensionMethodTest { - public string Name; - - void Update() { - this.PrintName(); - } - - private void PrintName() { - Debug.Log(Name); - } -} -``` -*Arguably that's what should be done in the first place.* - -Adjusting classes that use extension methods without passing itself as a reference - will work correctly. eg: -``` -public class ObjectFromExternalAssembly() -{ - //included just to illustrate example, that'd be in compiled assembly - //that you can't change and use extension method approach - - public string Name; -} - -public class ExtensionMethodTester -{ - void Update() - { - var t = new ExtensionMethodTest(); - t.PrintName() - } -} - -//separate extension file -public static ObjectFromExternalAssemblyExtensions -{ - public static void PrintName(this ObjectFromExternalAssembly obj) - { - Debug.Log(obj.Name); - } -} -``` - -### Changing class that implements internal interface can trigger compilation error -> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation - -If class is implementing interface that's defined in different file as internal (default for no access modifier) - then changes to that class will fail to compile. - -eg. -``` -//file IInterface.cs -interface IInterface { //default interface access-modifier is 'internal' - //declaration -} - -//file ClassImplementingIInterface.cs -class ClassImplementingIInterface: IInterface { - //changing this class will cause CS0122 'IInterface' is inaccessible due to it's protection level -} - -``` - -> Quick workaround is to declare that interface as public -> - -### Changing class that accesses `private protected` members -> You can use [User Defined Script Overrides](#user-defined-script-overrides) to overcome this limitation - -With C# 7.2 `private protected` access modifier was introduced. It works as `protected` access modifier in a sense that inherited classes can access it but. -Addition of `private` also limits it to same assembly. Your changes are technically compiled into separate assembly and at the moment trying to access `private protected` in changed code will produce compiler error. - -> Easiest workaround for now is to declare those `private protected` members as `protected`. - -### Limited debugger support for Rider when using Unity 2019 and 2020 -Once breakpoint has been hit it'll stop asset from hot-reloading in that play-session. Newer Unity versions are supporting debugging. - -### No IL2CPP support -Asset runs based on specific .NET functionality, IL2CPP builds will not be supported. Although as this is development workflow aid you can build your APK with Mono backend (android) and change later. - -### Partial classes -Partial classes are not yet supported - -## FAQ -### How is this asset different than Live Script Reload? -Fast Script Reload -- hot reload in editor - -Live Script Reload -- same hot reload in editor as FSR (includes FSR) -+ **AND hot reload directly in builds / on-device** -+ you don't have to download them both separately, LSR is also 1 package import -+ standalone extension priced at $35, or if you've already bought Fast Script Reload it's $5 upgrade - -### Editor makes full reload on any change in playmode - -Unity Editor has an option to auto recompile changes. **For tool to work properly you want to have that either disabled or enabled only outside of playmode.** - -You can adjusted auto-reload at any time via `Edit -> Preferences -> Asset Pipeline -> Auto Refresh`. - -*Tool will also offer to disable auto-refresh on startup.* - -It's possible to set auto-refresh to enabled but only outside of playmode. Depending on editor version used this can be found in: -- `Edit -> Preferences -> General -> Script Changes While Playing -> Recompile After Finished Playing` -- or `Edit -> Preferences -> Asset Pipeline -> Auto Refresh -> Enabled Outside Playmode` - -### VS Code shows console shows errors -VS Code proj file (csproj) generate with NetFramework version 4.7.1. One of the plugin DLLs is targeting version 4.8. -Even though VS Code does not compile that code (Unity does) - it'll still show error as it didn't load the library for code-completion. - -It's not a plugin issue as such, other dlls will have same troubles. -Best solution I've found is to force csproj files to be generated with 4.8 version instead. -This can be achieved with following editor script -``` -using System.IO; -using System.Text.RegularExpressions; -using UnityEditor; -using UnityEngine; - -public class VisualStudioProjectGenerationPostProcess : AssetPostprocessor -{ - private static void OnGeneratedCSProjectFiles() - { - Debug.Log("OnGeneratedCSProjectFiles"); - var dir = Directory.GetCurrentDirectory(); - var files = Directory.GetFiles(dir, "*.csproj"); - foreach (var file in files) - ChangeTargetFrameworkInfProjectFiles(file); - } - - static void ChangeTargetFrameworkInfProjectFiles(string file) - { - var text = File.ReadAllText(file); - var find = "TargetFrameworkVersion>v4.7.1 As a one-off you may also need to go to Edit -> Preferences -> External Tools -> click 'Regenerate project files' buttons - -### When importing I'm getting error: 'Unable to update following assemblies: (...)/ImmersiveVRTools.Common.Runtime.dll' -This happens occasionally, especially on upgrade between versions. It's harmless error that'll go away on play mode. - -### When upgrading between versions, eg 1.1 to 1.2 example scene cubes are pink -This is down to reimporting 'Point' prefab. Right now plugin will make sure it's using correct shader eg. URP / Built-in but only on initial import. - -To fix please go to `FastScripReload\Examples\Point\Point.prefab` and search for 'Point' shader. - -## Roadmap -- ~~add Mac/Linux support~~ (added with 1.1) -- ~~add debugger support for hot-reloaded scripts~~ (added with 1.2) -- ~~allow to add new fields (adjustable in Editor)~~ (added with 1.3) -- better compiler support to work around limitations \ No newline at end of file diff --git a/Assets/FastScriptReload/Documentation/documentation.pdf b/Assets/FastScriptReload/Documentation/documentation.pdf deleted file mode 100644 index a62ba711b..000000000 Binary files a/Assets/FastScriptReload/Documentation/documentation.pdf and /dev/null differ diff --git a/Assets/FastScriptReload/Documentation/release-notes-md b/Assets/FastScriptReload/Documentation/release-notes-md deleted file mode 100644 index 52ca8d6bb..000000000 --- a/Assets/FastScriptReload/Documentation/release-notes-md +++ /dev/null @@ -1,33 +0,0 @@ -1.4 -- added experimental editor-mode hot-reload, you'll need to opt in via Start Screen -> Editor Hot-Reload (please read the notes on that page, playmode workflow is still far superior) -- you can now define User Script Rewrite Overrides - which will allow you to overcome most of existing limitations that cause compilation errors (on a one by one basis) -- big optimization in how long hot-reload part will take, first call will be unaffected when type cache is build but subsequent calls will be significantly quicker -- added 'Exclude References' options - this allows to remove specific dll references from dynamically compiled code (as in some cases you may get 'type defined in both assembly x.dll and y.dll' -- destructors will no longer cause compilation error -- (options opt-in) script rewriting can optionally emit comment - why change was made to help with troubleshooting issues -- Unity assembly reload can be forced off via LockAssemblyReload if specified in options - sometimes even though Auto-Refresh is turned off Editor still tries to recompile changes in playmode which prevents FSR from working -- new fields support (experimental) will be enabled by default - -1.3 - (Experimental) - New fields added in playmode -New fields can be added and used in code -New fields can be adjusted in editor (same as standard fields) -New fields will be initialized to whatever value is specified in code or default value -Experimental feature - at this stage expect some issues -Opt-in - disabled by default to enable go to 'Window -> Fast Script Reload -> Start Screen -> New Fields -> enable' - -1.2 - Debugger support -- added debugger support - -1.1 - Mac support / bug fixes -**Added Mac support (only INTEL editor version, SILICON still not supported)** -Added Linux support -fixed namespace clash with Unity.Collections package -common code lib will not be included in builds -added check for auto-refresh in Editor - will proide guidance and option to adjust as otherwise full editor reload is triggered for changes -added workaround for Unity file-watcher returning wrong file path on some editor versions -added option to allow disabling DidFieldCountCheck - allowing to detour methods in those cases (eg for Mirror where it'll adjust IL and cause mismatch) -added option to configure FileWatcher paths/filters as in some cases watching root directory was causing performance issues -added minor initial-load optimisations - using session-state for items that do not need to be resolved on every reload - -1.0 - First release, included features: -Fast script reload in editor / play-mode (compiles only changed files and hot-reloads them into current play session) \ No newline at end of file diff --git a/Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt b/Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt deleted file mode 100644 index edeae8e5f..000000000 --- a/Assets/FastScriptReload/Plugins/Harmony/HarmonyLicense.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Andreas Pardeike - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll b/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll deleted file mode 100644 index e18253539..000000000 Binary files a/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml b/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml deleted file mode 100644 index f1b9b4cff..000000000 --- a/Assets/FastScriptReload/Plugins/Harmony/net48/0Harmony.xml +++ /dev/null @@ -1,3693 +0,0 @@ - - - - 0Harmony - - - - A factory to create delegate types - - - Default constructor - - - Creates a delegate type for a method - The method - The new delegate type - - - - A getter delegate type - Type that getter gets field/property value from - Type of the value that getter gets - The instance get getter uses - An delegate - - - - A setter delegate type - Type that setter sets field/property value for - Type of the value that setter sets - The instance the setter uses - The value the setter uses - An delegate - - - - A constructor delegate type - Type that constructor creates - An delegate - - - - A helper class for fast access to getters and setters - - - Creates an instantiation delegate - Type that constructor creates - The new instantiation delegate - - - - Creates an getter delegate for a property - Type that getter reads property from - Type of the property that gets accessed - The property - The new getter delegate - - - - Creates an getter delegate for a field - Type that getter reads field from - Type of the field that gets accessed - The field - The new getter delegate - - - - Creates an getter delegate for a field (with a list of possible field names) - Type that getter reads field/property from - Type of the field/property that gets accessed - A list of possible field names - The new getter delegate - - - - Creates an setter delegate - Type that setter assigns property value to - Type of the property that gets assigned - The property - The new setter delegate - - - - Creates an setter delegate for a field - Type that setter assigns field value to - Type of the field that gets assigned - The field - The new getter delegate - - - - A delegate to invoke a method - The instance - The method parameters - The method result - - - A helper class to invoke method with delegates - - - Creates a fast invocation handler from a method - The method to invoke - Controls if boxed value object is accessed/updated directly - The - - - The directBoxValueAccess option controls how value types passed by reference (e.g. ref int, out my_struct) are handled in the arguments array - passed to the fast invocation handler. - Since the arguments array is an object array, any value types contained within it are actually references to a boxed value object. - Like any other object, there can be other references to such boxed value objects, other than the reference within the arguments array. - For example, - - var val = 5; - var box = (object)val; - var arr = new object[] { box }; - handler(arr); // for a method with parameter signature: ref/out/in int - - - - - If directBoxValueAccess is true, the boxed value object is accessed (and potentially updated) directly when the handler is called, - such that all references to the boxed object reflect the potentially updated value. - In the above example, if the method associated with the handler updates the passed (boxed) value to 10, both box and arr[0] - now reflect the value 10. Note that the original val is not updated, since boxing always copies the value into the new boxed value object. - - - If directBoxValueAccess is false (default), the boxed value object in the arguments array is replaced with a "reboxed" value object, - such that potential updates to the value are reflected only in the arguments array. - In the above example, if the method associated with the handler updates the passed (boxed) value to 10, only arr[0] now reflects the value 10. - - - - - A low level memory helper - - - - Mark method for no inlining (currently only works on Mono) - The method/constructor to change - - - - Detours a method - The original method/constructor - The replacement method/constructor - An error string - - - - Writes a jump to memory - The memory address - Jump destination - An error string - - - - Gets the start of a method in memory - The method/constructor - [out] Details of the exception - The method start address - - - - special parameter names that can be used in prefix and postfix methods - - - Patch function helpers - - - Sorts patch methods by their priority rules - The original method - Patches to sort - Use debug mode - The sorted patch methods - - - - Creates new replacement method with the latest patches and detours the original method - The original method - Information describing the patches - The newly created replacement method - - - - Creates a patch sorter - Array of patches that will be sorted - Use debugging - - - Sorts internal PatchSortingWrapper collection and caches the results. - After first run the result is provided from the cache. - The original method - The sorted patch methods - - - Checks if the sorter was created with the same patch list and as a result can be reused to - get the sorted order of the patches. - List of patches to check against - true if equal - - - Removes one unresolved dependency from the least important patch. - - - Outputs all unblocked patches from the waiting list to results list - - - Adds patch to both results list and handled patches set - Patch to add - - - Wrapper used over the Patch object to allow faster dependency access and - dependency removal in case of cyclic dependencies - - - Create patch wrapper object used for sorting - Patch to wrap - - - Determines how patches sort - The other patch - integer to define sort order (-1, 0, 1) - - - Determines whether patches are equal - The other patch - true if equal - - - Hash function - A hash code - - - Bidirectionally registers Patches as after dependencies - List of dependencies to register - - - Bidirectionally registers Patches as before dependencies - List of dependencies to register - - - Bidirectionally removes Patch from after dependencies - Patch to remove - - - Bidirectionally removes Patch from before dependencies - Patch to remove - - - Specifies the type of method - - - - This is a normal method - - - This is a getter - - - This is a setter - - - This is a constructor - - - This is a static constructor - - - This targets the MoveNext method of the enumerator result - - - Specifies the type of argument - - - - This is a normal argument - - - This is a reference argument (ref) - - - This is an out argument (out) - - - This is a pointer argument (&) - - - Specifies the type of patch - - - - Any patch - - - A prefix patch - - - A postfix patch - - - A transpiler - - - A finalizer - - - A reverse patch - - - Specifies the type of reverse patch - - - - Use the unmodified original method (directly from IL) - - - Use the original as it is right now including previous patches but excluding future ones - - - Specifies the type of method call dispatching mechanics - - - - Call the method using dynamic dispatching if method is virtual (including overriden) - - - This is the built-in form of late binding (a.k.a. dynamic binding) and is the default dispatching mechanic in C#. - This directly corresponds with the instruction. - - - For virtual (including overriden) methods, the instance type's most-derived/overriden implementation of the method is called. - For non-virtual (including static) methods, same behavior as : the exact specified method implementation is called. - - - Note: This is not a fully dynamic dispatch, since non-virtual (including static) methods are still called non-virtually. - A fully dynamic dispatch in C# involves using - the dynamic type - (actually a fully dynamic binding, since even the name and overload resolution happens at runtime), which does not support. - - - - - Call the method using static dispatching, regardless of whether method is virtual (including overriden) or non-virtual (including static) - - - a.k.a. non-virtual dispatching, early binding, or static binding. - This directly corresponds with the instruction. - - - For both virtual (including overriden) and non-virtual (including static) methods, the exact specified method implementation is called, without virtual/override mechanics. - - - - - The base class for all Harmony annotations (not meant to be used directly) - - - - The common information for all attributes - - - Annotation to define your Harmony patch methods - - - - An empty annotation can be used together with TargetMethod(s) - - - - An annotation that specifies a class to patch - The declaring class/type - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The argument types of the method or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - An array of argument types to target overloads - Array of - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - An array of argument types to target overloads - Array of - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - The - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - An array of argument types to target overloads - An array of - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - The - - - - An annotation that specifies a method, property or constructor to patch - The - - - - An annotation that specifies a method, property or constructor to patch - The - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The - An array of argument types to target overloads - An array of - - - - An annotation that specifies a method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - An array of argument types to target overloads - An array of - - - - An annotation that specifies a method, property or constructor to patch - The full name of the declaring class/type - The name of the method, property or constructor to patch - The - - - - Annotation to define the original method for delegate injection - - - - An annotation that specifies a class to patch - The declaring class/type - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The argument types of the method or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - An array of argument types to target overloads - Array of - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The - An array of argument types to target overloads - Array of - - - - An annotation that specifies a method, property or constructor to patch - The declaring class/type - The name of the method, property or constructor to patch - The - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - An array of argument types to target overloads - An array of - - - - An annotation that specifies a method, property or constructor to patch - The name of the method, property or constructor to patch - The - - - - An annotation that specifies call dispatching mechanics for the delegate - The - - - - An annotation that specifies a method, property or constructor to patch - The - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - The - An array of argument types to target overloads - An array of - - - - An annotation that specifies a method, property or constructor to patch - An array of argument types to target overloads - - - - An annotation that specifies a method, property or constructor to patch - An array of argument types to target overloads - An array of - - - - Annotation to define your standin methods for reverse patching - - - - An annotation that specifies the type of reverse patching - The of the reverse patch - - - - A Harmony annotation to define that all methods in a class are to be patched - - - - A Harmony annotation - - - - A Harmony annotation to define patch priority - The priority - - - - A Harmony annotation - - - - A Harmony annotation to define that a patch comes before another patch - The array of harmony IDs of the other patches - - - - A Harmony annotation - - - A Harmony annotation to define that a patch comes after another patch - The array of harmony IDs of the other patches - - - - A Harmony annotation - - - A Harmony annotation to debug a patch (output uses to log to your Desktop) - - - - Specifies the Prepare function in a patch class - - - - Specifies the Cleanup function in a patch class - - - - Specifies the TargetMethod function in a patch class - - - - Specifies the TargetMethods function in a patch class - - - - Specifies the Prefix function in a patch class - - - - Specifies the Postfix function in a patch class - - - - Specifies the Transpiler function in a patch class - - - - Specifies the Finalizer function in a patch class - - - - A Harmony annotation - - - - The name of the original argument - - - - The index of the original argument - - - - The new name of the original argument - - - - An annotation to declare injected arguments by name - - - - An annotation to declare injected arguments by index - Zero-based index - - - - An annotation to declare injected arguments by renaming them - Name of the original argument - New name - - - - An annotation to declare injected arguments by index and renaming them - Zero-based index - New name - - - - An abstract wrapper around OpCode and their operands. Used by transpilers - - - - The opcode - - - - The operand - - - - All labels defined on this instruction - - - - All exception block boundaries defined on this instruction - - - - Creates a new CodeInstruction with a given opcode and optional operand - The opcode - The operand - - - - Create a full copy (including labels and exception blocks) of a CodeInstruction - The to copy - - - - Clones a CodeInstruction and resets its labels and exception blocks - A lightweight copy of this code instruction - - - - Clones a CodeInstruction, resets labels and exception blocks and sets its opcode - The opcode - A copy of this CodeInstruction with a new opcode - - - - Clones a CodeInstruction, resets labels and exception blocks and sets its operand - The operand - A copy of this CodeInstruction with a new operand - - - - Creates a CodeInstruction calling a method (CALL) - The class/type where the method is declared - The name of the method (case sensitive) - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A code instruction that calls the method matching the arguments - - - - Creates a CodeInstruction calling a method (CALL) - The target method in the form TypeFullName:MethodName, where the type name matches a form recognized by Type.GetType like Some.Namespace.Type. - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A code instruction that calls the method matching the arguments - - - - Creates a CodeInstruction calling a method (CALL) - The lambda expression using the method - - - - - Creates a CodeInstruction calling a method (CALL) - The lambda expression using the method - - - - - Creates a CodeInstruction calling a method (CALL) - The lambda expression using the method - - - - - Creates a CodeInstruction calling a method (CALL) - The lambda expression using the method - - - - - Returns an instruction to call the specified closure - The delegate type to emit - The closure that defines the method to call - A that calls the closure as a method - - - - Creates a CodeInstruction loading a field (LD[S]FLD[A]) - The class/type where the field is defined - The name of the field (case sensitive) - Use address of field - - - - Creates a CodeInstruction storing to a field (ST[S]FLD) - The class/type where the field is defined - The name of the field (case sensitive) - - - - Returns a string representation of the code instruction - A string representation of the code instruction - - - - Exception block types - - - - The beginning of an exception block - - - - The beginning of a catch block - - - - The beginning of an except filter block (currently not supported to use in a patch) - - - - The beginning of a fault block - - - - The beginning of a finally block - - - - The end of an exception block - - - - An exception block - - - - Block type - - - - Catch type - - - - Creates an exception block - The - The catch type - - - - The Harmony instance is the main entry to Harmony. After creating one with an unique identifier, it is used to patch and query the current application domain - - - - The unique identifier - - - - Set to true before instantiating Harmony to debug Harmony or use an environment variable to set HARMONY_DEBUG to '1' like this: cmd /C "set HARMONY_DEBUG=1 && game.exe" - This is for full debugging. To debug only specific patches, use the attribute - - - - Creates a new Harmony instance - A unique identifier (you choose your own) - A Harmony instance - - - - Searches the current assembly for Harmony annotations and uses them to create patches - This method can fail to use the correct assembly when being inlined. It calls StackTrace.GetFrame(1) which can point to the wrong method/assembly. If you are unsure or run into problems, use PatchAll(Assembly.GetExecutingAssembly()) instead. - - - - Creates a empty patch processor for an original method - The original method/constructor - A new instance - - - - Creates a patch class processor from an annotated class - The class/type - A new instance - - - - Creates a reverse patcher for one of your stub methods - The original method/constructor - The stand-in stub method as - A new instance - - - - Searches an assembly for Harmony annotations and uses them to create patches - The assembly - - - - Creates patches by manually specifying the methods - The original method/constructor - An optional prefix method wrapped in a object - An optional postfix method wrapped in a object - An optional transpiler method wrapped in a object - An optional finalizer method wrapped in a object - The replacement method that was created to patch the original method - - - - Patches a foreign method onto a stub method of yours and optionally applies transpilers during the process - The original method/constructor you want to duplicate - Your stub method as that will become the original. Needs to have the correct signature (either original or whatever your transpilers generates) - An optional transpiler as method that will be applied during the process - The replacement method that was created to patch the stub method - - - - Unpatches methods by patching them with zero patches. Fully unpatching is not supported. Be careful, unpatching is global - The optional Harmony ID to restrict unpatching to a specific Harmony instance - This method could be static if it wasn't for the fact that unpatching creates a new replacement method that contains your harmony ID - - - - Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global - The original method/constructor - The - The optional Harmony ID to restrict unpatching to a specific Harmony instance - - - - Unpatches a method by patching it with zero patches. Fully unpatching is not supported. Be careful, unpatching is global - The original method/constructor - The patch method as method to remove - - - - Test for patches from a specific Harmony ID - The Harmony ID - True if patches for this ID exist - - - - Gets patch information for a given original method - The original method/constructor - The patch information as - - - - Gets the methods this instance has patched - An enumeration of original methods/constructors - - - - Gets all patched original methods in the appdomain - An enumeration of patched original methods/constructors - - - - Gets the original method from a given replacement method - A replacement method, for example from a stacktrace - The original method/constructor or null if not found - - - - Tries to get the method from a stackframe including dynamic replacement methods - The - For normal frames, frame.GetMethod() is returned. For frames containing patched methods, the replacement method is returned or null if no method can be found - - - - Gets the original method from the stackframe and uses original if method is a dynamic replacement - The - The original method from that stackframe - - - Gets Harmony version for all active Harmony instances - [out] The current Harmony version - A dictionary containing assembly versions keyed by Harmony IDs - - - - Under Mono, HarmonyException wraps IL compile errors with detailed information about the failure - - - - Default serialization constructor (not implemented) - The info - The context - - - - Get a list of IL instructions in pairs of offset+code - A list of key/value pairs which represent an offset and the code at that offset - - - - Get a list of IL instructions without offsets - A list of - - - - Get the error offset of the errornous IL instruction - The offset - - - - Get the index of the errornous IL instruction - The index into the list of instructions or -1 if not found - - - - A wrapper around a method to use it as a patch (for example a Prefix) - - - - The original method - - - - Class/type declaring this patch - - - - Patch method name - - - - Optional patch - - - - Array of argument types of the patch method - - - - of the patch - - - - Install this patch before patches with these Harmony IDs - - - - Install this patch after patches with these Harmony IDs - - - - Reverse patch type, see - - - - Create debug output for this patch - - - - Whether to use (true) or (false) mechanics - for -attributed delegate - - - - Default constructor - - - - Creates a patch from a given method - The original method - - - - Creates a patch from a given method - The original method - The patch - A list of harmony IDs that should come after this patch - A list of harmony IDs that should come before this patch - Set to true to generate debug output - - - - Creates a patch from a given method - The patch class/type - The patch method name - The optional argument types of the patch method (for overloaded methods) - - - - Gets the names of all internal patch info fields - A list of field names - - - - Merges annotations - The list of to merge - The merged - - - - Returns a string that represents the annotation - A string representation - - - - Annotation extensions - - - - Copies annotation information - The source - The destination - - - - Clones an annotation - The to clone - A copied - - - - Merges annotations - The master - The detail - A new, merged - - - - Gets all annotations on a class/type - The class/type - A list of all - - - - Gets merged annotations on a class/type - The class/type - The merged - - - - Gets all annotations on a method - The method/constructor - A list of - - - - Gets merged annotations on a method - The method/constructor - The merged - - - - - A mutable representation of an inline signature, similar to Mono.Cecil's CallSite. - Used by the calli instruction, can be used by transpilers - - - - - See - - - - See - - - - See - - - - The list of all parameter types or function pointer signatures received by the call site - - - - The return type or function pointer signature returned by the call site - - - - Returns a string representation of the inline signature - A string representation of the inline signature - - - - - A mutable representation of a parameter type with an attached type modifier, - similar to Mono.Cecil's OptionalModifierType / RequiredModifierType and C#'s modopt / modreq - - - - - Whether this is a modopt (optional modifier type) or a modreq (required modifier type) - - - - The modifier type attached to the parameter type - - - - The modified parameter type - - - - Returns a string representation of the modifier type - A string representation of the modifier type - - - - Patch serialization - - - - Control the binding of a serialized object to a type - Specifies the assembly name of the serialized object - Specifies the type name of the serialized object - The type of the object the formatter creates a new instance of - - - - Serializes a patch info - The - The serialized data - - - - Deserialize a patch info - The serialized data - A - - - - Compare function to sort patch priorities - The patch - Zero-based index - The priority - A standard sort integer (-1, 0, 1) - - - - Serializable patch information - - - - Prefixes as an array of - - - - Postfixes as an array of - - - - Transpilers as an array of - - - - Finalizers as an array of - - - - Returns if any of the patches wants debugging turned on - - - - Adds prefixes - An owner (Harmony ID) - The patch methods - - - - Adds a prefix - - - Removes prefixes - The owner of the prefixes, or * for all - - - - Adds postfixes - An owner (Harmony ID) - The patch methods - - - - Adds a postfix - - - Removes postfixes - The owner of the postfixes, or * for all - - - - Adds transpilers - An owner (Harmony ID) - The patch methods - - - - Adds a transpiler - - - Removes transpilers - The owner of the transpilers, or * for all - - - - Adds finalizers - An owner (Harmony ID) - The patch methods - - - - Adds a finalizer - - - Removes finalizers - The owner of the finalizers, or * for all - - - - Removes a patch using its method - The method of the patch to remove - - - - Gets a concatenated list of patches - The Harmony instance ID adding the new patches - The patches to add - The current patches - - - - Gets a list of patches with any from the given owner removed - The owner of the methods, or * for all - The current patches - - - - A serializable patch - - - - Zero-based index - - - - The owner (Harmony ID) - - - - The priority, see - - - - Keep this patch before the patches indicated in the list of Harmony IDs - - - - Keep this patch after the patches indicated in the list of Harmony IDs - - - - A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future - - - - The method of the static patch method - - - - Creates a patch - The method of the patch - Zero-based index - An owner (Harmony ID) - The priority, see - A list of Harmony IDs for patches that should run after this patch - A list of Harmony IDs for patches that should run before this patch - A flag that will log the replacement method via every time this patch is used to build the replacement, even in the future - - - - Creates a patch - The method of the patch - Zero-based index - An owner (Harmony ID) - - - Get the patch method or a DynamicMethod if original patch method is a patch factory - The original method/constructor - The method of the patch - - - - Determines whether patches are equal - The other patch - true if equal - - - - Determines how patches sort - The other patch - integer to define sort order (-1, 0, 1) - - - - Hash function - A hash code - - - - A PatchClassProcessor used to turn on a class/type into patches - - - - Creates a patch class processor by pointing out a class. Similar to PatchAll() but without searching through all classes. - The Harmony instance - The class to process (need to have at least a [HarmonyPatch] attribute) - - - - Applies the patches - A list of all created replacement methods or null if patch class is not annotated - - - - A group of patches - - - - A collection of prefix - - - - A collection of postfix - - - - A collection of transpiler - - - - A collection of finalizer - - - - Gets all owners (Harmony IDs) or all known patches - The patch owners - - - - Creates a group of patches - An array of prefixes as - An array of postfixes as - An array of transpileres as - An array of finalizeres as - - - - A PatchProcessor handles patches on a method/constructor - - - - Creates an empty patch processor - The Harmony instance - The original method/constructor - - - - Adds a prefix - The prefix as a - A for chaining calls - - - - Adds a prefix - The prefix method - A for chaining calls - - - - Adds a postfix - The postfix as a - A for chaining calls - - - - Adds a postfix - The postfix method - A for chaining calls - - - - Adds a transpiler - The transpiler as a - A for chaining calls - - - - Adds a transpiler - The transpiler method - A for chaining calls - - - - Adds a finalizer - The finalizer as a - A for chaining calls - - - - Adds a finalizer - The finalizer method - A for chaining calls - - - - Gets all patched original methods in the appdomain - An enumeration of patched method/constructor - - - - Applies all registered patches - The generated replacement method - - - - Unpatches patches of a given type and/or Harmony ID - The patch type - Harmony ID or * for any - A for chaining calls - - - - Unpatches a specific patch - The method of the patch - A for chaining calls - - - - Gets patch information on an original - The original method/constructor - The patch information as - - - - Sort patch methods by their priority rules - The original method - Patches to sort - The sorted patch methods - - - - Gets Harmony version for all active Harmony instances - [out] The current Harmony version - A dictionary containing assembly version keyed by Harmony ID - - - - Creates a new empty generator to use when reading method bodies - A new - - - - Creates a new generator matching the method/constructor to use when reading method bodies - The original method/constructor to copy method information from - A new - - - - Returns the methods unmodified list of code instructions - The original method/constructor - Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) - A list containing all the original - - - - Returns the methods unmodified list of code instructions - The original method/constructor - A new generator that now contains all local variables and labels contained in the result - A list containing all the original - - - - Returns the methods current list of code instructions after all existing transpilers have been applied - The original method/constructor - Apply only the first count of transpilers - Optionally an existing generator that will be used to create all local variables and labels contained in the result (if not specified, an internal generator is used) - A list of - - - - Returns the methods current list of code instructions after all existing transpilers have been applied - The original method/constructor - A new generator that now contains all local variables and labels contained in the result - Apply only the first count of transpilers - A list of - - - - A low level way to read the body of a method. Used for quick searching in methods - The original method - All instructions as opcode/operand pairs - - - - A low level way to read the body of a method. Used for quick searching in methods - The original method - An existing generator that will be used to create all local variables and labels contained in the result - All instructions as opcode/operand pairs - - - - A patch priority - - - - Patch last - - - - Patch with very low priority - - - - Patch with low priority - - - - Patch with lower than normal priority - - - - Patch with normal priority - - - - Patch with higher than normal priority - - - - Patch with high priority - - - - Patch with very high priority - - - - Patch first - - - - A reverse patcher - - - - Creates a reverse patcher - The Harmony instance - The original method/constructor - Your stand-in stub method as - - - - Applies the patch - The type of patch, see - The generated replacement method - - - - A collection of commonly used transpilers - - - - A transpiler that replaces all occurrences of a given method with another one using the same signature - The enumeration of to act on - Method or constructor to search for - Method or constructor to replace with - Modified enumeration of - - - - A transpiler that alters instructions that match a predicate by calling an action - The enumeration of to act on - A predicate selecting the instructions to change - An action to apply to matching instructions - Modified enumeration of - - - - A transpiler that logs a text at the beginning of the method - The instructions to act on - The log text - Modified enumeration of - - - - A helper class for reflection related functions - - - - Shortcut for to simplify the use of reflections and make it work for any access level - - - - Shortcut for to simplify the use of reflections and make it work for any access level but only within the current type - - - - Enumerates all assemblies in the current app domain, excluding visual studio assemblies - An enumeration of - - - Gets a type by name. Prefers a full name with namespace but falls back to the first type matching the name otherwise - The name - A type or null if not found - - - - Gets all successfully loaded types from a given assembly - The assembly - An array of types - - This calls and returns , while catching any thrown . - If such an exception is thrown, returns the successfully loaded types (, - filtered for non-null values). - - - - - Enumerates all successfully loaded types in the current app domain, excluding visual studio assemblies - An enumeration of all in all assemblies, excluding visual studio assemblies - - - Applies a function going up the type hierarchy and stops at the first non-null result - Result type of func() - The class/type to start with - The evaluation function returning T - The first non-null result, or null if no match - - The type hierarchy of a class or value type (including struct) does NOT include implemented interfaces, - and the type hierarchy of an interface is only itself (regardless of whether that interface implements other interfaces). - The top-most type in the type hierarchy of all non-interface types (including value types) is . - - - - - Applies a function going into inner types and stops at the first non-null result - Generic type parameter - The class/type to start with - The evaluation function returning T - The first non-null result, or null if no match - - - - Gets the reflection information for a directly declared field - The class/type where the field is defined - The name of the field - A field or null when type/name is null or when the field cannot be found - - - - Gets the reflection information for a directly declared field - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A field or null when the field cannot be found - - - - Gets the reflection information for a field by searching the type and all its super types - The class/type where the field is defined - The name of the field (case sensitive) - A field or null when type/name is null or when the field cannot be found - - - - Gets the reflection information for a field by searching the type and all its super types - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A field or null when the field cannot be found - - - - Gets the reflection information for a field - The class/type where the field is declared - The zero-based index of the field inside the class definition - A field or null when type is null or when the field cannot be found - - - - Gets the reflection information for a directly declared property - The class/type where the property is declared - The name of the property (case sensitive) - A property or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for a directly declared property - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A property or null when the property cannot be found - - - - Gets the reflection information for the getter method of a directly declared property - The class/type where the property is declared - The name of the property (case sensitive) - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for the getter method of a directly declared property - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A method or null when the property cannot be found - - - - Gets the reflection information for the setter method of a directly declared property - The class/type where the property is declared - The name of the property (case sensitive) - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for the Setter method of a directly declared property - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A method or null when the property cannot be found - - - - Gets the reflection information for a property by searching the type and all its super types - The class/type - The name - A property or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for a property by searching the type and all its super types - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A property or null when the property cannot be found - - - - Gets the reflection information for the getter method of a property by searching the type and all its super types - The class/type - The name - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for the getter method of a property by searching the type and all its super types - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for the setter method of a property by searching the type and all its super types - The class/type - The name - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for the setter method of a property by searching the type and all its super types - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A method or null when type/name is null or when the property cannot be found - - - - Gets the reflection information for a directly declared method - The class/type where the method is declared - The name of the method (case sensitive) - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A method or null when type/name is null or when the method cannot be found - - - - Gets the reflection information for a directly declared method - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A method or null when the method cannot be found - - - - Gets the reflection information for a method by searching the type and all its super types - The class/type where the method is declared - The name of the method (case sensitive) - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A method or null when type/name is null or when the method cannot be found - - - - Gets the reflection information for a method by searching the type and all its super types - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - Optional parameters to target a specific overload of the method - Optional list of types that define the generic version of the method - A method or null when the method cannot be found - - - - Gets the method of an enumerator method - Enumerator method that creates the enumerator - The internal method of the enumerator or null if no valid enumerator is detected - - - Gets the names of all method that are declared in a type - The declaring class/type - A list of method names - - - - Gets the names of all method that are declared in the type of the instance - An instance of the type to search in - A list of method names - - - - Gets the names of all fields that are declared in a type - The declaring class/type - A list of field names - - - - Gets the names of all fields that are declared in the type of the instance - An instance of the type to search in - A list of field names - - - - Gets the names of all properties that are declared in a type - The declaring class/type - A list of property names - - - - Gets the names of all properties that are declared in the type of the instance - An instance of the type to search in - A list of property names - - - - Gets the type of any class member of - A member - The class/type of this member - - - - Test if a class member is actually an concrete implementation - A member - True if the member is a declared - - - - Gets the real implementation of a class member - A member - The member itself if its declared. Otherwise the member that is actually implemented in some base type - - - - Gets the reflection information for a directly declared constructor - The class/type where the constructor is declared - Optional parameters to target a specific overload of the constructor - Optional parameters to only consider static constructors - A constructor info or null when type is null or when the constructor cannot be found - - - - Gets the reflection information for a constructor by searching the type and all its super types - The class/type where the constructor is declared - Optional parameters to target a specific overload of the method - Optional parameters to only consider static constructors - A constructor info or null when type is null or when the method cannot be found - - - - Gets reflection information for all declared constructors - The class/type where the constructors are declared - Optional parameters to only consider static constructors - A list of constructor infos - - - - Gets reflection information for all declared methods - The class/type where the methods are declared - A list of methods - - - - Gets reflection information for all declared properties - The class/type where the properties are declared - A list of properties - - - - Gets reflection information for all declared fields - The class/type where the fields are declared - A list of fields - - - - Gets the return type of a method or constructor - The method/constructor - The return type - - - - Given a type, returns the first inner type matching a recursive search by name - The class/type to start searching at - The name of the inner type (case sensitive) - The inner type or null if type/name is null or if a type with that name cannot be found - - - - Given a type, returns the first inner type matching a recursive search with a predicate - The class/type to start searching at - The predicate to search with - The inner type or null if type/predicate is null or if a type with that name cannot be found - - - - Given a type, returns the first method matching a predicate - The class/type to start searching at - The predicate to search with - The method or null if type/predicate is null or if a type with that name cannot be found - - - - Given a type, returns the first constructor matching a predicate - The class/type to start searching at - The predicate to search with - The constructor info or null if type/predicate is null or if a type with that name cannot be found - - - - Given a type, returns the first property matching a predicate - The class/type to start searching at - The predicate to search with - The property or null if type/predicate is null or if a type with that name cannot be found - - - - Returns an array containing the type of each object in the given array - An array of objects - An array of types or an empty array if parameters is null (if an object is null, the type for it will be object) - - - - Creates an array of input parameters for a given method and a given set of potential inputs - The method/constructor you are planing to call - The possible input parameters in any order - An object array matching the method signature - - - - A readable/assignable reference delegate to an instance field of a class or static field (NOT an instance field of a struct) - - An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), - implemented interface, or derived class of this type - - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The runtime instance to access the field (ignored and can be omitted for static fields) - A readable/assignable reference to the field - Null instance passed to a non-static field ref delegate - - Instance of invalid type passed to a non-static field ref delegate - (this can happen if is a parent class or interface of the field's declaring type) - - - - This delegate cannot be used for instance fields of structs, since a struct instance passed to the delegate would be passed by - value and thus would be a copy that only exists within the delegate's invocation. This is fine for a readonly reference, - but makes assignment futile. Use instead. - - - Note that is not required to be the field's declaring type. It can be a parent class (including ), - implemented interface, or a derived class of the field's declaring type ("instanceOfT is FieldDeclaringType" must be possible). - Specifically, must be assignable from OR to the field's declaring type. - Technically, this allows Nullable, although Nullable is only relevant for structs, and since only static fields of structs - are allowed for this delegate, and the instance passed to such a delegate is ignored, this hardly matters. - - - Similarly, is not required to be the field's field type, unless that type is a non-enum value type. - It can be a parent class (including object) or implemented interface of the field's field type. It cannot be a derived class. - This variance is not allowed for value types, since that would require boxing/unboxing, which is not allowed for ref values. - Special case for enum types: can also be the underlying integral type of the enum type. - Specifically, for reference types, must be assignable from - the field's field type; for non-enum value types, must be exactly the field's field type; for enum types, - must be either the field's field type or the underyling integral type of that field type. - - - This delegate supports static fields, even those defined in structs, for legacy reasons. - For such static fields, is effectively ignored. - Consider using (and StaticFieldRefAccess methods that return it) instead for static fields. - - - - - - Creates a field reference delegate for an instance field of a class - The class that defines the instance field, or derived class of this type - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The name of the field - A readable/assignable delegate - - - For backwards compatibility, there is no class constraint on . - Instead, the non-value-type check is done at runtime within the method. - - - - - - Creates an instance field reference for a specific instance of a class - The class that defines the instance field, or derived class of this type - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The instance - The name of the field - A readable/assignable reference to the field - - - This method is meant for one-off access to a field's value for a single instance. - If you need to access a field's value for potentially multiple instances, use instead. - FieldRefAccess<T, F>(instance, fieldName) is functionally equivalent to FieldRefAccess<T, F>(fieldName)(instance). - - - For backwards compatibility, there is no class constraint on . - Instead, the non-value-type check is done at runtime within the method. - - - - - - Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - - The type that defines the field, or derived class of this type; must not be a struct type unless the field is static - - The name of the field - - A readable/assignable delegate with T=object - (for static fields, the instance delegate parameter is ignored) - - - - This method is meant for cases where the given type is only known at runtime and thus can't be used as a type parameter T - in e.g. . - - - This method supports static fields, even those defined in structs, for legacy reasons. - Consider using (and other overloads) instead for static fields. - - - - - - Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) - type of the field - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A readable/assignable delegate with T=object - - - Creates a field reference delegate for an instance field of a class or static field (NOT an instance field of a struct) - - An arbitrary type if the field is static; otherwise the class that defines the field, or a parent class (including ), - implemented interface, or derived class of this type ("instanceOfT is FieldDeclaringType" must be possible) - - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The field - A readable/assignable delegate - - - This method is meant for cases where the field has already been obtained, avoiding the field searching cost in - e.g. . - - - This method supports static fields, even those defined in structs, for legacy reasons. - For such static fields, is effectively ignored. - Consider using (and other overloads) instead for static fields. - - - For backwards compatibility, there is no class constraint on . - Instead, the non-value-type check is done at runtime within the method. - - - - - - Creates a field reference for an instance field of a class - - The type that defines the field; or a parent class (including ), implemented interface, or derived class of this type - ("instanceOfT is FieldDeclaringType" must be possible) - - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The instance - The field - A readable/assignable reference to the field - - - This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. - If you need to access a field's value for potentially multiple instances, use instead. - FieldRefAccess<T, F>(instance, fieldInfo) is functionally equivalent to FieldRefAccess<T, F>(fieldInfo)(instance). - - - For backwards compatibility, there is no class constraint on . - Instead, the non-value-type check is done at runtime within the method. - - - - - - A readable/assignable reference delegate to an instance field of a struct - The struct that defines the instance field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - A reference to the runtime instance to access the field - A readable/assignable reference to the field - - - - Creates a field reference delegate for an instance field of a struct - The struct that defines the instance field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The name of the field - A readable/assignable delegate - - - - Creates an instance field reference for a specific instance of a struct - The struct that defines the instance field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The instance - The name of the field - A readable/assignable reference to the field - - - This method is meant for one-off access to a field's value for a single instance. - If you need to access a field's value for potentially multiple instances, use instead. - StructFieldRefAccess<T, F>(ref instance, fieldName) is functionally equivalent to StructFieldRefAccess<T, F>(fieldName)(ref instance). - - - - - - Creates a field reference delegate for an instance field of a struct - The struct that defines the instance field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The field - A readable/assignable delegate - - - This method is meant for cases where the field has already been obtained, avoiding the field searching cost in - e.g. . - - - - - - Creates a field reference for an instance field of a struct - The struct that defines the instance field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The instance - The field - A readable/assignable reference to the field - - - This method is meant for one-off access to a field's value for a single instance and where the field has already been obtained. - If you need to access a field's value for potentially multiple instances, use instead. - StructFieldRefAccess<T, F>(ref instance, fieldInfo) is functionally equivalent to StructFieldRefAccess<T, F>(fieldInfo)(ref instance). - - - - - - A readable/assignable reference delegate to a static field - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - A readable/assignable reference to the field - - - - Creates a static field reference - The type (can be class or struct) the field is defined in - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The name of the field - A readable/assignable reference to the field - - - - Creates a static field reference - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The type (can be class or struct) the field is defined in - The name of the field - A readable/assignable reference to the field - - - - Creates a static field reference - The type of the field - The member in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - A readable/assignable reference to the field - - - - Creates a static field reference - An arbitrary type (by convention, the type the field is defined in) - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The field - A readable/assignable reference to the field - - The type parameter is only used in exception messaging and to distinguish between this method overload - and the overload (which returns a rather than a reference). - - - - - Creates a static field reference delegate - - The type of the field; or if the field's type is a reference type (a class or interface, NOT a struct or other value type), - a type that is assignable from that type; or if the field's type is an enum type, - either that type or the underlying integral type of that enum type - - The field - A readable/assignable delegate - - - - Creates a delegate to a given method - The delegate Type - The method to create a delegate from. - - Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate - where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) - instance delegate where the delegate invocation always applies to the given . - - - Only applies for instance methods. If true (default) and is virtual, invocation of the delegate - calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called); - else, invocation of the delegate calls the exact specified (this is useful for calling base class methods) - Note: if false and is an interface method, an ArgumentException is thrown. - - A delegate of given to given - - - Delegate invocation is more performant and more convenient to use than - at a one-time setup cost. - - - Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods, - and both class and struct methods. - - - - - - Creates a delegate to a given method - The delegate Type - The method in the form TypeFullName:MemberName, where TypeFullName matches the form recognized by Type.GetType like Some.Namespace.Type. - - Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate - where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) - instance delegate where the delegate invocation always applies to the given . - - - Only applies for instance methods. If true (default) and is virtual, invocation of the delegate - calls the instance method virtually (the instance type's most-derived/overriden implementation of the method is called); - else, invocation of the delegate calls the exact specified (this is useful for calling base class methods) - Note: if false and is an interface method, an ArgumentException is thrown. - - A delegate of given to given - - - Delegate invocation is more performant and more convenient to use than - at a one-time setup cost. - - - Works for both type of static and instance methods, both open and closed (a.k.a. unbound and bound) instance methods, - and both class and struct methods. - - - - - - Creates a delegate for a given delegate definition, attributed with [] - The delegate Type, attributed with [] - - Only applies for instance methods. If null (default), returned delegate is an open (a.k.a. unbound) instance delegate - where an instance is supplied as the first argument to the delegate invocation; else, delegate is a closed (a.k.a. bound) - instance delegate where the delegate invocation always applies to the given . - - A delegate of given to the method specified via [] - attributes on - - This calls with the method and virtualCall arguments - determined from the [] attributes on , - and the given (for closed instance delegates). - - - - - Returns who called the current method - The calling method/constructor (excluding the caller) - - - - Rethrows an exception while preserving its stack trace (throw statement typically clobbers existing stack traces) - The exception to rethrow - - - - True if the current runtime is based on Mono, false otherwise (.NET) - - - - True if the current runtime is .NET Framework, false otherwise (.NET Core or Mono, although latter isn't guaranteed) - - - - True if the current runtime is .NET Core, false otherwise (Mono or .NET Framework) - - - - Throws a missing member runtime exception - The type that is involved - A list of names - - - - Gets default value for a specific type - The class/type - The default value - - - - Creates an (possibly uninitialized) instance of a given type - The class/type - The new instance - - - - Creates an (possibly uninitialized) instance of a given type - The class/type - The new instance - - - - - A cache for the or similar Add methods for different types. - - - - Makes a deep copy of any object - The type of the instance that should be created; for legacy reasons, this must be a class or interface - The original object - A copy of the original object but of type T - - - - Makes a deep copy of any object - The type of the instance that should be created - The original object - [out] The copy of the original object - Optional value transformation function (taking a field name and src/dst instances) - The optional path root to start with - - - - Makes a deep copy of any object - The original object - The type of the instance that should be created - Optional value transformation function (taking a field name and src/dst instances) - The optional path root to start with - The copy of the original object - - - - Tests if a type is a struct - The type - True if the type is a struct - - - - Tests if a type is a class - The type - True if the type is a class - - - - Tests if a type is a value type - The type - True if the type is a value type - - - - Tests if a type is an integer type - The type - True if the type represents some integer - - - - Tests if a type is a floating point type - The type - True if the type represents some floating point - - - - Tests if a type is a numerical type - The type - True if the type represents some number - - - - Tests if a type is void - The type - True if the type is void - - - - Test whether an instance is of a nullable type - Type of instance - An instance to test - True if instance is of nullable type, false if not - - - - Tests whether a type or member is static, as defined in C# - The type or member - True if the type or member is static - - - - Tests whether a type is static, as defined in C# - The type - True if the type is static - - - - Tests whether a property is static, as defined in C# - The property - True if the property is static - - - - Tests whether an event is static, as defined in C# - The event - True if the event is static - - - - Calculates a combined hash code for an enumeration of objects - The objects - The hash code - - - - A CodeInstruction match - - - The name of the match - - - The matched opcodes - - - The matched operands - - - The jumps from the match - - - The jumps to the match - - - The match predicate - - - Creates a code match - The optional opcode - The optional operand - The optional name - - - - Creates a code match that calls a method - The lambda expression using the method - The optional name - - - - Creates a code match that calls a method - The lambda expression using the method - The optional name - - - - Creates a code match - The CodeInstruction - An optional name - - - - Creates a code match - The predicate - An optional name - - - - Returns a string that represents the match - A string representation - - - - A CodeInstruction matcher - - - The current position - The index or -1 if out of bounds - - - - Gets the number of code instructions in this matcher - The count - - - - Checks whether the position of this CodeMatcher is within bounds - True if this CodeMatcher is valid - - - - Checks whether the position of this CodeMatcher is outside its bounds - True if this CodeMatcher is invalid - - - - Gets the remaining code instructions - The remaining count - - - - Gets the opcode at the current position - The opcode - - - - Gets the operand at the current position - The operand - - - - Gets the labels at the current position - The labels - - - - Gets the exception blocks at the current position - The blocks - - - - Creates an empty code matcher - - - Creates a code matcher from an enumeration of instructions - The instructions (transpiler argument) - An optional IL generator - - - - Makes a clone of this instruction matcher - A copy of this matcher - - - - Gets instructions at the current position - The instruction - - - - Gets instructions at the current position with offset - The offset - The instruction - - - - Gets all instructions - A list of instructions - - - - Gets all instructions as an enumeration - A list of instructions - - - - Gets some instructions counting from current position - Number of instructions - A list of instructions - - - - Gets all instructions within a range - The start index - The end index - A list of instructions - - - - Gets all instructions within a range (relative to current position) - The start offset - The end offset - A list of instructions - - - - Gets a list of all distinct labels - The instructions (transpiler argument) - A list of Labels - - - - Reports a failure - The method involved - The logger - True if current position is invalid and error was logged - - - - Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed) - Explanation of where/why the exception was thrown that will be added to the exception message - The same code matcher - - - - Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), - or if the matches do not match at current position - Explanation of where/why the exception was thrown that will be added to the exception message - Some code matches - The same code matcher - - - - Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), - or if the matches do not match at any point between current position and the end - Explanation of where/why the exception was thrown that will be added to the exception message - Some code matches - The same code matcher - - - - Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), - or if the matches do not match at any point between current position and the start - Explanation of where/why the exception was thrown that will be added to the exception message - Some code matches - The same code matcher - - - - Throw an InvalidOperationException if current state is invalid (position out of bounds / last match failed), - or if the check function returns false - Explanation of where/why the exception was thrown that will be added to the exception message - Function that checks validity of current state. If it returns false, an exception is thrown - The same code matcher - - - - Sets an instruction at current position - The instruction to set - The same code matcher - - - - Sets instruction at current position and advances - The instruction - The same code matcher - - - - Sets opcode and operand at current position - The opcode - The operand - The same code matcher - - - - Sets opcode and operand at current position and advances - The opcode - The operand - The same code matcher - - - - Sets opcode at current position and advances - The opcode - The same code matcher - - - - Sets operand at current position and advances - The operand - The same code matcher - - - - Creates a label at current position - [out] The label - The same code matcher - - - - Creates a label at a position - The position - [out] The new label - The same code matcher - - - - Creates a label at a position - The offset - [out] The new label - The same code matcher - - - - Adds an enumeration of labels to current position - The labels - The same code matcher - - - - Adds an enumeration of labels at a position - The position - The labels - The same code matcher - - - - Sets jump to - Branch instruction - Destination for the jump - [out] The created label - The same code matcher - - - - Inserts some instructions - The instructions - The same code matcher - - - - Inserts an enumeration of instructions - The instructions - The same code matcher - - - - Inserts a branch - The branch opcode - Branch destination - The same code matcher - - - - Inserts some instructions and advances the position - The instructions - The same code matcher - - - - Inserts an enumeration of instructions and advances the position - The instructions - The same code matcher - - - - Inserts a branch and advances the position - The branch opcode - Branch destination - The same code matcher - - - - Removes current instruction - The same code matcher - - - - Removes some instruction from current position by count - Number of instructions - The same code matcher - - - - Removes the instructions in a range - The start - The end - The same code matcher - - - - Removes the instructions in a offset range - The start offset - The end offset - The same code matcher - - - - Advances the current position - The offset - The same code matcher - - - - Moves the current position to the start - The same code matcher - - - - Moves the current position to the end - The same code matcher - - - - Searches forward with a predicate and advances position - The predicate - The same code matcher - - - - Searches backwards with a predicate and reverses position - The predicate - The same code matcher - - - - Matches forward and advances position to beginning of matching sequence - Some code matches - The same code matcher - - - - Matches forward and advances position to ending of matching sequence - Some code matches - The same code matcher - - - - Matches backwards and reverses position to beginning of matching sequence - Some code matches - The same code matcher - - - - Matches backwards and reverses position to ending of matching sequence - Some code matches - The same code matcher - - - - Repeats a match action until boundaries are met - The match action - An optional action that is executed when no match is found - The same code matcher - - - - Gets a match by its name - The match name - An instruction - - - - General extensions for common cases - - - - Joins an enumeration with a value converter and a delimiter to a string - The inner type of the enumeration - The enumeration - An optional value converter (from T to string) - An optional delimiter - The values joined into a string - - - - Converts an array of types (for example methods arguments) into a human readable form - The array of types - A human readable description including brackets - - - - A full description of a type - The type - A human readable description - - - - A a full description of a method or a constructor without assembly details but with generics - The method/constructor - A human readable description - - - - A helper converting parameter infos to types - The array of parameter infos - An array of types - - - - A helper to access a value via key from a dictionary - The key type - The value type - The dictionary - The key - The value for the key or the default value (of T) if that key does not exist - - - - A helper to access a value via key from a dictionary with extra casting - The value type - The dictionary - The key - The value for the key or the default value (of T) if that key does not exist or cannot be cast to T - - - - Escapes Unicode and ASCII non printable characters - The string to convert - The string to convert - A string literal surrounded by - - - - Extensions for - - - - Returns if an is initialized and valid - The - - - - Shortcut for testing whether the operand is equal to a non-null value - The - The value - True if the operand has the same type and is equal to the value - - - - Shortcut for testing whether the operand is equal to a non-null value - The - The value - True if the operand is equal to the value - This is an optimized version of for - - - - Shortcut for code.opcode == opcode && code.OperandIs(operand) - The - The - The operand value - True if the opcode is equal to the given opcode and the operand has the same type and is equal to the given operand - - - - Shortcut for code.opcode == opcode && code.OperandIs(operand) - The - The - The operand value - True if the opcode is equal to the given opcode and the operand is equal to the given operand - This is an optimized version of for - - - - Tests for any form of Ldarg* - The - The (optional) index - True if it matches one of the variations - - - - Tests for Ldarga/Ldarga_S - The - The (optional) index - True if it matches one of the variations - - - - Tests for Starg/Starg_S - The - The (optional) index - True if it matches one of the variations - - - - Tests for any form of Ldloc* - The - The optional local variable - True if it matches one of the variations - - - - Tests for any form of Stloc* - The - The optional local variable - True if it matches one of the variations - - - - Tests if the code instruction branches - The - The label if the instruction is a branch operation or if not - True if the instruction branches - - - - Tests if the code instruction calls the method/constructor - The - The method - True if the instruction calls the method or constructor - - - - Tests if the code instruction loads a constant - The - True if the instruction loads a constant - - - - Tests if the code instruction loads an integer constant - The - The integer constant - True if the instruction loads the constant - - - - Tests if the code instruction loads a floating point constant - The - The floating point constant - True if the instruction loads the constant - - - - Tests if the code instruction loads an enum constant - The - The enum - True if the instruction loads the constant - - - - Tests if the code instruction loads a string constant - The - The string - True if the instruction loads the constant - - - - Tests if the code instruction loads a field - The - The field - Set to true if the address of the field is loaded - True if the instruction loads the field - - - - Tests if the code instruction stores a field - The - The field - True if the instruction stores this field - - - - Adds labels to the code instruction and return it - The - One or several to add - The same code instruction - - - Adds labels to the code instruction and return it - The - An enumeration of - The same code instruction - - - Extracts all labels from the code instruction and returns them - The - A list of - - - Moves all labels from the code instruction to another one - The to move the labels from - The other to move the labels to - The code instruction labels were moved from (now empty) - - - Moves all labels from another code instruction to the current one - The to move the labels to - The other to move the labels from - The code instruction that received the labels - - - Adds ExceptionBlocks to the code instruction and return it - The - One or several to add - The same code instruction - - - Adds ExceptionBlocks to the code instruction and return it - The - An enumeration of - The same code instruction - - - Extracts all ExceptionBlocks from the code instruction and returns them - The - A list of - - - Moves all ExceptionBlocks from the code instruction to another one - The to move the ExceptionBlocks from - The other to move the ExceptionBlocks to - The code instruction blocks were moved from (now empty) - - - Moves all ExceptionBlocks from another code instruction to the current one - The to move the ExceptionBlocks to - The other to move the ExceptionBlocks from - The code instruction that received the blocks - - - General extensions for collections - - - - A simple way to execute code for every element in a collection - The inner type of the collection - The collection - The action to execute - - - - A simple way to execute code for elements in a collection matching a condition - The inner type of the collection - The collection - The predicate - The action to execute - - - - A helper to add an item to a collection - The inner type of the collection - The collection - The item to add - The collection containing the item - - - - A helper to add an item to an array - The inner type of the collection - The array - The item to add - The array containing the item - - - - A helper to add items to an array - The inner type of the collection - The array - The items to add - The array containing the items - - - - General extensions for collections - - - - Tests a class member if it has an IL method body (external methods for example don't have a body) - The member to test - Returns true if the member has an IL body or false if not - - - A file log for debugging - - - - Set this to make Harmony write its log content to this stream - - - - Full pathname of the log file, defaults to a file called harmony.log.txt on your Desktop - - - - The indent character. The default is tab - - - - The current indent level - - - - Changes the indentation level - The value to add to the indentation level - - - - Log a string in a buffered way. Use this method only if you are sure that FlushBuffer will be called - or else logging information is incomplete in case of a crash - The string to log - - - - Logs a list of string in a buffered way. Use this method only if you are sure that FlushBuffer will be called - or else logging information is incomplete in case of a crash - A list of strings to log (they will not be re-indented) - - - - Returns the log buffer and optionally empties it - True to empty the buffer - The buffer. - - - - Replaces the buffer with new lines - The lines to store - - - - Flushes the log buffer to disk (use in combination with LogBuffered) - - - - Log a string directly to disk. Slower method that prevents missing information in case of a crash - The string to log. - - - - Log a string directly to disk if Harmony.DEBUG is true. Slower method that prevents missing information in case of a crash - The string to log. - - - - Resets and deletes the log - - - - Logs some bytes as hex values - The pointer to some memory - The length of bytes to log - - - - A helper class to retrieve reflection info for non-private methods - - - - Given a lambda expression that calls a method, returns the method info - The lambda expression using the method - The method in the lambda expression - - - - Given a lambda expression that calls a method, returns the method info - The generic type - The lambda expression using the method - The method in the lambda expression - - - - Given a lambda expression that calls a method, returns the method info - The generic type - The generic result type - The lambda expression using the method - The method in the lambda expression - - - - Given a lambda expression that calls a method, returns the method info - The lambda expression using the method - The method in the lambda expression - - - - A reflection helper to read and write private elements - The result type defined by GetValue() - - - - Creates a traverse instance from an existing instance - The existing instance - - - - Gets/Sets the current value - The value to read or write - - - - A reflection helper to read and write private elements - - - - Creates a new traverse instance from a class/type - The class/type - A instance - - - - Creates a new traverse instance from a class T - The class - A instance - - - - Creates a new traverse instance from an instance - The object - A instance - - - - Creates a new traverse instance from a named type - The type name, for format see - A instance - - - - Creates a new and empty traverse instance - - - - Creates a new traverse instance from a class/type - The class/type - - - - Creates a new traverse instance from an instance - The object - - - - Gets the current value - The value - - - - Gets the current value - The type of the value - The value - - - - Invokes the current method with arguments and returns the result - The method arguments - The value returned by the method - - - - Invokes the current method with arguments and returns the result - The type of the value - The method arguments - The value returned by the method - - - - Sets a value of the current field or property - The value - The same traverse instance - - - - Gets the type of the current field or property - The type - - - - Moves the current traverse instance to a inner type - The type name - A traverse instance - - - - Moves the current traverse instance to a field - The type name - A traverse instance - - - - Moves the current traverse instance to a field - The type of the field - The type name - A traverse instance - - - - Gets all fields of the current type - A list of field names - - - - Moves the current traverse instance to a property - The type name - Optional property index - A traverse instance - - - - Moves the current traverse instance to a field - The type of the property - The type name - Optional property index - A traverse instance - - - - Gets all properties of the current type - A list of property names - - - - Moves the current traverse instance to a method - The name of the method - The arguments defining the argument types of the method overload - A traverse instance - - - - Moves the current traverse instance to a method - The name of the method - The argument types of the method - The arguments for the method - A traverse instance - - - - Gets all methods of the current type - A list of method names - - - - Checks if the current traverse instance is for a field - True if its a field - - - - Checks if the current traverse instance is for a property - True if its a property - - - - Checks if the current traverse instance is for a method - True if its a method - - - - Checks if the current traverse instance is for a type - True if its a type - - - - Iterates over all fields of the current type and executes a traverse action - Original object - The action receiving a instance for each field - - - - Iterates over all fields of the current type and executes a traverse action - Original object - Target object - The action receiving a pair of instances for each field pair - - - - Iterates over all fields of the current type and executes a traverse action - Original object - Target object - The action receiving a dot path representing the field pair and the instances - - - - Iterates over all properties of the current type and executes a traverse action - Original object - The action receiving a instance for each property - - - - Iterates over all properties of the current type and executes a traverse action - Original object - Target object - The action receiving a pair of instances for each property pair - - - - Iterates over all properties of the current type and executes a traverse action - Original object - Target object - The action receiving a dot path representing the property pair and the instances - - - - A default field action that copies fields to fields - - - - Returns a string that represents the current traverse - A string representation - - - - diff --git a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll b/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll deleted file mode 100644 index 545e22fc3..000000000 Binary files a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Editor.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll b/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll deleted file mode 100644 index cbca2f9f5..000000000 Binary files a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRTools.Common.Runtime.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt b/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt deleted file mode 100644 index 2985a39dc..000000000 --- a/Assets/FastScriptReload/Plugins/ImmersiveVrToolsCommon/ImmersiveVRToolsCommonLicense.txt +++ /dev/null @@ -1,3 +0,0 @@ -This code is part of the product and can be used with same licence as the one you purchased it with. - -Left in Plugins folder solely for convenience. \ No newline at end of file diff --git a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll b/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll deleted file mode 100644 index 22c92fc78..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.IMPORTANT.txt.txt b/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.IMPORTANT.txt.txt deleted file mode 100644 index f9c9bdb9d..000000000 --- a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CSharp.dll.IMPORTANT.txt.txt +++ /dev/null @@ -1 +0,0 @@ -library is excluded from any compilation by default. It's only purpose is to serve as a reference for dynamic keyword when targetting NET Standard 2.1 - as this is required by ThisRewriters to function properly \ No newline at end of file diff --git a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.CSharp.dll b/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.CSharp.dll deleted file mode 100644 index c48d7ceb6..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.CSharp.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.dll b/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.dll deleted file mode 100644 index 6bde7b728..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/Microsoft.CodeAnalysis.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Roslyn/RoslynLicense.txt b/Assets/FastScriptReload/Plugins/Roslyn/RoslynLicense.txt deleted file mode 100644 index 89d7c4fcc..000000000 --- a/Assets/FastScriptReload/Plugins/Roslyn/RoslynLicense.txt +++ /dev/null @@ -1,23 +0,0 @@ -The MIT License (MIT) - -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/Assets/FastScriptReload/Plugins/Roslyn/System.Collections.Immutable.dll b/Assets/FastScriptReload/Plugins/Roslyn/System.Collections.Immutable.dll deleted file mode 100644 index 7e8bbedca..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/System.Collections.Immutable.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Roslyn/System.Reflection.Metadata.dll b/Assets/FastScriptReload/Plugins/Roslyn/System.Reflection.Metadata.dll deleted file mode 100644 index 49b799767..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/System.Reflection.Metadata.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Plugins/Roslyn/System.Threading.Tasks.Extensions.dll b/Assets/FastScriptReload/Plugins/Roslyn/System.Threading.Tasks.Extensions.dll deleted file mode 100644 index a1234ce81..000000000 Binary files a/Assets/FastScriptReload/Plugins/Roslyn/System.Threading.Tasks.Extensions.dll and /dev/null differ diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ConstructorRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ConstructorRewriter.cs deleted file mode 100644 index f563021bf..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ConstructorRewriter.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System.Linq; -using FastScriptReload.Runtime; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class ConstructorRewriter : FastScriptReloadCodeRewriterBase - { - private readonly bool _adjustCtorOnlyForNonNestedTypes; - - public ConstructorRewriter(bool adjustCtorOnlyForNonNestedTypes, bool writeRewriteReasonAsComment) - : base(writeRewriteReasonAsComment) - { - _adjustCtorOnlyForNonNestedTypes = adjustCtorOnlyForNonNestedTypes; - } - - public override SyntaxNode VisitConstructorDeclaration(ConstructorDeclarationSyntax node) - { - if (_adjustCtorOnlyForNonNestedTypes) - { - var typeNestedLevel = node.Ancestors().Count(a => a is TypeDeclarationSyntax); - if (typeNestedLevel == 1) - { - return AdjustCtorOrDestructorNameForTypeAdjustment(node, node.Identifier); - } - } - else - { - return AdjustCtorOrDestructorNameForTypeAdjustment(node, node.Identifier); - } - - return base.VisitConstructorDeclaration(node); - } - - public override SyntaxNode VisitDestructorDeclaration(DestructorDeclarationSyntax node) - { - if (_adjustCtorOnlyForNonNestedTypes) - { - var typeNestedLevel = node.Ancestors().Count(a => a is TypeDeclarationSyntax); - if (typeNestedLevel == 1) - { - return AdjustCtorOrDestructorNameForTypeAdjustment(node, node.Identifier); - } - } - else - { - return AdjustCtorOrDestructorNameForTypeAdjustment(node, node.Identifier); - } - - return base.VisitDestructorDeclaration(node); - } - - private SyntaxNode AdjustCtorOrDestructorNameForTypeAdjustment(BaseMethodDeclarationSyntax node, SyntaxToken nodeIdentifier) - { - var typeName = (node.Ancestors().First(n => n is TypeDeclarationSyntax) as TypeDeclarationSyntax).Identifier.ToString(); - if (!nodeIdentifier.ToFullString().Contains(typeName)) - { - //Used Roslyn version bug, some static methods are also interpreted as ctors, eg - // public static void Method() - // { - // Bar(); //treated as Ctor declaration... - // } - // - // private static void Bar() - // { - // - // } - return node; - } - - if (!typeName.EndsWith(AssemblyChangesLoader.ClassnamePatchedPostfix)) - { - typeName += AssemblyChangesLoader.ClassnamePatchedPostfix; - } - - return AddRewriteCommentIfNeeded( - node.ReplaceToken(nodeIdentifier, SyntaxFactory.Identifier(typeName)), - $"{nameof(ConstructorRewriter)}:{nameof(AdjustCtorOrDestructorNameForTypeAdjustment)}" - ); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/CreateNewFieldInitMethodRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/CreateNewFieldInitMethodRewriter.cs deleted file mode 100644 index 489c96a43..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/CreateNewFieldInitMethodRewriter.cs +++ /dev/null @@ -1,150 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using ImmersiveVrToolsCommon.Runtime.Logging; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class CreateNewFieldInitMethodRewriter: FastScriptReloadCodeRewriterBase { - private readonly Dictionary> _typeToNewFieldDeclarations; - private static readonly string NewFieldsToCreateValueFnDictionaryFieldName = "__Patched_NewFieldNameToInitialValueFn"; - private static readonly string NewFieldsToGetTypeFnDictionaryFieldName = "__Patched_NewFieldsToGetTypeFnDictionaryFieldName"; - private static readonly string DictionaryFullNamespaceTypeName = "System.Collections.Generic.Dictionary"; - - public static Dictionary> ResolveNewFieldsToCreateValueFn(Type forType) - { - return (Dictionary>) forType.GetField(NewFieldsToCreateValueFnDictionaryFieldName, BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); - } - - public static Dictionary> ResolveNewFieldsToTypeFn(Type forType) - { - return (Dictionary>) forType.GetField(NewFieldsToGetTypeFnDictionaryFieldName, BindingFlags.NonPublic | BindingFlags.Static).GetValue(null); - } - - public CreateNewFieldInitMethodRewriter(Dictionary> typeToNewFieldDeclarations, bool writeRewriteReasonAsComment) - :base(writeRewriteReasonAsComment) - { - _typeToNewFieldDeclarations = typeToNewFieldDeclarations; - } - - public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax node) - { - var fullClassName = RoslynUtils.GetMemberFQDN(node, node.Identifier.ToString()); - if (!_typeToNewFieldDeclarations.TryGetValue(fullClassName, out var newClassFields)) - { - LoggerScoped.LogWarning($"Unable to find new-fields for type: {fullClassName}, this is not an issue if there are no new fields for that type."); - } - - Func getObjectFnSyntax = fieldDeclarationNode => fieldDeclarationNode.Declaration.Variables[0].Initializer?.Value //value captured from initializer - ?? SyntaxFactory.DefaultExpression(SyntaxFactory.IdentifierName(fieldDeclarationNode.Declaration.Type.ToString())); - var withDictionaryFieldNameToInitFieldValue = CreateNewFieldNameToGetObjectFnDictionary(node, newClassFields, getObjectFnSyntax, NewFieldsToCreateValueFnDictionaryFieldName); - - Func getObjectTypeFnSyntax = fieldDeclarationNode => SyntaxFactory.TypeOfExpression(fieldDeclarationNode.Declaration.Type); - return CreateNewFieldNameToGetObjectFnDictionary(withDictionaryFieldNameToInitFieldValue, newClassFields, getObjectTypeFnSyntax, NewFieldsToGetTypeFnDictionaryFieldName); - } - - private ClassDeclarationSyntax CreateNewFieldNameToGetObjectFnDictionary(ClassDeclarationSyntax node, - List newClassFields, Func getObjectFnSyntax, string dictionaryFieldName) - { - var dictionaryKeyToInitValueNodes = newClassFields.SelectMany(fieldName => - { - var fieldDeclarationNode = node.ChildNodes().OfType() - .Single(f => f.Declaration.Variables.First().Identifier.ToString() == fieldName); - - return new[] - { - (SyntaxNodeOrToken)SyntaxFactory.AssignmentExpression( - SyntaxKind.SimpleAssignmentExpression, - SyntaxFactory.ImplicitElementAccess() - .WithArgumentList( - SyntaxFactory.BracketedArgumentList( - SyntaxFactory.SingletonSeparatedList( - SyntaxFactory.Argument( - SyntaxFactory.LiteralExpression( - SyntaxKind.StringLiteralExpression, - SyntaxFactory.Literal(fieldDeclarationNode.Declaration.Variables.First() - .Identifier.ToString())))))), //variable name - SyntaxFactory.ParenthesizedLambdaExpression(getObjectFnSyntax(fieldDeclarationNode))), - SyntaxFactory.Token(SyntaxKind.CommaToken) //comma, add for all - }; - }).ToArray(); - - - var dictionaryInitializer = - SyntaxFactory.InitializerExpression( - SyntaxKind.ObjectInitializerExpression, - SyntaxFactory.SeparatedList( - dictionaryKeyToInitValueNodes.ToArray() - )); - - var withDictionaryFieldNameToInitFieldValue = node.AddMembers( - SyntaxFactory.FieldDeclaration( - SyntaxFactory.VariableDeclaration( - SyntaxFactory.GenericName( - SyntaxFactory.Identifier(DictionaryFullNamespaceTypeName)) - .WithTypeArgumentList( - SyntaxFactory.TypeArgumentList( - SyntaxFactory.SeparatedList( - new SyntaxNodeOrToken[] - { - SyntaxFactory.PredefinedType( - SyntaxFactory.Token(SyntaxKind.StringKeyword)), - SyntaxFactory.Token(SyntaxKind.CommaToken), - SyntaxFactory.GenericName( - SyntaxFactory.Identifier("System.Func")) - .WithTypeArgumentList( - SyntaxFactory.TypeArgumentList( - SyntaxFactory.SingletonSeparatedList( - SyntaxFactory.PredefinedType( - SyntaxFactory.Token(SyntaxKind.ObjectKeyword))))) - })))) - .WithVariables( - SyntaxFactory.SingletonSeparatedList( - SyntaxFactory.VariableDeclarator( - SyntaxFactory.Identifier(dictionaryFieldName)) - .WithInitializer( - SyntaxFactory.EqualsValueClause( - SyntaxFactory.ObjectCreationExpression( - SyntaxFactory.GenericName( - SyntaxFactory.Identifier(DictionaryFullNamespaceTypeName)) - .WithTypeArgumentList( - SyntaxFactory.TypeArgumentList( - SyntaxFactory.SeparatedList( - new SyntaxNodeOrToken[] - { - SyntaxFactory.PredefinedType( - SyntaxFactory.Token(SyntaxKind.StringKeyword)), - SyntaxFactory.Token(SyntaxKind.CommaToken), - SyntaxFactory.QualifiedName( - SyntaxFactory.IdentifierName("System"), - SyntaxFactory.GenericName( - SyntaxFactory.Identifier("Func")) - .WithTypeArgumentList( - SyntaxFactory.TypeArgumentList( - SyntaxFactory - .SingletonSeparatedList< - TypeSyntax>( - SyntaxFactory - .PredefinedType( - SyntaxFactory.Token( - SyntaxKind - .ObjectKeyword)))))) - })))) - .WithInitializer(dictionaryInitializer)))))) - .WithTriviaFrom(node) - .WithModifiers( - SyntaxFactory.TokenList( - SyntaxFactory.Token(SyntaxKind.PrivateKeyword), - SyntaxFactory.Token(SyntaxKind.StaticKeyword))) - .NormalizeWhitespace() - .WithLeadingTrivia(SyntaxFactory.TriviaList(SyntaxFactory.ElasticCarriageReturnLineFeed)) - .WithTrailingTrivia(SyntaxFactory.TriviaList(SyntaxFactory.ElasticCarriageReturnLineFeed, SyntaxFactory.ElasticCarriageReturnLineFeed)) - ); - return AddRewriteCommentIfNeeded(withDictionaryFieldNameToInitFieldValue, $"{nameof(CreateNewFieldInitMethodRewriter)}", true); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FastScriptReloadCodeRewriterBase.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FastScriptReloadCodeRewriterBase.cs deleted file mode 100644 index afa01a780..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FastScriptReloadCodeRewriterBase.cs +++ /dev/null @@ -1,64 +0,0 @@ -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - public abstract class FastScriptReloadCodeRewriterBase : CSharpSyntaxRewriter - { - protected readonly bool _writeRewriteReasonAsComment; - - protected FastScriptReloadCodeRewriterBase(bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) : base(visitIntoStructuredTrivia) - { - _writeRewriteReasonAsComment = writeRewriteReasonAsComment; - } - - protected SyntaxToken AddRewriteCommentIfNeeded(SyntaxToken syntaxToken, string commentText, bool append = false) - { - return AddRewriteCommentIfNeeded(syntaxToken, commentText, _writeRewriteReasonAsComment, append); - } - - public static SyntaxToken AddRewriteCommentIfNeeded(SyntaxToken syntaxToken, string commentText, bool writeRewriteReasonAsComment, bool append) - { - if (writeRewriteReasonAsComment) - { - if (append) - { - return syntaxToken.WithLeadingTrivia( - syntaxToken.LeadingTrivia.Add(SyntaxFactory.Comment($"/*FSR:{commentText}*/"))); - } - else - { - return syntaxToken.WithTrailingTrivia( - syntaxToken.TrailingTrivia.Add(SyntaxFactory.Comment($"/*FSR:{commentText}*/"))); - } - } - - return syntaxToken; - } - - protected T AddRewriteCommentIfNeeded(T syntaxNode, string commentText, bool append = false) - where T : SyntaxNode - { - return AddRewriteCommentIfNeeded(syntaxNode, commentText, _writeRewriteReasonAsComment, append); - } - - public static T AddRewriteCommentIfNeeded(T syntaxNode, string commentText, bool writeRewriteReasonAsComment, bool append) where T : SyntaxNode - { - if (writeRewriteReasonAsComment) - { - if (append) - { - return syntaxNode.WithLeadingTrivia(syntaxNode.GetLeadingTrivia() - .Add(SyntaxFactory.Comment($"/*FSR:{commentText}*/"))); - } - else - { - return syntaxNode.WithTrailingTrivia(syntaxNode.GetTrailingTrivia() - .Add(SyntaxFactory.Comment($"/*FSR:{commentText}*/"))); - } - } - - return syntaxNode; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FieldsWalker.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FieldsWalker.cs deleted file mode 100644 index a8d608848..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/FieldsWalker.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Collections.Generic; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class FieldsWalker : CSharpSyntaxWalker { - private readonly Dictionary> _typeNameToFieldDeclarations = new Dictionary>(); - - public override void VisitClassDeclaration(ClassDeclarationSyntax node) - { - var className = node.Identifier; - var fullClassName = RoslynUtils.GetMemberFQDN(node, className.ToString()); - if(!_typeNameToFieldDeclarations.ContainsKey(fullClassName)) { - _typeNameToFieldDeclarations[fullClassName] = new List(); - } - - base.VisitClassDeclaration(node); - } - - public override void VisitFieldDeclaration(FieldDeclarationSyntax node) - { - var fieldName = node.Declaration.Variables.First().Identifier.ToString(); - var fullClassName = RoslynUtils.GetMemberFQDNWithoutMemberName(node); - if(!_typeNameToFieldDeclarations.ContainsKey(fullClassName)) { - _typeNameToFieldDeclarations[fullClassName] = new List(); - } - - _typeNameToFieldDeclarations[fullClassName].Add(new NewFieldDeclaration(fieldName, node.Declaration.Type.ToString(), node)); - - base.VisitFieldDeclaration(node); - } - - public Dictionary> GetTypeToFieldDeclarations() { - return _typeNameToFieldDeclarations; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/HotReloadCompliantRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/HotReloadCompliantRewriter.cs deleted file mode 100644 index 05ceecaef..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/HotReloadCompliantRewriter.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections.Generic; -using FastScriptReload.Runtime; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class HotReloadCompliantRewriter : FastScriptReloadCodeRewriterBase - { - public List StrippedUsingDirectives = new List(); - - public HotReloadCompliantRewriter(bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) - : base(writeRewriteReasonAsComment, visitIntoStructuredTrivia) - { - } - - - public override SyntaxNode VisitClassDeclaration(ClassDeclarationSyntax node) - { - return AddPatchedPostfixToTopLevelDeclarations(node, node.Identifier); - //if subclasses need to be adjusted, it's done via recursion. - // foreach (var childNode in node.ChildNodes().OfType()) - // { - // var changed = Visit(childNode); - // node = node.ReplaceNode(childNode, changed); - // } - } - - public override SyntaxNode VisitStructDeclaration(StructDeclarationSyntax node) - { - return AddPatchedPostfixToTopLevelDeclarations(node, node.Identifier); - } - - public override SyntaxNode VisitEnumDeclaration(EnumDeclarationSyntax node) - { - return AddPatchedPostfixToTopLevelDeclarations(node, node.Identifier); - } - - public override SyntaxNode VisitDelegateDeclaration(DelegateDeclarationSyntax node) - { - return AddPatchedPostfixToTopLevelDeclarations(node, node.Identifier); - } - - public override SyntaxNode VisitInterfaceDeclaration(InterfaceDeclarationSyntax node) - { - return AddPatchedPostfixToTopLevelDeclarations(node, node.Identifier); - } - - public override SyntaxNode VisitUsingDirective(UsingDirectiveSyntax node) - { - if (node.Parent is CompilationUnitSyntax) - { - StrippedUsingDirectives.Add(node.ToFullString()); - return null; - } - - return base.VisitUsingDirective(node); - } - - private SyntaxNode AddPatchedPostfixToTopLevelDeclarations(CSharpSyntaxNode node, SyntaxToken identifier) - { - var newIdentifier = SyntaxFactory.Identifier(identifier + AssemblyChangesLoader.ClassnamePatchedPostfix); - newIdentifier = AddRewriteCommentIfNeeded(newIdentifier, $"{nameof(HotReloadCompliantRewriter)}:{nameof(AddPatchedPostfixToTopLevelDeclarations)}"); - node = node.ReplaceToken(identifier, newIdentifier); - return node; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ManualUserDefinedScriptOverridesRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ManualUserDefinedScriptOverridesRewriter.cs deleted file mode 100644 index a08ef9459..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ManualUserDefinedScriptOverridesRewriter.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - public class ManualUserDefinedScriptOverridesRewriter : FastScriptReloadCodeRewriterBase - { - private readonly SyntaxNode _userDefinedOverridesRoot; - - public ManualUserDefinedScriptOverridesRewriter(SyntaxNode userDefinedOverridesRoot, bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) - : base(writeRewriteReasonAsComment, visitIntoStructuredTrivia) - { - _userDefinedOverridesRoot = userDefinedOverridesRoot; - } - - //TODO: refactor to use OverrideDeclarationWithMatchingUserDefinedIfExists - public override SyntaxNode VisitConversionOperatorDeclaration(ConversionOperatorDeclarationSyntax node) - { - var methodFQDN = RoslynUtils.GetMemberFQDN(node, "operator"); - var matchingInOverride = _userDefinedOverridesRoot.DescendantNodes() - //implicit conversion operators do not have name, just parameter list - .OfType() - .FirstOrDefault(m => m.ParameterList.ToString() == node.ParameterList.ToString() //parameter lists is type / order / names, all good for targetting if there's a proper match - && methodFQDN == RoslynUtils.GetMemberFQDN(m, "operator") //make sure same FQDN, even though there's no name there could be more implicit operators in file - ); - - if (matchingInOverride != null) - { - return AddRewriteCommentIfNeeded(matchingInOverride.WithTriviaFrom(node), $"User defined custom conversion override", true); - } - else { - return base.VisitConversionOperatorDeclaration(node); - } - } - - //TODO: refactor to use OverrideDeclarationWithMatchingUserDefinedIfExists - public override SyntaxNode VisitMethodDeclaration(MethodDeclarationSyntax node) - { - var methodName = node.Identifier.ValueText; - var methodFQDN = RoslynUtils.GetMemberFQDN(node, node.Identifier.ToString()); - var matchingInOverride = _userDefinedOverridesRoot.DescendantNodes() - .OfType() - .FirstOrDefault(m => m.Identifier.ValueText == methodName - && m.ParameterList.Parameters.Count == node.ParameterList.Parameters.Count - && m.ParameterList.ToString() == node.ParameterList.ToString() //parameter lists is type / order / names, all good for targetting if there's a proper match - && m.TypeParameterList?.ToString() == node.TypeParameterList?.ToString() //typed paratemets are for generics, also check - && methodFQDN == RoslynUtils.GetMemberFQDN(m, m.Identifier.ToString()) //last check for mathod FQDN (potentially slower than others) - ); - - if (matchingInOverride != null) - { - return AddRewriteCommentIfNeeded(matchingInOverride.WithTriviaFrom(node), $"User defined custom method override", true); - } - else { - return base.VisitMethodDeclaration(node); - } - } - - - public override SyntaxNode VisitConstructorDeclaration(ConstructorDeclarationSyntax node) - { - return OverrideDeclarationWithMatchingUserDefinedIfExists( - node, - (d) => d.Identifier.ValueText, - (d) => HasSameParametersPredicate(node.ParameterList)(d.ParameterList), - (d) => base.VisitConstructorDeclaration(d) - ); - } - - public override SyntaxNode VisitDestructorDeclaration(DestructorDeclarationSyntax node) - { - return OverrideDeclarationWithMatchingUserDefinedIfExists( - node, - (d) => d.Identifier.ValueText, - (d) => HasSameParametersPredicate(node.ParameterList)(d.ParameterList), - (d) => base.VisitDestructorDeclaration(d) - ); - } - - public override SyntaxNode VisitPropertyDeclaration(PropertyDeclarationSyntax node) - { - return OverrideDeclarationWithMatchingUserDefinedIfExists( - node, - (d) => d.Identifier.ValueText, - (d) => true, - (d) => base.VisitPropertyDeclaration(d) - ); - } - - private SyntaxNode OverrideDeclarationWithMatchingUserDefinedIfExists(T node, Func getName, - Func customFindMatchInOverridePredicate, Func visitDefault) - where T: MemberDeclarationSyntax - { - var name = getName(node); - var fqdn = RoslynUtils.GetMemberFQDN(node, name); - var matchingInOverride = _userDefinedOverridesRoot.DescendantNodes() - .OfType() - .FirstOrDefault(d => - { - var declarationName = getName(d); - return declarationName == name - && customFindMatchInOverridePredicate(d) - && fqdn == RoslynUtils.GetMemberFQDN(d, declarationName); //last check for mathod FQDN (potentially slower than others) - } - - ); - - if (matchingInOverride != null) - { - return AddRewriteCommentIfNeeded(matchingInOverride.WithTriviaFrom(node), - $"User defined custom {typeof(T)} override", true); - } - else - { - return visitDefault(node); - } - } - - private Func HasSameParametersPredicate(ParameterListSyntax parameters) - { - return (resolvedParams) => resolvedParams.Parameters.Count == parameters.Parameters.Count - && resolvedParams.ToString() == parameters.ToString(); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldDeclaration.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldDeclaration.cs deleted file mode 100644 index b97ecada2..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldDeclaration.cs +++ /dev/null @@ -1,18 +0,0 @@ -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - public class NewFieldDeclaration - { - public string FieldName { get; } - public string TypeName { get; } - public FieldDeclarationSyntax FieldDeclarationSyntax { get; } //TODO: PERF: will that block whole tree from being garbage collected - - public NewFieldDeclaration(string fieldName, string typeName, FieldDeclarationSyntax fieldDeclarationSyntax) - { - FieldName = fieldName; - TypeName = typeName; - FieldDeclarationSyntax = fieldDeclarationSyntax; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldsRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldsRewriter.cs deleted file mode 100644 index a7c7aaaf8..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/NewFieldsRewriter.cs +++ /dev/null @@ -1,135 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using FastScriptReload.Runtime; -using FastScriptReload.Scripts.Runtime; -using ImmersiveVrToolsCommon.Runtime.Logging; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class NewFieldsRewriter : FastScriptReloadCodeRewriterBase - { - private readonly Dictionary> _typeToNewFieldDeclarations; - - public NewFieldsRewriter(Dictionary> typeToNewFieldDeclarations, bool writeRewriteReasonAsComment) - :base(writeRewriteReasonAsComment) - { - _typeToNewFieldDeclarations = typeToNewFieldDeclarations; - } - - public static List GetReplaceableMembers(Type type) - { //TODO: later other might need to be included? props? - return type.GetFields(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic).Cast().ToList(); - } - - - public override SyntaxNode VisitInvocationExpression(InvocationExpressionSyntax node) - { - if (node.Expression.ToString() == "nameof") - { - var classNode = node.Ancestors().OfType().FirstOrDefault(); - if (classNode != null) - { - var fullClassName = RoslynUtils.GetMemberFQDN(classNode, classNode.Identifier.ToString()); - if (!string.IsNullOrEmpty(fullClassName)) - { - var nameofExpressionParts = node.ArgumentList.Arguments.First().ToFullString().Split('.'); //nameof could have multiple . like NewFieldCustomClass.FieldInThatClass - var fieldName = nameofExpressionParts.First(); // should take first part only to determine if new field eg. 'NewFieldCustomClass' - if (_typeToNewFieldDeclarations.TryGetValue(fullClassName, out var allNewFieldNamesForClass)) - { - if (allNewFieldNamesForClass.Contains(fieldName)) - { - return AddRewriteCommentIfNeeded( - SyntaxFactory.LiteralExpression(SyntaxKind.StringLiteralExpression, SyntaxFactory.Literal(nameofExpressionParts.Last())), // should take last part only to for actual string eg. 'FieldInThatClass' - $"{nameof(NewFieldsRewriter)}:{nameof(VisitInvocationExpression)}"); - } - - } - } - } - } - - return base.VisitInvocationExpression(node); - } - - public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) - { - var classNode = node.Ancestors().OfType().FirstOrDefault(); - if (classNode != null) - { - var fullClassName = RoslynUtils.GetMemberFQDN(classNode, classNode.Identifier.ToString()); - if (!string.IsNullOrEmpty(fullClassName)) - { - var fieldName = node.Identifier.ToString(); - if (_typeToNewFieldDeclarations.TryGetValue(fullClassName, out var allNewFieldNamesForClass)) - { - if (allNewFieldNamesForClass.Contains(fieldName)) - { - var isNameOfExpression = node.Ancestors().OfType().Any(e => e.Expression.ToString() == "nameof"); - if (!isNameOfExpression) //nameof expression will be rewritten via VisitInvocationExpression - { - return - AddRewriteCommentIfNeeded( - SyntaxFactory.MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - SyntaxFactory.InvocationExpression( - SyntaxFactory.MemberAccessExpression( - SyntaxKind.SimpleMemberAccessExpression, - SyntaxFactory.IdentifierName(typeof(TemporaryNewFieldValues).FullName), - SyntaxFactory.GenericName( - SyntaxFactory.Identifier(nameof(TemporaryNewFieldValues.ResolvePatchedObject))) - .WithTypeArgumentList( - SyntaxFactory.TypeArgumentList( - SyntaxFactory.SingletonSeparatedList( - SyntaxFactory.IdentifierName(fullClassName + AssemblyChangesLoader.ClassnamePatchedPostfix)))))) - .WithArgumentList( - SyntaxFactory.ArgumentList( - SyntaxFactory.SingletonSeparatedList( - SyntaxFactory.Argument( - SyntaxFactory.ThisExpression())))), - SyntaxFactory.IdentifierName(fieldName)) - .WithTriviaFrom(node), - $"{nameof(NewFieldsRewriter)}:{nameof(VisitIdentifierName)}" - ); - } - } - } - else - { - LoggerScoped.LogWarning($"Unable to find type: {fullClassName}"); - } - } - } - - return base.VisitIdentifierName(node); - } - - public override SyntaxNode VisitFieldDeclaration(FieldDeclarationSyntax node) - { - var fieldName = node.Declaration.Variables.First().Identifier.ToString(); - var fullClassName = RoslynUtils.GetMemberFQDNWithoutMemberName(node); - - if (_typeToNewFieldDeclarations.TryGetValue(fullClassName, out var newFields)) - { - if (newFields.Contains(fieldName)) - { - var existingLeading = node.GetLeadingTrivia(); - var existingTrailing = node.GetTrailingTrivia(); - - return AddRewriteCommentIfNeeded( - node - .WithLeadingTrivia(existingLeading.Add(SyntaxFactory.Comment("/* "))) - .WithTrailingTrivia(existingTrailing.Insert(0, SyntaxFactory.Comment(" */ //Auto-excluded to prevent exceptions - see docs"))), - $"{nameof(NewFieldsRewriter)}:{nameof(VisitFieldDeclaration)}" - ); - } - } - - return base.VisitFieldDeclaration(node); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RoslynUtils.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RoslynUtils.cs deleted file mode 100644 index 154a3e117..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/RoslynUtils.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Linq; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - public class RoslynUtils - { - public static string GetMemberFQDN(MemberDeclarationSyntax memberNode, string memberName) //TODO: try get rid of member name (needs to cast to whatever member it could be to get identifier) - { - var outer = GetMemberFQDNWithoutMemberName(memberNode); - return !string.IsNullOrEmpty(outer) - ? $"{outer}.{memberName}" - : memberName; - } - - public static string GetMemberFQDNWithoutMemberName(MemberDeclarationSyntax memberNode) //TODO: move out to helper class - { - var fullTypeContibutingAncestorNames = memberNode.Ancestors().OfType().Select(da => - { - if (da is TypeDeclarationSyntax t) return t.Identifier.ToString(); - else if (da is NamespaceDeclarationSyntax n) return n.Name.ToString(); - else throw new Exception("Unable to resolve full field name"); - }).Reverse().ToList(); - - return string.Join(".", fullTypeContibutingAncestorNames); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisAssignmentRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisAssignmentRewriter.cs deleted file mode 100644 index fd55ff22c..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisAssignmentRewriter.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class ThisAssignmentRewriter: ThisRewriterBase { - public ThisAssignmentRewriter(bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) - : base(writeRewriteReasonAsComment, visitIntoStructuredTrivia) - { - } - - public override SyntaxNode VisitThisExpression(ThisExpressionSyntax node) - { - if (node.Parent is AssignmentExpressionSyntax) { - return CreateCastedThisExpression(node); - } - - return base.VisitThisExpression(node); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisCallRewriter.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisCallRewriter.cs deleted file mode 100644 index 59dd926f0..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisCallRewriter.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - class ThisCallRewriter : ThisRewriterBase - { - public ThisCallRewriter(bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) - : base(writeRewriteReasonAsComment, visitIntoStructuredTrivia) - { - } - - public override SyntaxNode VisitThisExpression(ThisExpressionSyntax node) - { - if (node.Parent is ArgumentSyntax) - { - return CreateCastedThisExpression(node); - } - return base.VisitThisExpression(node); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisRewriterBase.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisRewriterBase.cs deleted file mode 100644 index 994cd4098..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/CodeRewriting/ThisRewriterBase.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System.Linq; -using ImmersiveVrToolsCommon.Runtime.Logging; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; - -namespace FastScriptReload.Editor.Compilation.CodeRewriting -{ - abstract class ThisRewriterBase : FastScriptReloadCodeRewriterBase - { - protected ThisRewriterBase(bool writeRewriteReasonAsComment, bool visitIntoStructuredTrivia = false) - : base(writeRewriteReasonAsComment, visitIntoStructuredTrivia) - { - } - - protected SyntaxNode CreateCastedThisExpression(ThisExpressionSyntax node) - { - var ancestors = node.Ancestors().Where(n => n is TypeDeclarationSyntax).Cast().ToList(); - if (ancestors.Count() > 1) - { - LoggerScoped.LogWarning($"ThisRewriter: for class: '{ancestors.First().Identifier}' - 'this' call/assignment in nested class / struct. Dynamic cast will be used but this could cause issues in some cases:" + - $"\r\n\r\n1) - If called method has multiple overrides, using dynamic will cause compiler issue as it'll no longer be able to pick correct one" + - $"\r\n\r\n If you see any issues with that message, please look at 'Limitation' section in documentation as this outlines how to deal with it."); - - //TODO: casting to dynamic seems to be best option (and one that doesn't fail for nested classes), what's the performance overhead? - return SyntaxFactory.CastExpression( - SyntaxFactory.ParseTypeName("dynamic"), - node - ); - } - - var firstAncestor = ancestors.FirstOrDefault(); - if (firstAncestor == null) - { - LoggerScoped.LogWarning($"Unable to find first ancestor for node: {node.ToFullString()}, this rewrite will not be applied"); - return node; - } - - var methodInType = firstAncestor.Identifier.ToString(); - var resultNode = SyntaxFactory.CastExpression( - SyntaxFactory.ParseTypeName(methodInType), - SyntaxFactory.CastExpression( - SyntaxFactory.ParseTypeName(typeof(object).FullName), - node - ) - ); - - return AddRewriteCommentIfNeeded(resultNode, $"{nameof(ThisRewriterBase)}:{nameof(CreateCastedThisExpression)}"); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/DotnetExeCompilator.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/DotnetExeCompilator.cs deleted file mode 100644 index 5200d9225..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/DotnetExeCompilator.cs +++ /dev/null @@ -1,264 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading; -using FastScriptReload.Runtime; -using ImmersiveVRTools.Editor.Common.Cache; -using ImmersiveVRTools.Runtime.Common; -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEditor; -using Debug = UnityEngine.Debug; - -namespace FastScriptReload.Editor.Compilation -{ - [InitializeOnLoad] - public class DotnetExeDynamicCompilation: DynamicCompilationBase - { - private static string _dotnetExePath; - private static string _cscDll; - private static string _tempFolder; - - private static string ApplicationContentsPath = EditorApplication.applicationContentsPath; - private static readonly List _createdFilesToCleanUp = new List(); - - static DotnetExeDynamicCompilation() - { -#if UNITY_EDITOR_WIN - const string dotnetExecutablePath = "dotnet.exe"; -#else - const string dotnetExecutablePath = "dotnet"; //mac and linux, no extension -#endif - - _dotnetExePath = FindFileOrThrow(dotnetExecutablePath); - _cscDll = FindFileOrThrow("csc.dll"); //even on mac/linux need to find dll and use, not no extension one - _tempFolder = Path.GetTempPath(); - - EditorApplication.playModeStateChanged += obj => - { - if (obj == PlayModeStateChange.ExitingPlayMode && _createdFilesToCleanUp.Any()) - { - LoggerScoped.LogDebug($"Removing temporary files: [{string.Join(",", _createdFilesToCleanUp)}]"); - - foreach (var fileToCleanup in _createdFilesToCleanUp) - { - File.Delete(fileToCleanup); - } - _createdFilesToCleanUp.Clear(); - } - }; - } - - private static string FindFileOrThrow(string fileName) - { - return SessionStateCache.GetOrCreateString($"FSR:FilePath_{fileName}", () => - { - var foundFile = Directory - .GetFiles(ApplicationContentsPath, fileName, SearchOption.AllDirectories) - .FirstOrDefault(); - if (foundFile == null) - { - throw new Exception($"Unable to find '{fileName}', make sure Editor version supports it. You can also add preprocessor directive 'FastScriptReload_CompileViaMCS' which will use Mono compiler instead"); - } - - return foundFile; - }); - } - - public static CompileResult Compile(List filePathsWithSourceCode, UnityMainThreadDispatcher unityMainThreadDispatcher) - { - try - { - var asmName = Guid.NewGuid().ToString().Replace("-", ""); - var rspFile = _tempFolder + $"{asmName}.rsp"; - var assemblyAttributeFilePath = _tempFolder + $"{asmName}.DynamicallyCreatedAssemblyAttribute.cs"; - var sourceCodeCombinedFilePath = _tempFolder + $"{asmName}.SourceCodeCombined.cs"; - var outLibraryPath = $"{_tempFolder}{asmName}.dll"; - - var sourceCodeCombined = CreateSourceCodeCombinedContents(filePathsWithSourceCode, ActiveScriptCompilationDefines.ToList()); - CreateFileAndTrackAsCleanup(sourceCodeCombinedFilePath, sourceCodeCombined, _createdFilesToCleanUp); -#if UNITY_EDITOR - unityMainThreadDispatcher.Enqueue(() => - { - if ((bool)FastScriptReloadPreference.IsAutoOpenGeneratedSourceFileOnChangeEnabled.GetEditorPersistedValueOrDefault()) - { - UnityEditorInternal.InternalEditorUtility.OpenFileAtLineExternal(sourceCodeCombinedFilePath, 0); - } - }); -#endif - - var rspFileContent = GenerateCompilerArgsRspFileContents(outLibraryPath, _tempFolder, asmName, sourceCodeCombinedFilePath, assemblyAttributeFilePath); - CreateFileAndTrackAsCleanup(rspFile, rspFileContent, _createdFilesToCleanUp); - CreateFileAndTrackAsCleanup(assemblyAttributeFilePath, DynamicallyCreatedAssemblyAttributeSourceCode, _createdFilesToCleanUp); - - var exitCode = ExecuteDotnetExeCompilation(_dotnetExePath, _cscDll, rspFile, outLibraryPath, out var outputMessages); - - var compiledAssembly = Assembly.LoadFrom(outLibraryPath); - return new CompileResult(outLibraryPath, outputMessages, exitCode, compiledAssembly, sourceCodeCombined, sourceCodeCombinedFilePath); - } - catch (Exception) - { - LoggerScoped.LogError($"Compilation error: temporary files were not removed so they can be inspected: " - + string.Join(", ", _createdFilesToCleanUp - .Select(f => $"{f}"))); - if (LogHowToFixMessageOnCompilationError) - { - LoggerScoped.LogWarning($@"HOW TO FIX - INSTRUCTIONS: - -1) Open file that caused issue by looking at error log starting with: 'FSR: Compilation error: temporary files were not removed so they can be inspected: '. And click on file path to open. -2) Look up other error in the console, which will be like 'Error When updating files:' - this one contains exact line that failed to compile (in XXX_SourceCodeGenerated.cs file). Those are same compilation errors as you see in Unity/IDE when developing. -3) Read compiler error message as it'll help understand the issue - -Error could be caused by a normal compilation issue that you created in source file (eg typo), in that case please fix and it'll recompile. - -It's possible compilation fails due to existing limitation, in that case: - -You can quickly specify custom script rewrite override for part of code that's failing. - -Please use project panel to: -1) Right-click on the original file that has compilation issue -2) Click Fast Script Reload -> Add / Open User Script Rewrite Override -3) Read top comment in opened file and it'll explain how to create overrides - -I'm continuously working on mitigating limitations. - -If you could please get in touch with me via 'support@immersivevrtools.com' and include error you see in the console as well as created files (from paths in previous error). This way I can get it fixed for you. - -You can also: -1) Look at 'limitation' section in the docs - which will explain bit more around limitations and workarounds -2) Move some of the code that you want to work on to different file - compilation happens on whole file, if you have multiple types there it could increase the chance of issues -3) Have a look at compilation error, it shows error line (in the '*.SourceCodeCombined.cs' file, it's going to be something that compiler does not accept, likely easy to spot. To workaround you can change that part of code in original file. It's specific patterns that'll break it. - -*If you want to prevent that message from reappearing please go to Window -> Fast Script Reload -> Start Screen -> Logging -> tick off 'Log how to fix message on compilation error'*"); - - } - throw; - } - } - - private static void CreateFileAndTrackAsCleanup(string filePath, string contents, List createdFilesToCleanUp) - { - File.WriteAllText(filePath, contents); - createdFilesToCleanUp.Add(filePath); - } - - private static string GenerateCompilerArgsRspFileContents(string outLibraryPath, string tempFolder, string asmName, - string sourceCodeCombinedFilePath, string assemblyAttributeFilePath) - { - var rspContents = new StringBuilder(); - rspContents.AppendLine("-target:library"); - rspContents.AppendLine($"-out:\"{outLibraryPath}\""); - rspContents.AppendLine($"-refout:\"{tempFolder}{asmName}.ref.dll\""); //TODO: what's that? - foreach (var symbol in ActiveScriptCompilationDefines) - { - rspContents.AppendLine($"-define:{symbol}"); - } - - foreach (var referenceToAdd in ResolveReferencesToAdd(new List())) - { - rspContents.AppendLine($"-r:\"{referenceToAdd}\""); - } - - rspContents.AppendLine($"\"{sourceCodeCombinedFilePath}\""); - rspContents.AppendLine($"\"{assemblyAttributeFilePath}\""); - - rspContents.AppendLine($"-langversion:latest"); - - rspContents.AppendLine("/deterministic"); - rspContents.AppendLine("/optimize-"); - rspContents.AppendLine("/debug:portable"); - rspContents.AppendLine("/nologo"); - rspContents.AppendLine("/RuntimeMetadataVersion:v4.0.30319"); - - rspContents.AppendLine("/nowarn:0169"); - rspContents.AppendLine("/nowarn:0649"); - rspContents.AppendLine("/nowarn:1701"); - rspContents.AppendLine("/nowarn:1702"); - rspContents.AppendLine("/utf8output"); - rspContents.AppendLine("/preferreduilang:en-US"); - - var rspContentsString = rspContents.ToString(); - return rspContentsString; - } - - private static int ExecuteDotnetExeCompilation(string dotnetExePath, string cscDll, string rspFile, - string outLibraryPath, out List outputMessages) - { - var process = new Process(); - process.StartInfo.FileName = dotnetExePath; - process.StartInfo.Arguments = $"exec \"{cscDll}\" /nostdlib /noconfig /shared \"@{rspFile}\""; - - var outMessages = new List(); - - var stderr_completed = new ManualResetEvent(false); - var stdout_completed = new ManualResetEvent(false); - - process.StartInfo.CreateNoWindow = true; - process.StartInfo.UseShellExecute = false; - process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; - process.StartInfo.RedirectStandardOutput = true; - process.StartInfo.RedirectStandardError = true; - process.ErrorDataReceived += (sender, args) => - { - if (args.Data != null) - outMessages.Add(args.Data); - else - stderr_completed.Set(); - }; - process.OutputDataReceived += (sender, args) => - { - if (args.Data != null) - { - outMessages.Add(args.Data); - return; - } - - stdout_completed.Set(); - }; - process.StartInfo.StandardOutputEncoding = process.StartInfo.StandardErrorEncoding = Encoding.UTF8; - - try - { - process.Start(); - } - catch (Exception ex) - { - if (ex is Win32Exception win32Exception) - throw new SystemException(string.Format("Error running {0}: {1}", process.StartInfo.FileName, - typeof(Win32Exception) - .GetMethod("GetErrorMessage", BindingFlags.Static | BindingFlags.NonPublic)? - .Invoke(null, new object[] { win32Exception.NativeErrorCode }) ?? - $", NativeErrorCode: {win32Exception.NativeErrorCode}")); - throw; - } - - int exitCode = -1; - try - { - process.BeginOutputReadLine(); - process.BeginErrorReadLine(); - process.WaitForExit(); - - exitCode = process.ExitCode; - } - finally - { - stderr_completed.WaitOne(TimeSpan.FromSeconds(30.0)); - stdout_completed.WaitOne(TimeSpan.FromSeconds(30.0)); - process.Close(); - } - - if (!File.Exists(outLibraryPath)) - throw new Exception("Compiler failed to produce the assembly. Output: '" + - string.Join(Environment.NewLine + Environment.NewLine, outMessages) + "'"); - - outputMessages = new List(); - outputMessages.AddRange(outMessages); - return exitCode; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicAssemblyCompiler.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicAssemblyCompiler.cs deleted file mode 100644 index 6e1298ff0..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicAssemblyCompiler.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Reflection; -using FastScriptReload.Runtime; -using ImmersiveVRTools.Runtime.Common; -using ImmersiveVrToolsCommon.Runtime.Logging; -using Debug = UnityEngine.Debug; - -namespace FastScriptReload.Editor.Compilation -{ - public class DynamicAssemblyCompiler - { - public static CompileResult Compile(List filePathsWithSourceCode, UnityMainThreadDispatcher unityMainThreadDispatcher) - { - var sw = new Stopwatch(); - sw.Start(); - -#if FastScriptReload_CompileViaMCS - var result = McsExeDynamicCompilation.Compile(filePathsWithSourceCode); -#else - var compileResult = DotnetExeDynamicCompilation.Compile(filePathsWithSourceCode, unityMainThreadDispatcher); -#endif - - LoggerScoped.Log($"Files: {string.Join(",", filePathsWithSourceCode.Select(fn => new FileInfo(fn).Name))} changed " + -#if UNITY_2021_1_OR_NEWER - $"(click here to debug [in bottom details pane])" + -#else - "(to debug go to Fast Script Reload -> Start Screen -> Debugging -> Auto-open generated source file for debugging)" + -#endif - $" - compilation (took {sw.ElapsedMilliseconds}ms)"); - - return compileResult; - } - } - - public class CompileResult - { - public Assembly CompiledAssembly { get; } - public string CompiledAssemblyPath { get; } - public List MessagesFromCompilerProcess { get; } - public bool IsError => string.IsNullOrEmpty(CompiledAssemblyPath); - public int NativeCompilerReturnValue { get; } - public string SourceCodeCombined { get; } - public string SourceCodeCombinedFileLocation { get; } - - public CompileResult(string compiledAssemblyPath, List messagesFromCompilerProcess, int nativeCompilerReturnValue, Assembly compiledAssembly, string sourceCodeCombined, string sourceCodeCombinedFileLocation) - { - CompiledAssemblyPath = compiledAssemblyPath; - MessagesFromCompilerProcess = messagesFromCompilerProcess; - NativeCompilerReturnValue = nativeCompilerReturnValue; - CompiledAssembly = compiledAssembly; - SourceCodeCombined = sourceCodeCombined; - SourceCodeCombinedFileLocation = sourceCodeCombinedFileLocation; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicCompilationBase.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicCompilationBase.cs deleted file mode 100644 index 82057ad01..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/DynamicCompilationBase.cs +++ /dev/null @@ -1,316 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Reflection; -using System.Text; -using FastScriptReload.Editor.Compilation.CodeRewriting; -using FastScriptReload.Editor.Compilation.ScriptGenerationOverrides; -using FastScriptReload.Runtime; -using FastScriptReload.Scripts.Runtime; -using ImmersiveVRTools.Editor.Common.Cache; -using ImmersiveVRTools.Runtime.Common.Utilities; -using ImmersiveVrToolsCommon.Runtime.Logging; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using UnityEditor; -using UnityEngine; -using UnityEngine.Rendering; - -namespace FastScriptReload.Editor.Compilation -{ - [InitializeOnLoad] - public class DynamicCompilationBase - { - public static bool DebugWriteRewriteReasonAsComment; - public static bool LogHowToFixMessageOnCompilationError; - public static bool EnableExperimentalThisCallLimitationFix; - public static List ReferencesExcludedFromHotReload = new List(); - - public const string DebuggingInformationComment = - @"// DEBUGGING READ-ME " + -#if !UNITY_2021_1_OR_NEWER -"WARN: on Unity versions prior to 2021, opening files in that manner can cause static values to be reinitialized" -#else - "" -#endif - + - @"// -// To debug simply add a breakpoint in this file. -// -// With every code change - new file is generated, currently you'll need to re-set breakpoints after each change. -// You can also: -// - step into the function that was changed (and that will get you to correct source file) -// - add a function breakpoint in your IDE (this way you won't have to re-add it every time) -// -// Tool can automatically open dynamically-compiled code file every time to make setting breakpoints easier. -// You can adjust that behaviour via 'Window -> FastScriptReload -> Start Screen -> Debugging -> Do not auto-open generated cs file'. -// -// You can always open generated file when needed by clicking link in console, eg. -// 'FSR: Files: FunctionLibrary.cs changed (click here to debug [in bottom details pane]) - compilation (took 240ms)' - - -"; - - public static readonly string[] ActiveScriptCompilationDefines; - protected static readonly string DynamicallyCreatedAssemblyAttributeSourceCode = $"[assembly: {typeof(DynamicallyCreatedAssemblyAttribute).FullName}()]"; - private static readonly string AssemblyCsharpFullPath; - - static DynamicCompilationBase() - { - //needs to be set from main thread - ActiveScriptCompilationDefines = EditorUserBuildSettings.activeScriptCompilationDefines; - AssemblyCsharpFullPath = SessionStateCache.GetOrCreateString( - $"FSR:AssemblyCsharpFullPath", - () => AssetDatabase.FindAssets("Microsoft.CSharp") - .Select(g => new System.IO.FileInfo(UnityEngine.Application.dataPath + "/../" + AssetDatabase.GUIDToAssetPath(g))) - .First(fi => fi.Name.ToLower() == "Microsoft.CSharp.dll".ToLower()).FullName - ); - - } - - protected static string CreateSourceCodeCombinedContents(List sourceCodeFiles, List definedPreprocessorSymbols) - { - var combinedUsingStatements = new List(); - - var sourceCodeWithAdjustments = sourceCodeFiles.Select(sourceCodeFile => - { - var fileCode = File.ReadAllText(sourceCodeFile); - var tree = CSharpSyntaxTree.ParseText(fileCode, new CSharpParseOptions(preprocessorSymbols: definedPreprocessorSymbols)); - var root = tree.GetRoot(); - - var typeToNewFieldDeclarations = new Dictionary>(); - if (FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport) - { - //WARN: needs to walk before root class name changes, otherwise it'll resolve wrong name - var fieldsWalker = new FieldsWalker(); - fieldsWalker.Visit(root); - - var typeToFieldDeclarations = fieldsWalker.GetTypeToFieldDeclarations(); - typeToNewFieldDeclarations = typeToFieldDeclarations.ToDictionary( - t => t.Key, - t => - { - if (!ProjectTypeCache.AllTypesInNonDynamicGeneratedAssemblies.TryGetValue(t.Key, out var existingType)) - { - LoggerScoped.LogDebug($"Unable to find type: {t.Key} in loaded assemblies. If that's the class you've added field to then it may not be properly working. It's possible the class was not yet loaded / used and you can ignore that warning. If it's causing any issues please contact support"); - return new List(); - } - - var existingTypeMembersToReplace = NewFieldsRewriter.GetReplaceableMembers(existingType).Select(m => m.Name).ToList(); - - var newFields = t.Value.Where(fD => !existingTypeMembersToReplace.Contains(fD.FieldName)).ToList(); - - //TODO: ideally that registration would happen outside of this class - //TODO: to work for LSR it needs to be handled in runtime - TemporaryNewFieldValues.RegisterNewFields( - existingType, - newFields.ToDictionary( - fD => fD.FieldName, - fD => new TemporaryNewFieldValues.GetNewFieldInitialValue((Type forNewlyGeneratedType) => - { - //TODO: PERF: could cache those - they run to init every new value (for every instance when accessed) - return CreateNewFieldInitMethodRewriter.ResolveNewFieldsToCreateValueFn(forNewlyGeneratedType)[fD.FieldName](); - }) - ), - newFields.ToDictionary( - fD => fD.FieldName, - fD => new TemporaryNewFieldValues.GetNewFieldType((Type forNewlyGeneratedType) => - { - //TODO: PERF: could cache those - they run to init every new value (for every instance when accessed) - return (Type)CreateNewFieldInitMethodRewriter.ResolveNewFieldsToTypeFn(forNewlyGeneratedType)[fD.FieldName](); - }) - ) - ); - - return newFields.Select(fD => fD.FieldName).ToList(); - } - ); - -#if LiveScriptReload_Enabled - if (typeToNewFieldDeclarations.Any(kv => kv.Value.Any())) - { - LoggerScoped.LogWarning($"{nameof(FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport)} is enabled. This is not supported in running build. Quite likely it'll crash remote client."); - } -#endif - } - - //WARN: application order is important, eg ctors need to happen before class names as otherwise ctors will not be recognised as ctors - if (FastScriptReloadManager.Instance.EnableExperimentalThisCallLimitationFix) - { - root = new ThisCallRewriter(DebugWriteRewriteReasonAsComment).Visit(root); - root = new ThisAssignmentRewriter(DebugWriteRewriteReasonAsComment).Visit(root); - } - - if (FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport) - { - root = new NewFieldsRewriter(typeToNewFieldDeclarations, DebugWriteRewriteReasonAsComment).Visit(root); - root = new CreateNewFieldInitMethodRewriter(typeToNewFieldDeclarations, DebugWriteRewriteReasonAsComment).Visit(root); - } - - root = new ConstructorRewriter(adjustCtorOnlyForNonNestedTypes: true, DebugWriteRewriteReasonAsComment).Visit(root); - - var hotReloadCompliantRewriter = new HotReloadCompliantRewriter(DebugWriteRewriteReasonAsComment); - root = hotReloadCompliantRewriter.Visit(root); - combinedUsingStatements.AddRange(hotReloadCompliantRewriter.StrippedUsingDirectives); - - //processed as last step to simply rewrite all changes made before - if (TryResolveUserDefinedOverridesRoot(sourceCodeFile, definedPreprocessorSymbols, out var userDefinedOverridesRoot)) - { - root = ProcessUserDefinedOverridesReplacements(sourceCodeFile, root, userDefinedOverridesRoot); - root = AddUserDefinedOverridenTypes(userDefinedOverridesRoot, root); - } - - return root.ToFullString(); - }).ToList(); - - var sourceCodeCombinedSb = new StringBuilder(); - sourceCodeCombinedSb.Append(DebuggingInformationComment); - - foreach (var usingStatement in combinedUsingStatements.Distinct()) - { - sourceCodeCombinedSb.Append(usingStatement); - } - - foreach (var sourceCodeWithAdjustment in sourceCodeWithAdjustments) - { - sourceCodeCombinedSb.AppendLine(sourceCodeWithAdjustment); - } - - LoggerScoped.LogDebug("Source Code Created:\r\n\r\n" + sourceCodeCombinedSb); - return sourceCodeCombinedSb.ToString(); - } - - private static SyntaxNode AddUserDefinedOverridenTypes(SyntaxNode userDefinedOverridesRoot, SyntaxNode root) - { - try - { - var userDefinedOverrideTypes = userDefinedOverridesRoot.DescendantNodes().OfType() - .ToDictionary(n => RoslynUtils.GetMemberFQDN(n, n.Identifier.ToString())); - var allDefinedTypesInRecompiledFile = root.DescendantNodes().OfType() - .ToDictionary(n => RoslynUtils.GetMemberFQDN(n, n.Identifier.ToString())); //what about nested types? - - var userDefinedOverrideTypesWithoutMatchnigInRecompiledFile = userDefinedOverrideTypes.Select(overridenType => - { - if (!allDefinedTypesInRecompiledFile.ContainsKey(overridenType.Key)) - { - return overridenType; - } - - return default(KeyValuePair); - }) - .Where(kv => kv.Key != default(string)) - .ToList(); - - //types should be added either to root namespace or root of document - var rootNamespace = root.DescendantNodes().OfType().FirstOrDefault(); - foreach (var overridenTypeToAdd in userDefinedOverrideTypesWithoutMatchnigInRecompiledFile) - { - var newMember = FastScriptReloadCodeRewriterBase.AddRewriteCommentIfNeeded(overridenTypeToAdd.Value, - "New type defined in override file", - true, //always write reason so it's not easy to miss in generated file - true); - if (rootNamespace != null) - { - rootNamespace = - root.DescendantNodes().OfType() - .FirstOrDefault(); //need to search again to make sure it didn't change - var newRootNamespace = rootNamespace.AddMembers(newMember); - root = root.ReplaceNode(rootNamespace, newRootNamespace); - } - else - { - root = ((CompilationUnitSyntax)root).AddMembers(newMember); - } - } - } - catch (Exception e) - { - Debug.LogError($"Unable to add user defined override types. {e}"); - } - - return root; - } - - private static bool TryResolveUserDefinedOverridesRoot(string sourceCodeFile, List definedPreprocessorSymbols, out SyntaxNode userDefinedOverridesRoot) - { - if (ScriptGenerationOverridesManager.TryGetScriptOverride(new FileInfo(sourceCodeFile), out var userDefinedOverridesFile)) - { - try - { - userDefinedOverridesRoot = CSharpSyntaxTree.ParseText(File.ReadAllText(userDefinedOverridesFile.FullName), new CSharpParseOptions(preprocessorSymbols: definedPreprocessorSymbols)).GetRoot(); - return true; - } - catch (Exception ex) - { - Debug.LogError($"Unable to resolve user defined overrides for file: '{userDefinedOverridesFile.FullName}' - please make sure it's compilable. Error: '{ex}'"); - } - } - - userDefinedOverridesRoot = null; - return false; - } - - private static SyntaxNode ProcessUserDefinedOverridesReplacements(string sourceCodeFile, SyntaxNode root, SyntaxNode userDefinedOverridesRoot) - { - if (ScriptGenerationOverridesManager.TryGetScriptOverride(new FileInfo(sourceCodeFile), out var userDefinedOverridesFile)) - { - try - { - var userDefinedScriptOverridesRewriter = new ManualUserDefinedScriptOverridesRewriter(userDefinedOverridesRoot, - true); //always write rewrite reason so it's not easy to miss - root = userDefinedScriptOverridesRewriter.Visit(root); - } - catch (Exception ex) - { - Debug.LogError($"Unable to resolve user defined overrides for file: '{userDefinedOverridesFile.FullName}' - please make sure it's compilable. Error: '{ex}'"); - } - } - - return root; - } - - protected static List ResolveReferencesToAdd(List excludeAssyNames) - { - var referencesToAdd = new List(); - foreach (var assembly in AppDomain.CurrentDomain - .GetAssemblies() //TODO: PERF: just need to load once and cache? or get assembly based on changed file only? - .Where(a => excludeAssyNames.All(assyName => !a.FullName.StartsWith(assyName)) - && CustomAttributeExtensions.GetCustomAttribute((Assembly)a) == null)) - { - try - { - if (string.IsNullOrEmpty(assembly.Location)) - { - LoggerScoped.LogDebug($"FastScriptReload: Assembly location is null, usually dynamic assembly, harmless."); - continue; - } - - referencesToAdd.Add(assembly.Location); - } - catch (Exception) - { - LoggerScoped.LogDebug($"Unable to add a reference to assembly as unable to get location or null: {assembly.FullName} when hot-reloading, this is likely dynamic assembly and won't cause issues"); - } - } - - referencesToAdd = referencesToAdd.Where(r => !ReferencesExcludedFromHotReload.Any(rTe => r.EndsWith(rTe))).ToList(); - - if (EnableExperimentalThisCallLimitationFix || FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport) - { - IncludeMicrosoftCsharpReferenceToSupportDynamicKeyword(referencesToAdd); - } - - return referencesToAdd; - } - - private static void IncludeMicrosoftCsharpReferenceToSupportDynamicKeyword(List referencesToAdd) - { - //TODO: check .net4.5 backend not breaking? - //ThisRewriters will cast to dynamic - if using .NET Standard 2.1 - reference is required - referencesToAdd.Add(AssemblyCsharpFullPath); - // referencesToAdd.Add(@"C:\Program Files\Unity\Hub\Editor\2021.3.12f1\Editor\Data\UnityReferenceAssemblies\unity-4.8-api\Microsoft.CSharp.dll"); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/McsExeDynamicCompilation.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/McsExeDynamicCompilation.cs deleted file mode 100644 index 1bd0c70d0..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/McsExeDynamicCompilation.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using UnityEngine; - -#if FastScriptReload_CompileViaMCS -public class McsExeDynamicCompilation : DynamicCompilationBase -{ - private const int ReferenceLenghtCountWarningThreshold = 32767 - 2000; //windows can accept up to 32767 chars as args, then it starts thorowing exceptions. MCS.exe is adding references via command /r: - - private static CompileResult Compile(List filePathsWithSourceCode) - { - var fileSourceCode = filePathsWithSourceCode.Select(File.ReadAllText); - - var providerOptions = new Dictionary(); - var provider = new Microsoft.CSharp.CSharpCodeProvider(providerOptions); - var param = new System.CodeDom.Compiler.CompilerParameters(); - - var excludeAssyNames = new List - { - "mscorlib" - }; - var referencesToAdd = ResolveReferencesToAdd(excludeAssyNames); - - var referencePathCharLenght = referencesToAdd.Sum(r => r.Length); - if (referencePathCharLenght > ReferenceLenghtCountWarningThreshold) - { - LoggerScoped.LogWarning( - "Windows can accept up to 32767 chars as args, then it starts throwing exceptions. Dynamic compilation will use MCS.exe and will add references via command /r:, " + - $"currently your assembly have {referencesToAdd.Count} references which full paths amount to: {referencePathCharLenght} chars." + - $"\r\nIf you see this warning likely compilation will fail, you can:" + - $"\r\n1) Move your project to be more top-level, as references take full paths, eg 'c:\\my-source\\stuff\\unity\\my-project\\' - this then gets repeated for many references, moving it close to top level will help" + - $"\r\n2) Remove some of the assemblies if you don't need them" + - "\r\n Please let me know via support email if that's causing you issues, there may be a fix if it's affecting many users, sorry about that!"); - - //TODO: the process is started from Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch, potentially all it'd be possible to patch that class to maybe copy all - //assemblies to some top-level location and change parameters to run from this folder, with a working directory set, this would drastically reduce char count used by full refs - //also mcs.exe allows to compile with -pkg:package1[,packageN], which somewhat bundles multiple references, maybe all unity engine refs could go in there, or all refs in general - } - - param.ReferencedAssemblies.AddRange(referencesToAdd.ToArray()); - param.GenerateExecutable = false; - param.GenerateInMemory = false; - providerOptions.Add(PatchMcsArgsGeneration.PreprocessorDirectivesProviderOptionsKey, - string.Join(";", ActiveScriptCompilationDefines)); - - var sourceCodeCombined = CreateSourceCodeCombinedContents(fileSourceCode); - var result = provider.CompileAssemblyFromSource(param, sourceCodeCombined, DynamicallyCreatedAssemblyAttributeSourceCode); - var errors = new List(); - foreach (var error in result.Errors) - { - errors.Add(error.ToString()); - } - return new CompileResult( - result.CompiledAssembly.FullName, - errors, - result.NativeCompilerReturnValue, - result.CompiledAssembly, - sourceCodeCombined, - string.Empty - ); - } -} -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/PatchMcsArgsGeneration.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/PatchMcsArgsGeneration.cs deleted file mode 100644 index 8a371b468..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/PatchMcsArgsGeneration.cs +++ /dev/null @@ -1,110 +0,0 @@ -#if FastScriptReload_CompileViaMCS -using System; -using System.CodeDom.Compiler; -using System.Collections.Generic; -using System.Text; -using FastScriptReload.Runtime; -using HarmonyLib; -using UnityEditor; - -[InitializeOnLoad] -[PreventHotReload] -public class PatchMcsArgsGeneration -{ - public const string PreprocessorDirectivesProviderOptionsKey = "PreprocessorDirectives"; - - static PatchMcsArgsGeneration() - { - var harmony = new Harmony(nameof(PatchMcsArgsGeneration)); - - var original = AccessTools.Method("Microsoft.CSharp.CSharpCodeGenerator:BuildArgs"); - var postfix = AccessTools.Method(typeof(PatchMcsArgsGeneration), nameof(BuildArgsPostfix)); - - harmony.Patch(original, postfix: new HarmonyMethod(postfix)); - } - - //Copied from Microsoft.CSharp.CSharpCodeGenerator.BuildArgs - private static void BuildArgsPostfix( - CompilerParameters options, - string[] fileNames, - IDictionary providerOptions, - ref string __result) - { - StringBuilder stringBuilder = new StringBuilder(); - if (options.GenerateExecutable) - stringBuilder.Append("/target:exe "); - else - stringBuilder.Append("/target:library "); - string privateBinPath = AppDomain.CurrentDomain.SetupInformation.PrivateBinPath; - if (privateBinPath != null && privateBinPath.Length > 0) - stringBuilder.AppendFormat("/lib:\"{0}\" ", (object) privateBinPath); - if (options.Win32Resource != null) - stringBuilder.AppendFormat("/win32res:\"{0}\" ", (object) options.Win32Resource); - if (options.IncludeDebugInformation) - stringBuilder.Append("/debug+ /optimize- "); - else - stringBuilder.Append("/debug- /optimize+ "); - if (options.TreatWarningsAsErrors) - stringBuilder.Append("/warnaserror "); - if (options.WarningLevel >= 0) - stringBuilder.AppendFormat("/warn:{0} ", (object) options.WarningLevel); - if (options.OutputAssembly == null || options.OutputAssembly.Length == 0) - { - string extension = options.GenerateExecutable ? "exe" : "dll"; //TODO:readd - // options.OutputAssembly = CSharpCodeGenerator.GetTempFileNameWithExtension(options.TempFiles, extension, !options.GenerateInMemory); - } - stringBuilder.AppendFormat("/out:\"{0}\" ", (object) options.OutputAssembly); - foreach (string referencedAssembly in options.ReferencedAssemblies) - { - if (referencedAssembly != null && referencedAssembly.Length != 0) - stringBuilder.AppendFormat("/r:\"{0}\" ", (object) referencedAssembly); - } - if (options.CompilerOptions != null) - { - stringBuilder.Append(options.CompilerOptions); - stringBuilder.Append(" "); - } - foreach (string embeddedResource in options.EmbeddedResources) - stringBuilder.AppendFormat("/resource:\"{0}\" ", (object) embeddedResource); - foreach (string linkedResource in options.LinkedResources) - stringBuilder.AppendFormat("/linkresource:\"{0}\" ", (object) linkedResource); - - //WARN: that's how it's in source, quite odd, doesn't do much if compiler version specified? - // if (providerOptions != null && providerOptions.Count > 0) - // { - // string str; - // if (!providerOptions.TryGetValue("CompilerVersion", out str)) - // str = "3.5"; - // if (str.Length >= 1 && str[0] == 'v') - // str = str.Substring(1); - // if (str != "2.0") - // { - // } - // else - // stringBuilder.Append("/langversion:ISO-2 "); - // } - - stringBuilder.Append("/langversion:experimental "); - - CustomPatchAdditionAddPreprocessorDirectives(providerOptions, stringBuilder); - - stringBuilder.Append("/noconfig "); - stringBuilder.Append(" -- "); - foreach (string fileName in fileNames) - stringBuilder.AppendFormat("\"{0}\" ", (object) fileName); - - __result = stringBuilder.ToString(); - } - - private static void CustomPatchAdditionAddPreprocessorDirectives(IDictionary providerOptions, StringBuilder stringBuilder) - { - if (providerOptions != null && providerOptions.Count > 0) - { - if (providerOptions.TryGetValue(PreprocessorDirectivesProviderOptionsKey, out var preprocessorDirectives)) - { - stringBuilder.Append($"/d:\"{preprocessorDirectives}\" "); - } - } - } -} -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides/ScriptGenerationOverridesManager.cs b/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides/ScriptGenerationOverridesManager.cs deleted file mode 100644 index b65ea8602..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/Compilation/ScriptGenerationOverrides/ScriptGenerationOverridesManager.cs +++ /dev/null @@ -1,204 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using FastScriptReload.Runtime; -using Microsoft.CodeAnalysis; -using Microsoft.CodeAnalysis.CSharp; -using Microsoft.CodeAnalysis.CSharp.Syntax; -using UnityEditor; -using UnityEditorInternal; -using UnityEngine; - -namespace FastScriptReload.Editor.Compilation.ScriptGenerationOverrides -{ - [InitializeOnLoad] - public static class ScriptGenerationOverridesManager - { - private static float LoadOverridesFolderFilesEveryNSeconds = 5; - - private static readonly string TemplateInterfaceDeclaration = @" - -//New interface declaration, this is very useful in cases where code depends on some internal interfaces that re-compiled code can no longer access. Simply define them here and code will compile. -//You can add any type in that manner -public interface ITestNewInterface { - bool Test { get; set; } -}"; - - private static readonly string TemplateTopComment = @"// You can use this file to specify custom code overrides. Those will be applied to resulting code. -// This approach is very useful if your code is failing to compile due to one of the existing limitations. -// -// While I work on reducing limitations you can simply specify override with proper code to make sure you can continue working. -// -// 1) Simply define code with same structure as your original class, make sure to include any namespace. -// 2) Rename classes and types to have '' postfix. -// -// eg. 'MyClassName' needs to be changed to MyClassName otherwise it won't be properly connected. -// -// 3) Add any methods that you want to override, using same method signature. Whole method body will be replaced and no code adjustments will be run on it. -// 4) You can add any additional types - this is quite useful when you hit limitation with internal interfaces - where compiler can not access them due to protection modifiers. -// You can simply redefine those here, while not ideal it'll allow you to continue using Hot-Reload without modifying your code. -// -// Tool will now attempt to create a template file for you with first found class and first method as override, please adjust as necessary. -// It'll also create an example redefined interface. -// If you can't see anything please refer to the above and create overrides file manually. -// -// You can also refer to documentation section 'User defined script rewrite overrides' -"; - - public static DirectoryInfo UserDefinedScriptRewriteOverridesFolder { get; } - private static double _lastTimeOverridesFolderFilesRead; - - public static List UserDefinedScriptOverrides { get; } = new List(); - - static ScriptGenerationOverridesManager() - { - //TODO: allow to customize later from code, eg for user that'd like to include in source control - UserDefinedScriptRewriteOverridesFolder = new DirectoryInfo(Application.persistentDataPath + @"\FastScriptReload\ScriptOverrides"); - UpdateUserDefinedScriptOverridesFileCache(); - EditorApplication.update += Update; - } - - private static void Update() - { - var timeSinceStartup = EditorApplication.timeSinceStartup; - if (_lastTimeOverridesFolderFilesRead + LoadOverridesFolderFilesEveryNSeconds < timeSinceStartup) - { - _lastTimeOverridesFolderFilesRead = timeSinceStartup; - - UpdateUserDefinedScriptOverridesFileCache(); - } - } - - private static void UpdateUserDefinedScriptOverridesFileCache() - { - UserDefinedScriptOverrides.Clear(); - if (UserDefinedScriptRewriteOverridesFolder.Exists) - { - UserDefinedScriptOverrides.AddRange(UserDefinedScriptRewriteOverridesFolder.GetFiles().Select(f => new UserDefinedScriptOverride(f))); - } - } - - public static void AddScriptOverride(MonoScript script) - { - EnsureOverrideFolderExists(); - - var overridenFile = new FileInfo(Path.Combine(UserDefinedScriptRewriteOverridesFolder.FullName, script.name + ".cs")); - if (!overridenFile.Exists) - { - var originalFile = new FileInfo(Path.Combine(Path.Combine(Application.dataPath + "//..", AssetDatabase.GetAssetPath(script)))); - - var templateString = string.Empty; - try - { - var fileCode = File.ReadAllText(originalFile.FullName); - var tree = CSharpSyntaxTree.ParseText(fileCode, new CSharpParseOptions(preprocessorSymbols: DynamicCompilationBase.ActiveScriptCompilationDefines)); - var root = tree.GetRoot(); - - var firstType = root.DescendantNodes().OfType().FirstOrDefault(); - if (firstType != null) - { - var members = new SyntaxList(); - var firstMethod = firstType.DescendantNodes().OfType().FirstOrDefault(m => m.Body != null); - if (firstMethod != null) - { - var block = SyntaxFactory.Block(); - block = block.AddStatements(SyntaxFactory.EmptyStatement().WithLeadingTrivia( - SyntaxFactory.Comment(@"/* Any code will be replaced with original method of same signature in same type*/")) - ); - firstMethod = firstMethod - .WithBody(block) - .WithTriviaFrom(firstMethod); - members = members.Add(firstMethod); - } - - root = root.ReplaceNode(firstType, firstType - .ReplaceToken( - firstType.Identifier, - SyntaxFactory.Identifier(firstType.Identifier.ValueText + AssemblyChangesLoader.ClassnamePatchedPostfix) - ) - .WithMembers(members)).NormalizeWhitespace(); - - var interfaceDeclaration = CSharpSyntaxTree.ParseText(TemplateInterfaceDeclaration); - - root = ((CompilationUnitSyntax)root).AddMembers( - interfaceDeclaration.GetRoot().DescendantNodes().OfType().First() - ); - } - - templateString = root.ToFullString(); - } - catch (Exception e) - { - Debug.LogError($"Unable to generate user defined script override template from your file, please refer to note at the start of the file. {e}"); - } - - if (!overridenFile.Exists) - { - File.WriteAllText(overridenFile.FullName, - TemplateTopComment.Replace("", AssemblyChangesLoader.ClassnamePatchedPostfix) + templateString - ); - UpdateUserDefinedScriptOverridesFileCache(); - } - } - - InternalEditorUtility.OpenFileAtLineExternal(overridenFile.FullName, 0); - } - - public static bool TryRemoveScriptOverride(MonoScript originalScript) - { - EnsureOverrideFolderExists(); - - var overridenFile = new FileInfo(Path.Combine(UserDefinedScriptRewriteOverridesFolder.FullName, originalScript.name + ".cs")); - if (overridenFile.Exists) - { - return TryRemoveScriptOverride(overridenFile); - } - - return false; - } - - private static bool TryRemoveScriptOverride(FileInfo overridenFile) - { - try - { - overridenFile.Delete(); - UpdateUserDefinedScriptOverridesFileCache(); - } - catch (Exception) - { - Debug.Log($"Unable to remove: '{overridenFile.Name}' - make sure it's not locked / open in editor"); - throw; - } - - return true; - } - - public static bool TryRemoveScriptOverride(UserDefinedScriptOverride scriptOverride) - { - return TryRemoveScriptOverride(scriptOverride.File); - } - - public static bool TryGetScriptOverride(FileInfo changedFile, out FileInfo overridesFile) - { - overridesFile = UserDefinedScriptOverrides.FirstOrDefault(f => f.File.Name == changedFile.Name && f.File.Exists)?.File; - return overridesFile?.Exists ?? false; - } - - private static void EnsureOverrideFolderExists() - { - if (!UserDefinedScriptRewriteOverridesFolder.Exists) - UserDefinedScriptRewriteOverridesFolder.Create(); - } - } - - public class UserDefinedScriptOverride - { - public FileInfo File { get; } - - public UserDefinedScriptOverride(FileInfo file) - { - File = file; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/FastScriptReload.Editor.asmdef b/Assets/FastScriptReload/Scripts/Editor/FastScriptReload.Editor.asmdef deleted file mode 100644 index 9b30e2d74..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/FastScriptReload.Editor.asmdef +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "FastScriptReload.Editor", - "rootNamespace": "", - "references": [ - "GUID:b75b497805046c443a21f90e84a5ff4f" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "0Harmony.dll", - "Microsoft.CodeAnalysis.dll", - "Microsoft.CodeAnalysis.CSharp.dll", - "ImmersiveVRTools.Common.Editor.dll", - "ImmersiveVRTools.Common.Runtime.dll" - ], - "autoReferenced": false, - "defineConstraints": [ - "FastScriptReload" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadManager.cs b/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadManager.cs deleted file mode 100644 index 5f30556a1..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadManager.cs +++ /dev/null @@ -1,493 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using FastScriptReload.Editor.Compilation; -using FastScriptReload.Editor.Compilation.ScriptGenerationOverrides; -using FastScriptReload.Runtime; -using ImmersiveVRTools.Runtime.Common; -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEngine; - -namespace FastScriptReload.Editor -{ - [InitializeOnLoad] - [PreventHotReload] - public class FastScriptReloadManager - { - private static FastScriptReloadManager _instance; - public static FastScriptReloadManager Instance - { - get { - if (_instance == null) - { - _instance = new FastScriptReloadManager(); - LoggerScoped.LogDebug("Created Manager"); - } - - return _instance; - } - } - - private static string DataPath = Application.dataPath; - - public const string FileWatcherReplacementTokenForApplicationDataPath = ""; - public Dictionary> FileWatcherTokensToResolvePathFn = new Dictionary> - { - [FileWatcherReplacementTokenForApplicationDataPath] = () => DataPath - }; - - private bool _wasLockReloadAssembliesCalled; - private PlayModeStateChange _lastPlayModeStateChange; - private List _fileWatchers = new List(); - private IEnumerable _currentFileExclusions; - private int _triggerDomainReloadIfOverNDynamicallyLoadedAssembles = 100; - public bool EnableExperimentalThisCallLimitationFix { get; private set; } -#pragma warning disable 0618 - public AssemblyChangesLoaderEditorOptionsNeededInBuild AssemblyChangesLoaderEditorOptionsNeededInBuild { get; private set; } = new AssemblyChangesLoaderEditorOptionsNeededInBuild(); -#pragma warning restore 0618 - - private List _dynamicFileHotReloadStateEntries = new List(); - - private DateTime _lastTimeChangeBatchRun = default(DateTime); - private bool _assemblyChangesLoaderResolverResolutionAlreadyCalled; - private bool _isEditorModeHotReloadEnabled; - private int _hotReloadPerformedCount = 0; - private bool _isOnDemandHotReloadEnabled; - - private void OnWatchedFileChange(object source, FileSystemEventArgs e) - { - if (!_isEditorModeHotReloadEnabled && _lastPlayModeStateChange != PlayModeStateChange.EnteredPlayMode) - { -#if ImmersiveVrTools_DebugEnabled - LoggerScoped.Log($"Application not playing, change to: {e.Name} won't be compiled and hot reloaded"); -#endif - return; - } - - var filePathToUse = e.FullPath; - if (!File.Exists(filePathToUse)) - { - LoggerScoped.LogWarning(@"Fast Script Reload - Unity File Path Bug - Warning! -Path for changed file passed by Unity does not exist. This is a known editor bug, more info: https://issuetracker.unity3d.com/issues/filesystemwatcher-returns-bad-file-path - -Best course of action is to update editor as issue is already fixed in newer (minor and major) versions. - -As a workaround asset will try to resolve paths via directory search. - -Workaround will search in all folders (under project root) and will use first found file. This means it's possible it'll pick up wrong file as there's no directory information available."); - - var changedFileName = new FileInfo(filePathToUse).Name; - //TODO: try to look in all file watcher configured paths, some users might have code outside of assets, eg packages - // var fileFoundInAssets = FastScriptReloadPreference.FileWatcherSetupEntries.GetElementsTyped().SelectMany(setupEntries => Directory.GetFiles(DataPath, setupEntries.path, SearchOption.AllDirectories)).ToList(); - - var fileFoundInAssets = Directory.GetFiles(DataPath, changedFileName, SearchOption.AllDirectories); - if (fileFoundInAssets.Length == 0) - { - LoggerScoped.LogError($"FileWatcherBugWorkaround: Unable to find file '{changedFileName}', changes will not be reloaded. Please update unity editor."); - return; - } - else if(fileFoundInAssets.Length == 1) - { - LoggerScoped.Log($"FileWatcherBugWorkaround: Original Unity passed file path: '{e.FullPath}' adjusted to found: '{fileFoundInAssets[0]}'"); - filePathToUse = fileFoundInAssets[0]; - } - else - { - LoggerScoped.LogWarning($"FileWatcherBugWorkaround: Multiple files found. Original Unity passed file path: '{e.FullPath}' adjusted to found: '{fileFoundInAssets[0]}'"); - filePathToUse = fileFoundInAssets[0]; - } - } - - if (_currentFileExclusions != null && _currentFileExclusions.Any(fp => filePathToUse.Replace("\\", "/").EndsWith(fp))) - { - LoggerScoped.LogWarning($"FastScriptReload: File: '{filePathToUse}' changed, but marked as exclusion. Hot-Reload will not be performed. You can manage exclusions via" + - $"\r\nRight click context menu (Fast Script Reload > Add / Remove Hot-Reload exclusion)" + - $"\r\nor via Window -> Fast Script Reload -> Start Screen -> Exclusion menu"); - - return; - } - - const int msThresholdToConsiderSameChangeFromDifferentFileWatchers = 500; - var isDuplicatedChangesComingFromDifferentFileWatcher = _dynamicFileHotReloadStateEntries - .Any(f => f.FullFileName == filePathToUse - && (DateTime.UtcNow - f.FileChangedOn).TotalMilliseconds < msThresholdToConsiderSameChangeFromDifferentFileWatchers); - if (isDuplicatedChangesComingFromDifferentFileWatcher) - { - LoggerScoped.LogWarning($"FastScriptReload: Looks like change to: {filePathToUse} have already been added for processing. This can happen if you have multiple file watchers set in a way that they overlap."); - return; - } - - _dynamicFileHotReloadStateEntries.Add(new DynamicFileHotReloadState(filePathToUse, DateTime.UtcNow)); - } - - public void StartWatchingDirectoryAndSubdirectories(string directoryPath, string filter, bool includeSubdirectories) - { - foreach (var kv in FileWatcherTokensToResolvePathFn) - { - directoryPath = directoryPath.Replace(kv.Key, kv.Value()); - } - - var directoryInfo = new DirectoryInfo(directoryPath); - - if (!directoryInfo.Exists) - { - LoggerScoped.LogWarning($"FastScriptReload: Directory: '{directoryPath}' does not exist, make sure file-watcher setup is correct. You can access via: Window -> Fast Script Reload -> File Watcher (Advanced Setup)"); - } - - var fileWatcher = new FileSystemWatcher(); - - fileWatcher.Path = directoryInfo.FullName; - fileWatcher.IncludeSubdirectories = includeSubdirectories; - fileWatcher.Filter = filter; - fileWatcher.NotifyFilter = NotifyFilters.LastWrite; - fileWatcher.Changed += OnWatchedFileChange; - - fileWatcher.EnableRaisingEvents = true; - - _fileWatchers.Add(fileWatcher); - } - - static FastScriptReloadManager() - { - //do not add init code in here as with domain reload turned off it won't be properly set on play-mode enter, use Init method instead - EditorApplication.update += Instance.Update; - EditorApplication.playModeStateChanged += Instance.OnEditorApplicationOnplayModeStateChanged; - } - - ~FastScriptReloadManager() - { - LoggerScoped.LogDebug("Destroying FSR Manager "); - if (_instance != null) - { - if (_lastPlayModeStateChange == PlayModeStateChange.EnteredPlayMode) - { - LoggerScoped.LogError("Manager is being destroyed in play session, this indicates some sort of issue where static variables were reset, hot reload will not function properly please reset. " + - "This is usually caused by Unity triggering that reset for some reason that's outside of asset control - other static variables will also be affected and recovering just hot reload would hide wider issue."); - } - ClearFileWatchers(); - } - } - - private const int BaseMenuItemPriority_ManualScriptOverride = 100; - [MenuItem("Assets/Fast Script Reload/Add \\ Open User Script Rewrite Override", false, BaseMenuItemPriority_ManualScriptOverride + 1)] - public static void AddHotReloadManualScriptOverride() - { - if (Selection.activeObject is MonoScript script) - { - ScriptGenerationOverridesManager.AddScriptOverride(script); - } - } - - [MenuItem("Assets/Fast Script Reload/Add \\ Open User Script Rewrite Override", true)] - public static bool AddHotReloadManualScriptOverrideValidateFn() - { - return Selection.activeObject is MonoScript; - } - - [MenuItem("Assets/Fast Script Reload/Remove User Script Rewrite Override", false, BaseMenuItemPriority_ManualScriptOverride + 2)] - public static void RemoveHotReloadManualScriptOverride() - { - if (Selection.activeObject is MonoScript script) - { - ScriptGenerationOverridesManager.TryRemoveScriptOverride(script); - } - } - - [MenuItem("Assets/Fast Script Reload/Remove User Script Rewrite Override", true)] - public static bool RemoveHotReloadManualScriptOverrideValidateFn() - { - if (Selection.activeObject is MonoScript script) - { - return ScriptGenerationOverridesManager.TryGetScriptOverride( - new FileInfo(Path.Combine(Path.Combine(Application.dataPath + "//..", AssetDatabase.GetAssetPath(script)))), - out var _ - ); - } - - return false; - } - - [MenuItem("Assets/Fast Script Reload/Show User Script Rewrite Overrides", false, BaseMenuItemPriority_ManualScriptOverride + 3)] - public static void ShowManualScriptRewriteOverridesInUi() - { - var window = FastScriptReloadWelcomeScreen.Init(); - window.OpenUserScriptRewriteOverridesSection(); - } - - private const int BaseMenuItemPriority_Exclusions = 200; - [MenuItem("Assets/Fast Script Reload/Add Hot-Reload Exclusion", false, BaseMenuItemPriority_Exclusions + 1)] - public static void AddFileAsExcluded() - { - FastScriptReloadPreference.FilesExcludedFromHotReload.AddElement(ResolveRelativeToAssetDirectoryFilePath(Selection.activeObject)); - } - - [MenuItem("Assets/Fast Script Reload/Add Hot-Reload Exclusion", true)] - public static bool AddFileAsExcludedValidateFn() - { - return Selection.activeObject is MonoScript - && !((FastScriptReloadPreference.FilesExcludedFromHotReload.GetEditorPersistedValueOrDefault() as IEnumerable) ?? Array.Empty()) - .Contains(ResolveRelativeToAssetDirectoryFilePath(Selection.activeObject)); - } - - [MenuItem("Assets/Fast Script Reload/Remove Hot-Reload Exclusion", false, BaseMenuItemPriority_Exclusions + 2)] - public static void RemoveFileAsExcluded() - { - FastScriptReloadPreference.FilesExcludedFromHotReload.RemoveElement(ResolveRelativeToAssetDirectoryFilePath(Selection.activeObject)); - } - - [MenuItem("Assets/Fast Script Reload/Remove Hot-Reload Exclusion", true)] - public static bool RemoveFileAsExcludedValidateFn() - { - return Selection.activeObject is MonoScript - && ((FastScriptReloadPreference.FilesExcludedFromHotReload.GetEditorPersistedValueOrDefault() as IEnumerable) ?? Array.Empty()) - .Contains(ResolveRelativeToAssetDirectoryFilePath(Selection.activeObject)); - } - - [MenuItem("Assets/Fast Script Reload/Show Exclusions", false, BaseMenuItemPriority_Exclusions + 3)] - public static void ShowExcludedFilesInUi() - { - var window = FastScriptReloadWelcomeScreen.Init(); - window.OpenExclusionsSection(); - } - - - - private static string ResolveRelativeToAssetDirectoryFilePath(UnityEngine.Object obj) - { - return AssetDatabase.GetAssetPath(obj.GetInstanceID()); - } - - public void Update() - { - _isEditorModeHotReloadEnabled = (bool)FastScriptReloadPreference.EnableExperimentalEditorHotReloadSupport.GetEditorPersistedValueOrDefault(); - if (_lastPlayModeStateChange == PlayModeStateChange.ExitingPlayMode && Instance._fileWatchers.Any()) - { - ClearFileWatchers(); - } - - if (!_isEditorModeHotReloadEnabled && !EditorApplication.isPlaying) - { - return; - } - - if (_isEditorModeHotReloadEnabled) - { - EnsureInitialized(); - } - else if (_lastPlayModeStateChange == PlayModeStateChange.EnteredPlayMode) - { - - EnsureInitialized(); - - // if (_lastPlayModeStateChange != PlayModeStateChange.ExitingPlayMode && Application.isPlaying && Instance._fileWatchers.Count == 0 && FastScriptReloadPreference.FileWatcherSetupEntries.GetElementsTyped().Count > 0) - // { - // LoggerScoped.LogWarning("Reinitializing file-watchers as defined configuration does not match current instance setup. If hot reload still doesn't work you'll need to reset play session."); - // ClearFileWatchers(); - // EnsureInitialized(); - // } - } - - AssignConfigValuesThatCanNotBeAccessedOutsideOfMainThread(); - - if (!_assemblyChangesLoaderResolverResolutionAlreadyCalled) - { - AssemblyChangesLoaderResolver.Instance.Resolve(); //WARN: need to resolve initially in case monobehaviour singleton is not created - _assemblyChangesLoaderResolverResolutionAlreadyCalled = true; - } - - if ((bool)FastScriptReloadPreference.EnableAutoReloadForChangedFiles.GetEditorPersistedValueOrDefault() && - (DateTime.UtcNow - _lastTimeChangeBatchRun).TotalSeconds > (int)FastScriptReloadPreference.BatchScriptChangesAndReloadEveryNSeconds.GetEditorPersistedValueOrDefault()) - { - TriggerReloadForChangedFiles(); - } - } - - private static void ClearFileWatchers() - { - foreach (var fileWatcher in Instance._fileWatchers) - { - fileWatcher.Dispose(); - } - - Instance._fileWatchers.Clear(); - } - - private void AssignConfigValuesThatCanNotBeAccessedOutsideOfMainThread() - { - //TODO: PERF: needed in file watcher but when run on non-main thread causes exception. - _currentFileExclusions = FastScriptReloadPreference.FilesExcludedFromHotReload.GetElements(); - _triggerDomainReloadIfOverNDynamicallyLoadedAssembles = (int)FastScriptReloadPreference.TriggerDomainReloadIfOverNDynamicallyLoadedAssembles.GetEditorPersistedValueOrDefault(); - _isOnDemandHotReloadEnabled = (bool)FastScriptReloadPreference.EnableOnDemandReload.GetEditorPersistedValueOrDefault(); - EnableExperimentalThisCallLimitationFix = (bool)FastScriptReloadPreference.EnableExperimentalThisCallLimitationFix.GetEditorPersistedValueOrDefault(); - AssemblyChangesLoaderEditorOptionsNeededInBuild.UpdateValues( - (bool)FastScriptReloadPreference.IsDidFieldsOrPropertyCountChangedCheckDisabled.GetEditorPersistedValueOrDefault(), - (bool)FastScriptReloadPreference.EnableExperimentalAddedFieldsSupport.GetEditorPersistedValueOrDefault() - ); - } - - public void TriggerReloadForChangedFiles() - { - if (!Application.isPlaying && _hotReloadPerformedCount > _triggerDomainReloadIfOverNDynamicallyLoadedAssembles) - { - LoggerScoped.LogWarning($"Dynamically created assembles reached over: {_triggerDomainReloadIfOverNDynamicallyLoadedAssembles} - triggering full domain reload to clean up. You can adjust that value in settings."); -#if UNITY_2019_3_OR_NEWER - CompilationPipeline.RequestScriptCompilation(); //TODO: add some timer to ensure this does not go into some kind of loop -#elif UNITY_2017_1_OR_NEWER - var editorAssembly = Assembly.GetAssembly(typeof(Editor)); - var editorCompilationInterfaceType = editorAssembly.GetType("UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface"); - var dirtyAllScriptsMethod = editorCompilationInterfaceType.GetMethod("DirtyAllScripts", BindingFlags.Static | BindingFlags.Public); - dirtyAllScriptsMethod.Invoke(editorCompilationInterfaceType, null); -#endif - } - - var assemblyChangesLoader = AssemblyChangesLoaderResolver.Instance.Resolve(); - var changesAwaitingHotReload = _dynamicFileHotReloadStateEntries - .Where(e => e.IsAwaitingCompilation) - .ToList(); - - if (changesAwaitingHotReload.Any()) - { - changesAwaitingHotReload.ForEach(c => { c.IsBeingProcessed = true; }); - - var unityMainThreadDispatcher = UnityMainThreadDispatcher.Instance.EnsureInitialized(); //need to pass that in, resolving on other than main thread will cause exception - Task.Run(() => - { - List sourceCodeFilesWithUniqueChangesAwaitingHotReload = null; - try - { - sourceCodeFilesWithUniqueChangesAwaitingHotReload = changesAwaitingHotReload - .GroupBy(e => e.FullFileName) - .Select(e => e.First().FullFileName).ToList(); - - var dynamicallyLoadedAssemblyCompilerResult = DynamicAssemblyCompiler.Compile(sourceCodeFilesWithUniqueChangesAwaitingHotReload, unityMainThreadDispatcher); - if (!dynamicallyLoadedAssemblyCompilerResult.IsError) - { - changesAwaitingHotReload.ForEach(c => - { - c.FileCompiledOn = DateTime.UtcNow; - c.AssemblyNameCompiledIn = dynamicallyLoadedAssemblyCompilerResult.CompiledAssemblyPath; - }); - - //TODO: return some proper results to make sure entries are correctly updated - assemblyChangesLoader.DynamicallyUpdateMethodsForCreatedAssembly(dynamicallyLoadedAssemblyCompilerResult.CompiledAssembly, AssemblyChangesLoaderEditorOptionsNeededInBuild); - changesAwaitingHotReload.ForEach(c => - { - c.HotSwappedOn = DateTime.UtcNow; - c.IsBeingProcessed = false; - }); //TODO: technically not all were hot swapped at same time - - _hotReloadPerformedCount++; - } - else - { - if (dynamicallyLoadedAssemblyCompilerResult.MessagesFromCompilerProcess.Count > 0) - { - var msg = new StringBuilder(); - foreach (string message in dynamicallyLoadedAssemblyCompilerResult.MessagesFromCompilerProcess) - { - msg.AppendLine($"Error when compiling, it's best to check code and make sure it's compilable \r\n {message}\n"); - } - - var errorMessage = msg.ToString(); - - changesAwaitingHotReload.ForEach(c => - { - c.ErrorOn = DateTime.UtcNow; - c.ErrorText = errorMessage; - }); - - throw new Exception(errorMessage); - } - } - } - catch (Exception ex) - { - LoggerScoped.LogError($"Error when updating files: '{(sourceCodeFilesWithUniqueChangesAwaitingHotReload != null ? string.Join(",", sourceCodeFilesWithUniqueChangesAwaitingHotReload.Select(fn => new FileInfo(fn).Name)) : "unknown")}', {ex}"); - } - }); - } - - _lastTimeChangeBatchRun = DateTime.UtcNow; - } - - private void OnEditorApplicationOnplayModeStateChanged(PlayModeStateChange obj) - { - Instance._lastPlayModeStateChange = obj; - - if ((bool)FastScriptReloadPreference.IsForceLockAssembliesViaCode.GetEditorPersistedValueOrDefault()) - { - if (obj == PlayModeStateChange.EnteredPlayMode) - { - EditorApplication.LockReloadAssemblies(); - _wasLockReloadAssembliesCalled = true; - } - } - - if(obj == PlayModeStateChange.EnteredEditMode && _wasLockReloadAssembliesCalled) - { - EditorApplication.UnlockReloadAssemblies(); - _wasLockReloadAssembliesCalled = false; - } - } - - private static bool HotReloadDisabled_WarningMessageShownAlready; - - private static void EnsureInitialized() - { - if (!(bool)FastScriptReloadPreference.EnableAutoReloadForChangedFiles.GetEditorPersistedValueOrDefault() - && !(bool)FastScriptReloadPreference.EnableOnDemandReload.GetEditorPersistedValueOrDefault()) - { - if (!HotReloadDisabled_WarningMessageShownAlready) - { - LoggerScoped.LogWarning($"Both auto hot reload and on-demand reload are disabled, file watchers will not be initialized. Please adjust settings and restart if you want hot reload to work."); - HotReloadDisabled_WarningMessageShownAlready = true; - } - return; - } - - if (Instance._fileWatchers.Count == 0) - { - var fileWatcherSetupEntries = FastScriptReloadPreference.FileWatcherSetupEntries.GetElementsTyped(); - if (fileWatcherSetupEntries.Count == 0) - { - LoggerScoped.LogWarning($"There are no file watcher setup entries. Tool will not be able to pick changes automatically"); - } - - foreach (var fileWatcherSetupEntry in fileWatcherSetupEntries) - { - Instance.StartWatchingDirectoryAndSubdirectories(fileWatcherSetupEntry.path, fileWatcherSetupEntry.filter, fileWatcherSetupEntry.includeSubdirectories); - } - } - } - } - - public class DynamicFileHotReloadState - { - public string FullFileName { get; set; } - public DateTime FileChangedOn { get; set; } - public bool IsAwaitingCompilation => !IsFileCompiled && !ErrorOn.HasValue && !IsBeingProcessed; - public bool IsFileCompiled => FileCompiledOn.HasValue; - public DateTime? FileCompiledOn { get; set; } - - public string AssemblyNameCompiledIn { get; set; } - - public bool IsAwaitingHotSwap => IsFileCompiled && !HotSwappedOn.HasValue; - public DateTime? HotSwappedOn { get; set; } - public bool IsChangeHotSwapped {get; set; } - - public string ErrorText { get; set; } - public DateTime? ErrorOn { get; set; } - public bool IsBeingProcessed { get; set; } - - public DynamicFileHotReloadState(string fullFileName, DateTime fileChangedOn) - { - FullFileName = fullFileName; - FileChangedOn = fileChangedOn; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadWelcomeScreen.cs b/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadWelcomeScreen.cs deleted file mode 100644 index aaef952d3..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/FastScriptReloadWelcomeScreen.cs +++ /dev/null @@ -1,874 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using FastScriptReload.Editor.Compilation; -using FastScriptReload.Editor.Compilation.ScriptGenerationOverrides; -using FastScriptReload.Runtime; -using ImmersiveVRTools.Editor.Common.Utilities; -using ImmersiveVRTools.Editor.Common.WelcomeScreen; -using ImmersiveVRTools.Editor.Common.WelcomeScreen.GuiElements; -using ImmersiveVRTools.Editor.Common.WelcomeScreen.PreferenceDefinition; -using ImmersiveVRTools.Editor.Common.WelcomeScreen.Utilities; -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEditor; -using UnityEditor.Compilation; -using UnityEditorInternal; -using UnityEngine; -using UnityEngine.Rendering; - -namespace FastScriptReload.Editor -{ - public class FastScriptReloadWelcomeScreen : ProductWelcomeScreenBase - { - public static string BaseUrl = "https://immersivevrtools.com"; - public static string GenerateGetUpdatesUrl(string userId, string versionId) - { - //WARN: the URL can sometimes be adjusted, make sure updated correctly - return $"{BaseUrl}/updates/fast-script-reload/{userId}?CurrentVersion={versionId}"; - } - public static string VersionId = "1.4"; - private static readonly string ProjectIconName = "ProductIcon64"; - public static readonly string ProjectName = "fast-script-reload"; - - private static Vector2 _WindowSizePx = new Vector2(650, 500); - private static string _WindowTitle = "Fast Script Reload"; - - public static ChangeMainViewButton ExclusionsSection { get; private set; } - public static ChangeMainViewButton EditorHotReloadSection { get; private set; } - public static ChangeMainViewButton NewFieldsSection { get; private set; } - public static ChangeMainViewButton UserScriptRewriteOverrides { get; private set; } - - public void OpenExclusionsSection() - { - ExclusionsSection.OnClick(this); - } - - public void OpenUserScriptRewriteOverridesSection() - { - UserScriptRewriteOverrides.OnClick(this); - } - - public void OpenEditorHotReloadSection() - { - EditorHotReloadSection.OnClick(this); - } - - public void OpenNewFieldsSection() - { - NewFieldsSection.OnClick(this); - } - - private static readonly ScrollViewGuiSection MainScrollViewSection = new ScrollViewGuiSection( - "", (screen) => - { - GenerateCommonWelcomeText(FastScriptReloadPreference.ProductName, screen); - - GUILayout.Label("Enabled Features:", screen.LabelStyle); - using (LayoutHelper.LabelWidth(350)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableAutoReloadForChangedFiles); - RenderSettingsWithCheckLimitationsButton(FastScriptReloadPreference.EnableExperimentalAddedFieldsSupport, true, () => ((FastScriptReloadWelcomeScreen)screen).OpenNewFieldsSection()); - RenderSettingsWithCheckLimitationsButton(FastScriptReloadPreference.EnableExperimentalEditorHotReloadSupport, false, () => ((FastScriptReloadWelcomeScreen)screen).OpenEditorHotReloadSection()); - } - } - ); - - private static void RenderSettingsWithCheckLimitationsButton(ToggleProjectEditorPreferenceDefinition preferenceDefinition, bool allowChange, Action onCheckLimitationsClick) - { - EditorGUILayout.BeginHorizontal(); - if (!allowChange) - { - using (LayoutHelper.LabelWidth(313)) - { - EditorGUILayout.LabelField(preferenceDefinition.Label); - } - } - else - { - ProductPreferenceBase.RenderGuiAndPersistInput(preferenceDefinition); - } - - if (GUILayout.Button("Check limitations")) - { - onCheckLimitationsClick(); - } - - EditorGUILayout.EndHorizontal(); - } - - private static readonly List LeftSections = CreateLeftSections(new List - { - new ChangeMainViewButton("On-Device\r\nHot-Reload", - (screen) => - { - EditorGUILayout.LabelField("Live Script Reload", screen.BoldTextStyle); - - GUILayout.Space(10); - EditorGUILayout.LabelField(@"There's an extension to this asset that'll allow you to include Hot-Reload capability in builds (standalone / Android), please click the button below to learn more.", screen.TextStyle); - - GUILayout.Space(20); - if (GUILayout.Button("View Live Script Reload on Asset Store")) - { - Application.OpenURL($"{RedirectBaseUrl}/live-script-reload-extension"); - } - } - ) - }, - new LaunchSceneButton("Basic Example", (s) => GetScenePath("ExampleScene"), (screen) => - { - GUILayout.Label( - $@"Asset is very simple to use: - -1) Hit play to start. -2) Go to 'FunctionLibrary.cs' ({@"Assets/FastScriptReload/Examples/Scripts/"})", screen.TextStyle); - - CreateOpenFunctionLibraryOnRippleMethodButton(); - - - GUILayout.Label( - $@"3) Change 'Ripple' method (eg change line before return statement to 'p.z = v * 10' -4) Save file -5) See change immediately", - screen.TextStyle - ); - - GUILayout.Space(10); - EditorGUILayout.HelpBox("There are some limitations to what can be Hot-Reloaded, documentation lists them under 'limitations' section.", MessageType.Warning); - }), MainScrollViewSection); - - protected static List CreateLeftSections(List additionalSections, LaunchSceneButton launchSceneButton, ScrollViewGuiSection mainScrollViewSection) - { - return new List() { - new GuiSection("", new List - { - new LastUpdateButton("New Update!", (screen) => LastUpdateUpdateScrollViewSection.RenderMainScrollViewSection(screen)), - new ChangeMainViewButton("Welcome", (screen) => mainScrollViewSection.RenderMainScrollViewSection(screen)), - }), - new GuiSection("Options", new List - { - new ChangeMainViewButton("Reload", (screen) => - { - const int sectionBreakHeight = 15; - GUILayout.Label( - @"Asset watches all script files and automatically hot-reloads on change, you can disable that behaviour and reload on demand.", - screen.TextStyle - ); - - using (LayoutHelper.LabelWidth(320)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableAutoReloadForChangedFiles); - } - GUILayout.Space(sectionBreakHeight); - - EditorGUILayout.HelpBox("On demand reload :\r\n(only works if you opted in below, this is to avoid unnecessary file watching)\r\nvia Window -> Fast Script Reload -> Force Reload, \r\nor by calling 'FastScriptIterationManager.Instance.TriggerReloadForChangedFiles()'", MessageType.Warning); - - using (LayoutHelper.LabelWidth(320)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableOnDemandReload); - } - - GUILayout.Space(sectionBreakHeight); - - GUILayout.Label( - @"For performance reasons script changes are batched are reloaded every N seconds", - screen.TextStyle - ); - - using (LayoutHelper.LabelWidth(300)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.BatchScriptChangesAndReloadEveryNSeconds); - } - - GUILayout.Space(sectionBreakHeight); - - using (LayoutHelper.LabelWidth(350)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableExperimentalThisCallLimitationFix); - } - EditorGUILayout.HelpBox("Method calls utilizing 'this' will trigger compiler exception, if enabled tool will rewrite the calls to have proper type after adjustments." + - "\r\n\r\nIn case you're seeing compile errors relating to 'this' keyword please let me know via support page. Also turning this setting off will prevent rewrite.", MessageType.Info); - - GUILayout.Space(sectionBreakHeight); - - using (LayoutHelper.LabelWidth(350)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.IsForceLockAssembliesViaCode); - } - EditorGUILayout.HelpBox( -@"Sometimes Unity continues to reload assemblies on change in playmode even when Auto-Refresh is turned off. - -Use this setting to force lock assemblies via code." -, MessageType.Info); - GUILayout.Space(sectionBreakHeight); - - - using (LayoutHelper.LabelWidth(350)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.IsDidFieldsOrPropertyCountChangedCheckDisabled); - } - EditorGUILayout.HelpBox("By default if you add / remove fields, tool will not redirect method calls for recompiled class." + - "\r\nYou can also enable added-fields support (experimental)." + - "\r\n\r\nSome assets however will use IL weaving to adjust your classes (eg Mirror) as a post compile step. In that case it's quite likely hot-reload will still work. " + - "\r\n\r\nTick this box for tool to try and reload changes when that happens." - - , MessageType.Info); - - }), - (UserScriptRewriteOverrides = new ChangeMainViewButton("User Script\r\nRewrite Overrides", (screen) => - { - EditorGUILayout.HelpBox( - $@"For tool to work it'll need to slightly adjust your code to make it compilable. Sometimes due to existing limitations this can fail and you'll see an error. - -You can specify custom script rewrite overrides, those are specified for specific parts of code that fail, eg method. - -It will help overcome limitations in the short run while I work on implementing proper solution." - , MessageType.Info); - - EditorGUILayout.HelpBox( - $@"To add: -1) right-click in project panel on the file that causes the issue. -2) select Fast Script Reload -> Add / Open User Script Rewrite Override - -It'll open override file with template already in. You can read top comments that describe how to use it." - , MessageType.Warning); - - EditorGUILayout.LabelField("Existing User Defined Script Overrides:", screen.BoldTextStyle); - Action executeAfterIteration = null; - foreach (var scriptOverride in ScriptGenerationOverridesManager.UserDefinedScriptOverrides) - { - EditorGUILayout.BeginHorizontal(); - - EditorGUILayout.LabelField(scriptOverride.File.Name); - if (GUILayout.Button("Open")) - { - InternalEditorUtility.OpenFileAtLineExternal(scriptOverride.File.FullName, 0); - } - - if (GUILayout.Button("Delete")) - { - executeAfterIteration = () => - { - if (EditorUtility.DisplayDialog("Are you sure", "This will permanently remove override file.", "Delete", "Keep File")) - { - ScriptGenerationOverridesManager.TryRemoveScriptOverride(scriptOverride); - } - }; - } - - EditorGUILayout.EndHorizontal(); - } - executeAfterIteration?.Invoke(); - })), - (ExclusionsSection = new ChangeMainViewButton("Exclusions", (screen) => - { - EditorGUILayout.HelpBox("Those are easiest to manage from Project window by right clicking on script file and selecting: " + - "\r\nFast Script Reload -> Add Hot-Reload Exclusion " + - "\r\nFast Script Reload -> Remove Hot-Reload Exclusion", MessageType.Info); - GUILayout.Space(10); - - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.FilesExcludedFromHotReload); - })), - new ChangeMainViewButton("Debugging", (screen) => - { - EditorGUILayout.HelpBox( - @"To debug you'll need to set breakpoints in dynamically-compiled file. - -BREAKPOINTS IN ORIGINAL FILE WON'T BE HIT!", MessageType.Error); - - EditorGUILayout.HelpBox( -@"You can do that via: - - clicking link in console-window after change, eg - 'FSR: Files: FunctionLibrary.cs changed (click here to debug [in bottom details pane]) (...)' - (it needs to be clicked in bottom details pane, double click will simply take you to log location)", MessageType.Warning); - GUILayout.Space(10); - - EditorGUILayout.HelpBox(@"Tool can also auto-open generated file on every change, to do so select below option", MessageType.Info); - using (LayoutHelper.LabelWidth(350)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.IsAutoOpenGeneratedSourceFileOnChangeEnabled); - } - - GUILayout.Space(20); - using (LayoutHelper.LabelWidth(350)) - { - EditorGUILayout.LabelField("Logging", screen.BoldTextStyle); - GUILayout.Space(5); - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableDetailedDebugLogging); - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.LogHowToFixMessageOnCompilationError); - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.StopShowingAutoReloadEnabledDialogBox); - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.DebugWriteRewriteReasonAsComment); - } - }) - }.Concat(additionalSections).ToList()), - new GuiSection("Experimental", new List - { - (NewFieldsSection = new ChangeMainViewButton("New Fields", (screen) => - { -#if LiveScriptReload_Enabled - EditorGUILayout.HelpBox( - @"On Device Reload (in running build) - Not Supported -If you enable - new fields WILL show in editor and work as expected but link with the device will be broken and changes won't be visible there!", MessageType.Error); - GUILayout.Space(10); -#endif - - EditorGUILayout.HelpBox( - @"Adding new fields is still in experimental mode, it will have issues. - -When you encounter them please get in touch (via any support links above) and I'll be sure to sort them out. Thanks!", MessageType.Error); - GUILayout.Space(10); - - EditorGUILayout.HelpBox( - @"Adding new fields will affect performance, behind the scenes your code is rewritten to access field via static dictionary. - -Once you exit playmode and do a full recompile they'll turn to standard fields as you'd expect. - -New fields will also show in editor - you can tweak them as normal variables.", MessageType.Warning); - GUILayout.Space(10); - - EditorGUILayout.HelpBox( - @"LIMITATIONS: (full list and more info in docs) -- outside classes can not call new fields added at runtime -- new fields will only show in editor if they were already used at least once", MessageType.Info); - GUILayout.Space(10); - - using (LayoutHelper.LabelWidth(300)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableExperimentalAddedFieldsSupport); - } - GUILayout.Space(10); - - if (Application.isPlaying) - { - EditorGUILayout.HelpBox(@"You're in playmode, for option to start working you need to restart playmode.", MessageType.Warning); - } - - GUILayout.Space(10); - })), - (EditorHotReloadSection = new ChangeMainViewButton("Editor Hot-Reload", (screen) => - { - EditorGUILayout.HelpBox(@"Currently asset hot-reloads only in play-mode, you can enable experimental editor mode support here. - -Please make sure to read limitation section as not all changes can be performed", MessageType.Warning); - - EditorGUILayout.HelpBox(@"As an experimental feature it may be unstable and is not as reliable as play-mode workflow. - -In some cases it can lock/crash editor.", MessageType.Error); - GUILayout.Space(10); - - using (LayoutHelper.LabelWidth(320)) - { - var valueBefore = (bool)FastScriptReloadPreference.EnableExperimentalEditorHotReloadSupport.GetEditorPersistedValueOrDefault(); - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.EnableExperimentalEditorHotReloadSupport); - var valueAfter = (bool)FastScriptReloadPreference.EnableExperimentalEditorHotReloadSupport.GetEditorPersistedValueOrDefault(); - if (!valueBefore && valueAfter) - { - EditorUtility.DisplayDialog("Experimental feature", - "Reloading outside of playmode is still in experimental phase. " + - "\r\n\r\nIt's not as good as in-playmode workflow", - "Ok"); - -#if UNITY_2019_3_OR_NEWER - CompilationPipeline.RequestScriptCompilation(); -#elif UNITY_2017_1_OR_NEWER - var editorAssembly = Assembly.GetAssembly(typeof(Editor)); - var editorCompilationInterfaceType = editorAssembly.GetType("UnityEditor.Scripting.ScriptCompilation.EditorCompilationInterface"); - var dirtyAllScriptsMethod = editorCompilationInterfaceType.GetMethod("DirtyAllScripts", BindingFlags.Static | BindingFlags.Public); - dirtyAllScriptsMethod.Invoke(editorCompilationInterfaceType, null); -#endif - } - } - - GUILayout.Space(10); - - EditorGUILayout.HelpBox(@"Tool will automatically trigger full domain reload after number of hot-reloads specified below has been reached. -This is to ensure dynamically created and loaded assembles are cleared out properly", MessageType.Info); - GUILayout.Space(10); - - using (LayoutHelper.LabelWidth(420)) - { - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.TriggerDomainReloadIfOverNDynamicallyLoadedAssembles); - } - GUILayout.Space(10); - })) - }), - new GuiSection("Advanced", new List - { - new ChangeMainViewButton("File Watchers", (screen) => - { - EditorGUILayout.HelpBox( - $@"Asset watches .cs files for changes. Unfortunately Unity's FileWatcher -implementation has some performance issues. - -By default all project directories can be watched, you can adjust that here. - -path - which directory to watch -filter - narrow down files to match filter, eg all *.cs files (*.cs) -includeSubdirectories - whether child directories should be watched as well - -{FastScriptReloadManager.FileWatcherReplacementTokenForApplicationDataPath} - you can use that token and it'll be replaced with your /Assets folder" - , MessageType.Info); - - EditorGUILayout.HelpBox("Recompile after making changes for file watchers to re-load.", MessageType.Warning); - - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.FileWatcherSetupEntries); - }), - new ChangeMainViewButton("Exclude References", (screen) => - { - EditorGUILayout.HelpBox( - $@"Asset pulls in all the references from changed assembly. If you're encountering some compilation errors relating to those - please use list below to exclude specific ones." - , MessageType.Info); - - EditorGUILayout.HelpBox($@"By default asset removes ExCSS.Unity as it collides with the Tuple type. If you need that library in changed code - please remove from the list", MessageType.Warning); - - ProductPreferenceBase.RenderGuiAndPersistInput(FastScriptReloadPreference.ReferencesExcludedFromHotReload); - }) - }), - new GuiSection("Launch Demo", new List - { - launchSceneButton - }) - }; - } - - private static readonly string RedirectBaseUrl = "https://immersivevrtools.com/redirect/fast-script-reload"; - private static readonly GuiSection TopSection = CreateTopSectionButtons(RedirectBaseUrl); - - protected static GuiSection CreateTopSectionButtons(string redirectBaseUrl) - { - return new GuiSection("Support", new List - { - new OpenUrlButton("Documentation", $"{redirectBaseUrl}/documentation"), - new OpenUrlButton("Discord", $"{redirectBaseUrl}/discord"), - new OpenUrlButton("Unity Forum", $"{redirectBaseUrl}/unity-forum"), - new OpenUrlButton("Contact", $"{redirectBaseUrl}/contact") - } - ); - } - - private static readonly GuiSection BottomSection = new GuiSection( - "I want to make this tool better. And I need your help!", - $"It'd be great if you could share your feedback (good and bad) with me. I'm very keen to make this tool better and that can only happen with your help. Please use:", - new List - { - new OpenUrlButton(" Unity Forum", $"{RedirectBaseUrl}/unity-forum"), - new OpenUrlButton(" or Write a Short Review", $"{RedirectBaseUrl}/asset-store-review"), - } - ); - - public override string WindowTitle { get; } = _WindowTitle; - public override Vector2 WindowSizePx { get; } = _WindowSizePx; - -#if !LiveScriptReload_Enabled - [MenuItem("Window/Fast Script Reload/Start Screen", false, 1999)] -#endif - public static FastScriptReloadWelcomeScreen Init() - { - return OpenWindow(_WindowTitle, _WindowSizePx); - } - -#if !LiveScriptReload_Enabled - [MenuItem("Window/Fast Script Reload/Force Reload", true, 1999)] -#endif - public static bool ForceReloadValidate() - { - return EditorApplication.isPlaying && (bool)FastScriptReloadPreference.EnableOnDemandReload.GetEditorPersistedValueOrDefault(); - } - -#if !LiveScriptReload_Enabled - [MenuItem("Window/Fast Script Reload/Force Reload", false, 1999)] -#endif - public static void ForceReload() - { - if (!(bool)FastScriptReloadPreference.EnableOnDemandReload.GetEditorPersistedValueOrDefault()) - { - LoggerScoped.LogWarning("On demand hot reload is disabled, can't perform. You can enable it via 'Window -> Fast Script Reload -> Start Screen -> Reload -> Enable on demand reload'"); - return; - } - - FastScriptReloadManager.Instance.TriggerReloadForChangedFiles(); - } - - public void OnEnable() - { - OnEnableCommon(ProjectIconName); - } - - public void OnGUI() - { - RenderGUI(LeftSections, TopSection, BottomSection, MainScrollViewSection); - } - - protected static void CreateOpenFunctionLibraryOnRippleMethodButton() - { - if (GUILayout.Button("Open 'FunctionLibrary.cs'")) - { - var codeComponent = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(AssetDatabase.FindAssets($"t:Script FunctionLibrary")[0])); - CodeEditorManager.GotoScript(codeComponent, "Ripple"); - } - } - } - - public class FastScriptReloadPreference : ProductPreferenceBase - { - public const string BuildSymbol_DetailedDebugLogging = "ImmersiveVrTools_DebugEnabled"; - - public const string ProductName = "Fast Script Reload"; - private static string[] ProductKeywords = new[] { "productivity", "tools" }; - - public static readonly IntProjectEditorPreferenceDefinition BatchScriptChangesAndReloadEveryNSeconds = new IntProjectEditorPreferenceDefinition( - "Batch script changes and reload every N seconds", "BatchScriptChangesAndReloadEveryNSeconds", 1); - - public static readonly ToggleProjectEditorPreferenceDefinition EnableAutoReloadForChangedFiles = new ToggleProjectEditorPreferenceDefinition( - "Enable auto Hot-Reload for changed files (in play mode)", "EnableAutoReloadForChangedFiles", true); - - public static readonly ToggleProjectEditorPreferenceDefinition EnableOnDemandReload = new ToggleProjectEditorPreferenceDefinition( - "Enable on demand hot reload", "EnableOnDemandReload", false); - - public static readonly ToggleProjectEditorPreferenceDefinition EnableExperimentalThisCallLimitationFix = new ToggleProjectEditorPreferenceDefinition( - "(Experimental) Enable method calls with 'this' as argument fix", "EnableExperimentalThisCallLimitationFix", true, (object newValue, object oldValue) => - { - DynamicCompilationBase.EnableExperimentalThisCallLimitationFix = (bool)newValue; - }, - (value) => - { - DynamicCompilationBase.EnableExperimentalThisCallLimitationFix = (bool)value; - }); - - public static readonly StringListProjectEditorPreferenceDefinition FilesExcludedFromHotReload = new StringListProjectEditorPreferenceDefinition( - "Files excluded from Hot-Reload", "FilesExcludedFromHotReload", new List {}, isReadonly: true); - - public static readonly StringListProjectEditorPreferenceDefinition ReferencesExcludedFromHotReload = new StringListProjectEditorPreferenceDefinition( - "References to exclude from Hot-Reload", "ReferencesExcludedFromHotReload", new List - { - "ExCSS.Unity.dll" - }, (newValue, oldValue) => - { - DynamicCompilationBase.ReferencesExcludedFromHotReload = (List)newValue; - }, - (value) => - { - DynamicCompilationBase.ReferencesExcludedFromHotReload = (List)value; - }); - - public static readonly ToggleProjectEditorPreferenceDefinition LogHowToFixMessageOnCompilationError = new ToggleProjectEditorPreferenceDefinition( - "Log how to fix message on compilation error", "LogHowToFixMessageOnCompilationError", true, (object newValue, object oldValue) => - { - DynamicCompilationBase.LogHowToFixMessageOnCompilationError = (bool)newValue; - }, - (value) => - { - DynamicCompilationBase.LogHowToFixMessageOnCompilationError = (bool)value; - } - ); - - public static readonly ToggleProjectEditorPreferenceDefinition DebugWriteRewriteReasonAsComment = new ToggleProjectEditorPreferenceDefinition( - "Write rewrite reason as comment in changed file", "DebugWriteRewriteReasonAsComment", false, (object newValue, object oldValue) => - { - DynamicCompilationBase.DebugWriteRewriteReasonAsComment = (bool)newValue; - }, - (value) => - { - DynamicCompilationBase.DebugWriteRewriteReasonAsComment = (bool)value; - }); - - public static readonly ToggleProjectEditorPreferenceDefinition IsAutoOpenGeneratedSourceFileOnChangeEnabled = new ToggleProjectEditorPreferenceDefinition( - "Auto-open generated source file for debugging", "IsAutoOpenGeneratedSourceFileOnChangeEnabled", false); - - public static readonly ToggleProjectEditorPreferenceDefinition StopShowingAutoReloadEnabledDialogBox = new ToggleProjectEditorPreferenceDefinition( - "Stop showing assets/script auto-reload enabled warning", "StopShowingAutoReloadEnabledDialogBox", false); - public static readonly ToggleProjectEditorPreferenceDefinition EnableDetailedDebugLogging = new ToggleProjectEditorPreferenceDefinition( - "Enable detailed debug logging", "EnableDetailedDebugLogging", false, - (object newValue, object oldValue) => - { - BuildDefineSymbolManager.SetBuildDefineSymbolState(BuildSymbol_DetailedDebugLogging, (bool)newValue); - }, - (value) => - { - BuildDefineSymbolManager.SetBuildDefineSymbolState(BuildSymbol_DetailedDebugLogging, (bool)value); - } - ); - - public static readonly ToggleProjectEditorPreferenceDefinition IsDidFieldsOrPropertyCountChangedCheckDisabled = new ToggleProjectEditorPreferenceDefinition( - "Disable added/removed fields check", "IsDidFieldsOrPropertyCountChangedCheckDisabled", false, - (object newValue, object oldValue) => - { - FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.IsDidFieldsOrPropertyCountChangedCheckDisabled = (bool)newValue; - }, - (value) => - { - FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.IsDidFieldsOrPropertyCountChangedCheckDisabled = (bool)value; - } - ); - - public static readonly ToggleProjectEditorPreferenceDefinition IsForceLockAssembliesViaCode = new ToggleProjectEditorPreferenceDefinition( - "Force prevent assembly reload during playmode", "IsForceLockAssembliesViaCode", false); - - public static readonly JsonObjectListProjectEditorPreferenceDefinition FileWatcherSetupEntries = new JsonObjectListProjectEditorPreferenceDefinition( - "File Watchers Setup", "FileWatcherSetupEntries", new List - { - JsonUtility.ToJson(new FileWatcherSetupEntry("", "*.cs", true)) - }, - () => new FileWatcherSetupEntry("", "*.cs", true) - ); - - public static readonly ToggleProjectEditorPreferenceDefinition EnableExperimentalAddedFieldsSupport = new ToggleProjectEditorPreferenceDefinition( - "(Experimental) Enable runtime added field support", "EnableExperimentalAddedFieldsSupport", true, - (object newValue, object oldValue) => - { - FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport = (bool)newValue; - }, - (value) => - { - FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.EnableExperimentalAddedFieldsSupport = (bool)value; - }); - - public static readonly ToggleProjectEditorPreferenceDefinition EnableExperimentalEditorHotReloadSupport = new ToggleProjectEditorPreferenceDefinition( - "(Experimental) Enable Hot-Reload outside of play mode", "EnableExperimentalEditorHotReloadSupport", false); - - //TODO: potentially that's just a normal settings (also in playmode) - but in playmode user is unlikely to make this many changes - public static readonly IntProjectEditorPreferenceDefinition TriggerDomainReloadIfOverNDynamicallyLoadedAssembles = new IntProjectEditorPreferenceDefinition( - "Trigger full domain reload after N hot-reloads (when not in play mode)", "TriggerDomainReloadIfOverNDynamicallyLoadedAssembles", 50); - - public static void SetCommonMaterialsShader(ShadersMode newShaderModeValue) - { - var rootToolFolder = AssetPathResolver.GetAssetFolderPathRelativeToScript(ScriptableObject.CreateInstance(typeof(FastScriptReloadWelcomeScreen)), 1); - if (rootToolFolder.Contains("/Scripts")) - { - rootToolFolder = rootToolFolder.Replace("/Scripts", ""); //if nested remove that and go higher level - } - var assets = AssetDatabase.FindAssets("t:Material Point", new[] { rootToolFolder }); - - try - { - Shader shaderToUse = null; - switch (newShaderModeValue) - { - case ShadersMode.HDRP: shaderToUse = Shader.Find("Shader Graphs/Point URP"); break; - case ShadersMode.URP: shaderToUse = Shader.Find("Shader Graphs/Point URP"); break; - case ShadersMode.Surface: shaderToUse = Shader.Find("Graph/Point Surface"); break; - default: - throw new ArgumentOutOfRangeException(); - } - - foreach (var guid in assets) - { - var material = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(guid)); - if (material.shader.name != shaderToUse.name) - { - material.shader = shaderToUse; - } - } - } - catch (Exception ex) - { - LoggerScoped.LogWarning($"Shader does not exist: {ex.Message}"); - } - } - - public static List PreferenceDefinitions = new List() - { - CreateDefaultShowOptionPreferenceDefinition(), - BatchScriptChangesAndReloadEveryNSeconds, - EnableAutoReloadForChangedFiles, - EnableExperimentalThisCallLimitationFix, - LogHowToFixMessageOnCompilationError, - StopShowingAutoReloadEnabledDialogBox, - IsDidFieldsOrPropertyCountChangedCheckDisabled, - FileWatcherSetupEntries, - IsAutoOpenGeneratedSourceFileOnChangeEnabled, - EnableExperimentalAddedFieldsSupport, - ReferencesExcludedFromHotReload, - EnableExperimentalEditorHotReloadSupport, - TriggerDomainReloadIfOverNDynamicallyLoadedAssembles, - IsForceLockAssembliesViaCode - }; - - private static bool PrefsLoaded = false; - - -#if !LiveScriptReload_Enabled - #if UNITY_2019_1_OR_NEWER - [SettingsProvider] - public static SettingsProvider ImpostorsSettings() - { - return GenerateProvider(ProductName, ProductKeywords, PreferencesGUI); - } - - #else - [PreferenceItem(ProductName)] - #endif -#endif - public static void PreferencesGUI() - { - if (!PrefsLoaded) - { - LoadDefaults(PreferenceDefinitions); - PrefsLoaded = true; - } - - RenderGuiCommon(PreferenceDefinitions); - } - - public enum ShadersMode - { - HDRP, - URP, - Surface - } - } - -#if !LiveScriptReload_Enabled - [InitializeOnLoad] -#endif - public class FastScriptReloadWelcomeScreenInitializer : WelcomeScreenInitializerBase - { -#if !LiveScriptReload_Enabled - static FastScriptReloadWelcomeScreenInitializer() - { - var userId = ProductPreferenceBase.CreateDefaultUserIdDefinition(FastScriptReloadWelcomeScreen.ProjectName).GetEditorPersistedValueOrDefault().ToString(); - - HandleUnityStartup( - () => FastScriptReloadWelcomeScreen.Init(), - FastScriptReloadWelcomeScreen.GenerateGetUpdatesUrl(userId, FastScriptReloadWelcomeScreen.VersionId), - new List(), - (isFirstRun) => - { - AutoDetectAndSetShaderMode(); - } - ); - - InitCommon(); - } -#endif - - protected static void InitCommon() - { - DisplayMessageIfLastDetourPotentiallyCrashedEditor(); - EnsureUserAwareOfAutoRefresh(); - - DynamicCompilationBase.LogHowToFixMessageOnCompilationError = (bool)FastScriptReloadPreference.LogHowToFixMessageOnCompilationError.GetEditorPersistedValueOrDefault(); - DynamicCompilationBase.DebugWriteRewriteReasonAsComment = (bool)FastScriptReloadPreference.DebugWriteRewriteReasonAsComment.GetEditorPersistedValueOrDefault(); - DynamicCompilationBase.ReferencesExcludedFromHotReload = (List)FastScriptReloadPreference.ReferencesExcludedFromHotReload.GetElements(); - FastScriptReloadManager.Instance.AssemblyChangesLoaderEditorOptionsNeededInBuild.UpdateValues( - (bool)FastScriptReloadPreference.IsDidFieldsOrPropertyCountChangedCheckDisabled.GetEditorPersistedValueOrDefault(), - (bool)FastScriptReloadPreference.EnableExperimentalAddedFieldsSupport.GetEditorPersistedValueOrDefault() - ); - - BuildDefineSymbolManager.SetBuildDefineSymbolState(FastScriptReloadPreference.BuildSymbol_DetailedDebugLogging, - (bool)FastScriptReloadPreference.EnableDetailedDebugLogging.GetEditorPersistedValueOrDefault() - ); - } - - private static void EnsureUserAwareOfAutoRefresh() - { - var autoRefreshMode = (AssetPipelineAutoRefreshMode)EditorPrefs.GetInt("kAutoRefreshMode", EditorPrefs.GetBool("kAutoRefresh") ? 1 : 0); - if (autoRefreshMode != AssetPipelineAutoRefreshMode.Enabled) - return; - - if ((bool)FastScriptReloadPreference.IsForceLockAssembliesViaCode.GetEditorPersistedValueOrDefault()) - return; - - LoggerScoped.LogWarning("Fast Script Reload - asset auto refresh enabled - full reload will be triggered unless editor preference adjusted - see documentation for more details."); - - if ((bool)FastScriptReloadPreference.StopShowingAutoReloadEnabledDialogBox.GetEditorPersistedValueOrDefault()) - return; - - var chosenOption = EditorUtility.DisplayDialogComplex("Fast Script Reload - Warning", - "Auto reload for assets/scripts is enabled." + - $"\n\nThis means any change made in playmode will likely trigger full recompile." + - $"\r\n\r\nIt's an editor setting and can be adjusted at any time via Edit -> Preferences -> Asset Pipeline -> Auto Refresh" + - $"\r\n\r\nI can also adjust that for you now - that means you'll need to manually load changes (outside of playmode) via Assets -> Refresh (CTRL + R)." + - $"\r\n\r\nIn some editor versions you can also set script compilation to happen outside of playmode and don't have to manually refresh. " + - $"\r\n\r\nDepending on version you'll find it via: " + - $"\r\n1) Edit -> Preferences -> General -> Script Changes While Playing -> Recompile After Finished Playing." + - $"\r\n2) Edit -> Preferences -> Asset Pipeline -> Auto Refresh -> Enabled Outside Playmode", - "Ok, disable asset auto refresh (I'll refresh manually when needed)", - "No, don't change (stop showing this message)", - "No, don't change" - ); - - switch (chosenOption) - { - // change. - case 0: - EditorPrefs.SetInt("kAutoRefreshMode", (int)AssetPipelineAutoRefreshMode.Disabled); - EditorPrefs.SetInt("kAutoRefresh", 0); //older unity versions - break; - - // don't change and stop showing message. - case 1: - FastScriptReloadPreference.StopShowingAutoReloadEnabledDialogBox.SetEditorPersistedValue(true); - - break; - - // don't change - case 2: - - break; - - default: - LoggerScoped.LogError("Unrecognized option."); - break; - } - - - } - - //copied from internal UnityEditor.AssetPipelineAutoRefreshMode - internal enum AssetPipelineAutoRefreshMode - { - Disabled, - Enabled, - EnabledOutsidePlaymode, - } - - private static void DisplayMessageIfLastDetourPotentiallyCrashedEditor() - { - const string firstInitSessionKey = "FastScriptReloadWelcomeScreenInitializer_FirstInitDone"; - if (!SessionState.GetBool(firstInitSessionKey, false)) - { - SessionState.SetBool(firstInitSessionKey, true); - - var lastDetour = DetourCrashHandler.RetrieveLastDetour(); - if (!string.IsNullOrEmpty(lastDetour)) - { - EditorUtility.DisplayDialog("Fast Script Reload", - $@"That's embarrassing! - -It seems like I've crashed your editor, sorry! - -Last detoured method was: '{lastDetour}' - -If this happens again, please reach out via support and we'll sort it out. - -In the meantime, you can exclude any file from Hot-Reload by -1) right-clicking on .cs file in Project menu -2) Fast Script Reload -3) Add Hot-Reload Exclusion -", "Ok"); - DetourCrashHandler.ClearDetourLog(); - } - } - } - - protected static void AutoDetectAndSetShaderMode() - { - var usedShaderMode = FastScriptReloadPreference.ShadersMode.Surface; - var renderPipelineAsset = GraphicsSettings.renderPipelineAsset; - if (renderPipelineAsset == null) - { - usedShaderMode = FastScriptReloadPreference.ShadersMode.Surface; - } - else if (renderPipelineAsset.GetType().Name.Contains("HDRenderPipelineAsset")) - { - usedShaderMode = FastScriptReloadPreference.ShadersMode.HDRP; - } - else if (renderPipelineAsset.GetType().Name.Contains("UniversalRenderPipelineAsset")) - { - usedShaderMode = FastScriptReloadPreference.ShadersMode.URP; - } - - FastScriptReloadPreference.SetCommonMaterialsShader(usedShaderMode); - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/FileWatcherSetupEntry.cs b/Assets/FastScriptReload/Scripts/Editor/FileWatcherSetupEntry.cs deleted file mode 100644 index 53c78a74b..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/FileWatcherSetupEntry.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using ImmersiveVRTools.Editor.Common.WelcomeScreen.PreferenceDefinition; - -namespace FastScriptReload.Editor -{ - [Serializable] - public class FileWatcherSetupEntry: JsonObjectListSerializable - { - public string path; - public string filter; - public bool includeSubdirectories; - - public FileWatcherSetupEntry(string path, string filter, bool includeSubdirectories) - { - this.path = path; - this.filter = filter; - this.includeSubdirectories = includeSubdirectories; - } - - [Obsolete("Serialization required")] - public FileWatcherSetupEntry() - { - } - - public override List GenerateRenderingInfo() - { - return new List - { - new JsonObjectRepresentationStringRenderingInfo("Path", (e) => e.path, (o, val) => o.path = val, 230), - new JsonObjectRepresentationStringRenderingInfo("Filter", (e) => e.filter, (o, val) => o.filter = val, 100), - new JsonObjectRepresentationBoolRenderingInfo("Include Subdirectories", (e) => e.includeSubdirectories, (o, val) => o.includeSubdirectories = val, 145), - }; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Editor/NewFields/NewFieldsRendererDefaultEditorPatch.cs b/Assets/FastScriptReload/Scripts/Editor/NewFields/NewFieldsRendererDefaultEditorPatch.cs deleted file mode 100644 index 2429b580b..000000000 --- a/Assets/FastScriptReload/Scripts/Editor/NewFields/NewFieldsRendererDefaultEditorPatch.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using FastScriptReload.Editor.Compilation.CodeRewriting; -using FastScriptReload.Runtime; -using FastScriptReload.Scripts.Runtime; -using HarmonyLib; -using ImmersiveVRTools.Editor.Common.Utilities; -using UnityEditor; -using UnityEngine; - -namespace FastScriptReload.Editor.NewFields -{ - [InitializeOnLoad] - public class NewFieldsRendererDefaultEditorPatch - { - private static List _cachedKeys = new List(); - - static NewFieldsRendererDefaultEditorPatch() - { - if ((bool)FastScriptReloadPreference.EnableExperimentalAddedFieldsSupport.GetEditorPersistedValueOrDefault()) - { - var harmony = new Harmony(nameof(NewFieldsRendererDefaultEditorPatch)); - - var renderAdditionalFieldsOnOptimizedGuiPostfix = AccessTools.Method(typeof(NewFieldsRendererDefaultEditorPatch), nameof(OnOptimizedInspectorGUI)); - var noCustomEditorOriginalRenderingMethdod = AccessTools.Method("UnityEditor.GenericInspector:OnOptimizedInspectorGUI"); - harmony.Patch(noCustomEditorOriginalRenderingMethdod, postfix: new HarmonyMethod(renderAdditionalFieldsOnOptimizedGuiPostfix)); - - var renderAdditionalFieldsDrawDefaultInspectorPostfix = AccessTools.Method(typeof(NewFieldsRendererDefaultEditorPatch), nameof(DrawDefaultInspector)); - var customEditorRenderingMethod = AccessTools.Method("UnityEditor.Editor:DrawDefaultInspector"); - harmony.Patch(customEditorRenderingMethod, postfix: new HarmonyMethod(renderAdditionalFieldsDrawDefaultInspectorPostfix)); - } - } - - private static void OnOptimizedInspectorGUI(Rect contentRect, UnityEditor.Editor __instance) - { - RenderNewlyAddedFields(__instance); - } - - private static void DrawDefaultInspector(UnityEditor.Editor __instance) - { - RenderNewlyAddedFields(__instance); - } - - private static void RenderNewlyAddedFields(UnityEditor.Editor __instance) - { - //TODO: perf optimize, this will be used for many types, perhaps keep which types changed and just pass type? - if (__instance.target) - { - if (TemporaryNewFieldValues.TryGetDynamicallyAddedFieldValues(__instance.target, out var addedFieldValues)) - { - EditorGUILayout.Space(10); - - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField("[FSR] Dynamically Added Fields:"); - GuiTooltipHelper.AddHelperTooltip("Fields were dynamically added for hot-reload, you can adjust their values and on full reload they'll disappear from this section and move back to main one."); - EditorGUILayout.EndHorizontal(); - EditorGUILayout.Space(5); - - try - { - _cachedKeys.AddRange(addedFieldValues.Keys); //otherwise collection changed exception can happen - - var newFieldNameToGetTypeFn = CreateNewFieldInitMethodRewriter.ResolveNewFieldsToTypeFn( - AssemblyChangesLoader.Instance.GetRedirectedType(__instance.target.GetType()) - ); - - if(newFieldNameToGetTypeFn.Count == 0) - return; - - foreach (var addedFieldValueKey in _cachedKeys) - { - var newFieldType = (Type)newFieldNameToGetTypeFn[addedFieldValueKey](); - - //rendering types come from UnityEditor.EditorGUI.DefaultPropertyField - that should handle all cases that editor can render - if (newFieldType == typeof(int)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.IntField(addedFieldValueKey, (int)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(bool)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Toggle(addedFieldValueKey, (bool)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(float)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.FloatField(addedFieldValueKey, (float)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(string)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.TextField(addedFieldValueKey, (string)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Color)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.ColorField(addedFieldValueKey, (Color)addedFieldValues[addedFieldValueKey]); - //TODO: SerializedPropertyType.LayerMask - else if (newFieldType == typeof(Enum)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.EnumPopup(addedFieldValueKey, (Enum)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Vector2)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Vector2Field(addedFieldValueKey, (Vector2)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Vector3)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Vector3Field(addedFieldValueKey, (Vector3)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Vector4)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Vector4Field(addedFieldValueKey, (Vector4)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Rect)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.RectField(addedFieldValueKey, (Rect)addedFieldValues[addedFieldValueKey]); - //TODO: SerializedPropertyType.ArraySize - //TODO: SerializedPropertyType.Character - // else if (existingValueType == typeof(char)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.TextField(addedFieldValueKey, (char)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(AnimationCurve)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.CurveField(addedFieldValueKey, (AnimationCurve)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Bounds)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.BoundsField(addedFieldValueKey, (Bounds)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Gradient)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.GradientField(addedFieldValueKey, (Gradient)addedFieldValues[addedFieldValueKey]); - //TODO: SerializedPropertyType.FixedBufferSize - else if (newFieldType == typeof(Vector2Int)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Vector2IntField(addedFieldValueKey, (Vector2Int)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(Vector3Int)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.Vector3IntField(addedFieldValueKey, (Vector3Int)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(RectInt)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.RectIntField(addedFieldValueKey, (RectInt)addedFieldValues[addedFieldValueKey]); - else if (newFieldType == typeof(BoundsInt)) addedFieldValues[addedFieldValueKey] = EditorGUILayout.BoundsIntField(addedFieldValueKey, (BoundsInt)addedFieldValues[addedFieldValueKey]); - //TODO: SerializedPropertyType.Hash128 - else if (newFieldType == typeof(Quaternion)) - { - //Quaternions are rendered as euler angles in editor - addedFieldValues[addedFieldValueKey] = Quaternion.Euler(EditorGUILayout.Vector3Field(addedFieldValueKey, ((Quaternion)addedFieldValues[addedFieldValueKey]).eulerAngles)); - } - else if (typeof(UnityEngine.Object).IsAssignableFrom(newFieldType)) - { - addedFieldValues[addedFieldValueKey] = EditorGUILayout.ObjectField(new GUIContent(addedFieldValueKey), (UnityEngine.Object)addedFieldValues[addedFieldValueKey], newFieldType, __instance.target); - } - - else - { - EditorGUILayout.BeginHorizontal(); - EditorGUILayout.LabelField($"{newFieldType.Name} - Unable to render"); - GuiTooltipHelper.AddHelperTooltip( - $"Unable to handle added-field rendering for type: {newFieldType.Name}, it won't be rendered. Best workaround is to not add this type dynamically in current version."); - EditorGUILayout.EndHorizontal(); - } - } - } - finally - { - _cachedKeys.Clear(); - } - } - } - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoader.cs b/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoader.cs deleted file mode 100644 index 0516a6def..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoader.cs +++ /dev/null @@ -1,243 +0,0 @@ -#if UNITY_EDITOR || LiveScriptReload_Enabled - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Reflection; -using HarmonyLib; -using ImmersiveVRTools.Runtime.Common; -using ImmersiveVRTools.Runtime.Common.Extensions; -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEngine; - -namespace FastScriptReload.Runtime -{ - [PreventHotReload] -#if UNITY_EDITOR - [UnityEditor.InitializeOnLoad] -#endif - public class AssemblyChangesLoader: IAssemblyChangesLoader - { - const BindingFlags ALL_BINDING_FLAGS = BindingFlags.Public | BindingFlags.NonPublic | - BindingFlags.Static | BindingFlags.Instance | - BindingFlags.FlattenHierarchy; - - const BindingFlags ALL_DECLARED_METHODS_BINDING_FLAGS = BindingFlags.Public | BindingFlags.NonPublic | - BindingFlags.Static | BindingFlags.Instance | - BindingFlags.DeclaredOnly; //only declared methods can be redirected, otherwise it'll result in hang - - public const string ClassnamePatchedPostfix = "__Patched_"; - public const string ON_HOT_RELOAD_METHOD_NAME = "OnScriptHotReload"; - public const string ON_HOT_RELOAD_NO_INSTANCE_STATIC_METHOD_NAME = "OnScriptHotReloadNoInstance"; - - private static readonly List ExcludeMethodsDefinedOnTypes = new List - { - typeof(MonoBehaviour), - typeof(Behaviour), - typeof(UnityEngine.Object), - typeof(Component), - typeof(System.Object) - }; //TODO: move out and possibly define a way to exclude all non-client created code? as this will crash editor - - private static AssemblyChangesLoader _instance; - public static AssemblyChangesLoader Instance => _instance ?? (_instance = new AssemblyChangesLoader()); - - private Dictionary _existingTypeToRedirectedType = new Dictionary(); - - public void DynamicallyUpdateMethodsForCreatedAssembly(Assembly dynamicallyLoadedAssemblyWithUpdates, AssemblyChangesLoaderEditorOptionsNeededInBuild editorOptions) - { - try - { - var sw = new Stopwatch(); - sw.Start(); - - foreach (var createdType in dynamicallyLoadedAssemblyWithUpdates.GetTypes() - .Where(t => (t.IsClass - && !typeof(Delegate).IsAssignableFrom(t)) //don't redirect delegates - // || (t.IsValueType && !t.IsPrimitive) //struct check, ensure works - ) - ) - { - if (createdType.GetCustomAttribute() != null) - { - //TODO: ideally type would be excluded from compilation not just from detour - LoggerScoped.Log($"Type: {createdType.Name} marked as {nameof(PreventHotReload)} - ignoring change."); - continue; - } - - var createdTypeNameWithoutPatchedPostfix = RemoveClassPostfix(createdType.FullName); - if (ProjectTypeCache.AllTypesInNonDynamicGeneratedAssemblies.TryGetValue(createdTypeNameWithoutPatchedPostfix, out var matchingTypeInExistingAssemblies)) - { - _existingTypeToRedirectedType[matchingTypeInExistingAssemblies] = createdType; - - if (!editorOptions.IsDidFieldsOrPropertyCountChangedCheckDisabled - && !editorOptions.EnableExperimentalAddedFieldsSupport - && DidFieldsOrPropertyCountChanged(createdType, matchingTypeInExistingAssemblies)) - { - continue; - } - - var allDeclaredMethodsInExistingType = matchingTypeInExistingAssemblies.GetMethods(ALL_DECLARED_METHODS_BINDING_FLAGS) - .Where(m => !ExcludeMethodsDefinedOnTypes.Contains(m.DeclaringType)) - .ToList(); - foreach (var createdTypeMethodToUpdate in createdType.GetMethods(ALL_DECLARED_METHODS_BINDING_FLAGS) - .Where(m => !ExcludeMethodsDefinedOnTypes.Contains(m.DeclaringType))) - { - var createdTypeMethodToUpdateFullDescriptionWithoutPatchedClassPostfix = RemoveClassPostfix(createdTypeMethodToUpdate.FullDescription()); - var matchingMethodInExistingType = allDeclaredMethodsInExistingType.SingleOrDefault(m => m.FullDescription() == createdTypeMethodToUpdateFullDescriptionWithoutPatchedClassPostfix); - if (matchingMethodInExistingType != null) - { - if (matchingMethodInExistingType.IsGenericMethod) - { - LoggerScoped.LogWarning($"Method: '{matchingMethodInExistingType.FullDescription()}' is generic. Hot-Reload for generic methods is not supported yet, you won't see changes for that method."); - continue; - } - - if (matchingMethodInExistingType.DeclaringType != null && matchingMethodInExistingType.DeclaringType.IsGenericType) - { - LoggerScoped.LogWarning($"Type for method: '{matchingMethodInExistingType.FullDescription()}' is generic. Hot-Reload for generic types is not supported yet, you won't see changes for that type."); - continue; - } - - LoggerScoped.LogDebug($"Trying to detour method, from: '{matchingMethodInExistingType.FullDescription()}' to: '{createdTypeMethodToUpdate.FullDescription()}'"); - DetourCrashHandler.LogDetour(matchingMethodInExistingType.ResolveFullName()); - Memory.DetourMethod(matchingMethodInExistingType, createdTypeMethodToUpdate); - } - else - { - LoggerScoped.LogWarning($"Method: {createdTypeMethodToUpdate.FullDescription()} does not exist in initially compiled type: {matchingTypeInExistingAssemblies.FullName}. " + - $"Adding new methods at runtime is not fully supported. \r\n" + - $"It'll only work new method is only used by declaring class (eg private method)\r\n" + - $"Make sure to add method before initial compilation."); - } - } - - FindAndExecuteStaticOnScriptHotReloadNoInstance(createdType); - FindAndExecuteOnScriptHotReload(matchingTypeInExistingAssemblies); - } - else - { - LoggerScoped.LogWarning($"FSR: Unable to find existing type for: '{createdType.FullName}', this is not an issue if you added new type. If it's an existing type please do a full domain-reload - one of optimisations is to cache existing types for later lookup on first call."); - FindAndExecuteStaticOnScriptHotReloadNoInstance(createdType); - FindAndExecuteOnScriptHotReload(createdType); - } - } - - LoggerScoped.Log($"Hot-reload completed (took {sw.ElapsedMilliseconds}ms)"); - } - finally - { - DetourCrashHandler.ClearDetourLog(); - } - } - - public Type GetRedirectedType(Type forExistingType) - { - return _existingTypeToRedirectedType[forExistingType]; - } - - private static bool DidFieldsOrPropertyCountChanged(Type createdType, Type matchingTypeInExistingAssemblies) - { - var createdTypeFieldAndProperties = createdType.GetFields(ALL_BINDING_FLAGS).Concat(createdType.GetProperties(ALL_BINDING_FLAGS).Cast()).ToList(); - var matchingTypeFieldAndProperties = matchingTypeInExistingAssemblies.GetFields(ALL_BINDING_FLAGS).Concat(matchingTypeInExistingAssemblies.GetProperties(ALL_BINDING_FLAGS).Cast()).ToList(); - if (createdTypeFieldAndProperties.Count != matchingTypeFieldAndProperties.Count) - { - var addedMemberNames = createdTypeFieldAndProperties.Select(m => m.Name).Except(matchingTypeFieldAndProperties.Select(m => m.Name)).ToList(); - LoggerScoped.LogError($"It seems you've added/removed field to changed script. This is not supported and will result in undefined behaviour. Hot-reload will not be performed for type: {matchingTypeInExistingAssemblies.Name}" + - $"\r\n\r\nYou can skip the check and force reload anyway if needed, to do so go to: 'Window -> Fast Script Reload -> Start Screen -> Reload -> tick 'Disable added/removed fields check'" + - (addedMemberNames.Any() ? $"\r\nAdded: {string.Join(", ", addedMemberNames)}" : "")); - LoggerScoped.Log( - $"There's an experimental feature that allows to add new fields (which are adjustable in editor), to enable please:" + - $"\r\n - Open Settings 'Window -> Fast Script Reload -> Start Screen -> New Fields -> tick 'Enable experimental added field support'"); - return true; - } - - return false; - } - - private static void FindAndExecuteStaticOnScriptHotReloadNoInstance(Type createdType) - { - var onScriptHotReloadStaticFnForType = createdType.GetMethod(ON_HOT_RELOAD_NO_INSTANCE_STATIC_METHOD_NAME, - BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); - if (onScriptHotReloadStaticFnForType != null) - { - UnityMainThreadDispatcher.Instance.Enqueue(() => - { - onScriptHotReloadStaticFnForType.Invoke(null, null); - }); - } - } - - private static void FindAndExecuteOnScriptHotReload(Type type) - { - var onScriptHotReloadFnForType = type.GetMethod(ON_HOT_RELOAD_METHOD_NAME, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); - if (onScriptHotReloadFnForType != null) - { - UnityMainThreadDispatcher.Instance.Enqueue(() => - { - if (!typeof(MonoBehaviour).IsAssignableFrom(type)) { - LoggerScoped.LogWarning($"Type: {type.Name} is not {nameof(MonoBehaviour)}, {ON_HOT_RELOAD_METHOD_NAME} method can't be executed. You can still use static version: {ON_HOT_RELOAD_NO_INSTANCE_STATIC_METHOD_NAME}"); - return; - } - foreach (var instanceOfType in GameObject.FindObjectsOfType(type)) //TODO: perf - could find them in different way? - { - onScriptHotReloadFnForType.Invoke(instanceOfType, null); - } - }); - } - } - - private static string RemoveClassPostfix(string fqdn) - { - return fqdn.Replace(ClassnamePatchedPostfix, string.Empty); - } - } - - - [AttributeUsage(AttributeTargets.Assembly)] - public class DynamicallyCreatedAssemblyAttribute : Attribute - { - public DynamicallyCreatedAssemblyAttribute() - { - } - } - - [AttributeUsage(AttributeTargets.Class)] - public class PreventHotReload : Attribute - { - - } - - public interface IAssemblyChangesLoader - { - void DynamicallyUpdateMethodsForCreatedAssembly(Assembly dynamicallyLoadedAssemblyWithUpdates, AssemblyChangesLoaderEditorOptionsNeededInBuild editorOptions); - } - - [Serializable] - public class AssemblyChangesLoaderEditorOptionsNeededInBuild - { - public bool IsDidFieldsOrPropertyCountChangedCheckDisabled; - public bool EnableExperimentalAddedFieldsSupport; - - public AssemblyChangesLoaderEditorOptionsNeededInBuild(bool isDidFieldsOrPropertyCountChangedCheckDisabled, bool enableExperimentalAddedFieldsSupport) - { - IsDidFieldsOrPropertyCountChangedCheckDisabled = isDidFieldsOrPropertyCountChangedCheckDisabled; - EnableExperimentalAddedFieldsSupport = enableExperimentalAddedFieldsSupport; - } -#pragma warning disable 0618 - [Obsolete("Needed for network serialization")] -#pragma warning enable 0618 - public AssemblyChangesLoaderEditorOptionsNeededInBuild() - { - } - - //WARN: make sure it has same params as ctor - public void UpdateValues(bool isDidFieldsOrPropertyCountChangedCheckDisabled, bool enableExperimentalAddedFieldsSupport) - { - IsDidFieldsOrPropertyCountChangedCheckDisabled = isDidFieldsOrPropertyCountChangedCheckDisabled; - EnableExperimentalAddedFieldsSupport = enableExperimentalAddedFieldsSupport; - } - } -} -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoaderResolver.cs b/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoaderResolver.cs deleted file mode 100644 index 504d872a9..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/AssemblyChangesLoaderResolver.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Linq; -using System.Reflection; -using ImmersiveVRTools.Runtime.Common.Utilities; - -#if UNITY_EDITOR || LiveScriptReload_Enabled - -namespace FastScriptReload.Runtime -{ - public class AssemblyChangesLoaderResolver - { - private static AssemblyChangesLoaderResolver _instance; - public static AssemblyChangesLoaderResolver Instance => _instance ?? (_instance = new AssemblyChangesLoaderResolver()); - - private IAssemblyChangesLoader _cachedNetworkLoader; - - public IAssemblyChangesLoader Resolve() - { -#if LiveScriptReload_Enabled - //network loader is in add-on that's not referenced by this lib, use reflection to get instance - if (_cachedNetworkLoader == null) - { - _cachedNetworkLoader = (IAssemblyChangesLoader)ReflectionHelper.GetAllTypes() - .First(t => t.FullName == "LiveScriptReload.Runtime.NetworkedAssemblyChangesSender") - .GetProperty("Instance", BindingFlags.Static | BindingFlags.Public | BindingFlags.FlattenHierarchy) - .GetValue(null); - } - - if (_cachedNetworkLoader == null) - { - throw new Exception("Unable to resolve NetworkedAssemblyChangesSender, Live Script Reload will not work - please contact support"); - } - - return _cachedNetworkLoader; -#else - return AssemblyChangesLoader.Instance; -#endif - - } - } -} - -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/DetourCrashHandler.cs b/Assets/FastScriptReload/Scripts/Runtime/DetourCrashHandler.cs deleted file mode 100644 index 5a47f0e16..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/DetourCrashHandler.cs +++ /dev/null @@ -1,76 +0,0 @@ -#if UNITY_EDITOR || LiveScriptReload_Enabled -using System; -using System.IO; -using System.Linq; -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEngine; - -namespace FastScriptReload.Runtime -{ -#if UNITY_EDITOR - [UnityEditor.InitializeOnLoad] -#endif - public class DetourCrashHandler - { - //TODO: add device support / android crashes / how to report issues back? - public static string LastDetourFilePath; - - static DetourCrashHandler() - { -#if UNITY_EDITOR - Init(); -#else - LoggerScoped.Log($"{nameof(DetourCrashHandler)}: currently only supported in Editor"); -#endif - } - - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] - static void Init() - { -#if UNITY_EDITOR - LastDetourFilePath = Path.GetTempPath() + Application.productName + "-last-detour.txt"; - foreach (var c in Path.GetInvalidFileNameChars()) - { - LastDetourFilePath = LastDetourFilePath.Replace(c, '-'); - } -#else - LoggerScoped.Log($"{nameof(DetourCrashHandler)}: currently only supported in Editor"); -#endif - } - - public static void LogDetour(string fullName) - { -#if UNITY_EDITOR - File.AppendAllText(LastDetourFilePath, fullName + Environment.NewLine); -#else - LoggerScoped.Log($"{nameof(DetourCrashHandler)}: currently only supported in Editor"); -#endif - } - - public static string RetrieveLastDetour() - { -#if UNITY_EDITOR - if (File.Exists(LastDetourFilePath)) - { - var lines = File.ReadAllLines(LastDetourFilePath); - return lines.Length > 0 ? lines.Last() : string.Empty; - } - - return string.Empty; -#else - LoggerScoped.Log($"{nameof(DetourCrashHandler)}: currently only supported in Editor"); - return string.Empty; -#endif - } - - public static void ClearDetourLog() - { -#if UNITY_EDITOR - File.Delete(LastDetourFilePath); -#else - LoggerScoped.Log($"{nameof(DetourCrashHandler)}: currently only supported in Editor"); -#endif - } - } -} -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/FastScriptReload.Runtime.asmdef b/Assets/FastScriptReload/Scripts/Runtime/FastScriptReload.Runtime.asmdef deleted file mode 100644 index b8104a8e3..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/FastScriptReload.Runtime.asmdef +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "FastScriptReload.Runtime", - "rootNamespace": "", - "references": [], - "includePlatforms": [], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": true, - "precompiledReferences": [ - "0Harmony.dll", - "ImmersiveVRTools.Common.Runtime.dll" - ], - "autoReferenced": false, - "defineConstraints": [ - "UNITY_EDITOR || LiveScriptReload_IncludeInBuild_Enabled", - "FastScriptReload" - ], - "versionDefines": [], - "noEngineReferences": false -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/LoggerScopedInitializer.cs b/Assets/FastScriptReload/Scripts/Runtime/LoggerScopedInitializer.cs deleted file mode 100644 index 43e41fa5a..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/LoggerScopedInitializer.cs +++ /dev/null @@ -1,22 +0,0 @@ -using ImmersiveVrToolsCommon.Runtime.Logging; -using UnityEngine; - -namespace FastScriptReload.Runtime -{ -#if UNITY_EDITOR - [UnityEditor.InitializeOnLoad] -#endif - public static class LoggerScopedInitializer - { - static LoggerScopedInitializer() - { - Init(); - } - - [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterAssembliesLoaded)] - static void Init() - { - LoggerScoped.LogPrefix = "FSR: "; - } - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/ProjectTypeCache.cs b/Assets/FastScriptReload/Scripts/Runtime/ProjectTypeCache.cs deleted file mode 100644 index 1fcceaed0..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/ProjectTypeCache.cs +++ /dev/null @@ -1,49 +0,0 @@ -#if UNITY_EDITOR || LiveScriptReload_Enabled -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Reflection; - -namespace FastScriptReload.Runtime -{ - public class ProjectTypeCache - { - private static bool _isInitialized; - private static Dictionary _allTypesInNonDynamicGeneratedAssemblies; - public static Dictionary AllTypesInNonDynamicGeneratedAssemblies - { - get - { - if (!_isInitialized) - { - Init(); - } - - return _allTypesInNonDynamicGeneratedAssemblies; - } - } - - private static void Init() - { - if (_allTypesInNonDynamicGeneratedAssemblies == null) - { - var typeLookupSw = new Stopwatch(); - typeLookupSw.Start(); - - _allTypesInNonDynamicGeneratedAssemblies = AppDomain.CurrentDomain.GetAssemblies() - .Where(a => !CustomAttributeExtensions.GetCustomAttributes((Assembly)a).Any()) - .SelectMany(a => a.GetTypes()) - .GroupBy(t => t.FullName) - .Select(g => g.First()) //TODO: quite odd that same type full name can be defined multiple times? eg Microsoft.CodeAnalysis.EmbeddedAttribute throws 'An item with the same key has already been added' - .ToDictionary(t => t.FullName, t => t); - -#if ImmersiveVrTools_DebugEnabled - LoggerScoped.Log($"Initialized type-lookup dictionary, took: {typeLookupSw.ElapsedMilliseconds}ms - cached"); -#endif - } - } - - } -} -#endif \ No newline at end of file diff --git a/Assets/FastScriptReload/Scripts/Runtime/TemporaryNewFieldValues.cs b/Assets/FastScriptReload/Scripts/Runtime/TemporaryNewFieldValues.cs deleted file mode 100644 index e28dc1714..000000000 --- a/Assets/FastScriptReload/Scripts/Runtime/TemporaryNewFieldValues.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Dynamic; -using UnityEngine; -using Object = System.Object; - -namespace FastScriptReload.Scripts.Runtime -{ - public static class TemporaryNewFieldValues - { - public delegate object GetNewFieldInitialValue(Type forNewlyGeneratedType); - public delegate Type GetNewFieldType(Type forNewlyGeneratedType); - - private static readonly Dictionary _existingObjectToFiledNameValueMap = new Dictionary(); - private static readonly Dictionary> _existingObjectTypeToFieldNameToCreateDetaultValueFn = new Dictionary>(); - private static readonly Dictionary> _existingObjectTypeToFieldNameToType = new Dictionary>(); - - //Unity by default will auto init some classes, like gradient, but those are not value types so need to be initialized manually - private static Dictionary> ReferenceTypeToCreateDefaultValueFn = new Dictionary>() - { - [typeof(Gradient)] = () => new Gradient(), - [typeof(AnimationCurve)] = () => new AnimationCurve(), - }; - - public static void RegisterNewFields(Type existingType, Dictionary fieldNameToGenerateDefaultValueFn, Dictionary fieldNameToGetTypeFn) - { - _existingObjectTypeToFieldNameToCreateDetaultValueFn[existingType] = fieldNameToGenerateDefaultValueFn; - _existingObjectTypeToFieldNameToType[existingType] = fieldNameToGetTypeFn; - } - - public static dynamic ResolvePatchedObject(object original) - { - if (!_existingObjectToFiledNameValueMap.TryGetValue(original, out var existingExpandoToObjectTypePair)) - { - var patchedObject = new ExpandoObject(); - var expandoForType = new ExpandoForType { ForType = typeof(TCreatedType), Object = patchedObject }; - - InitializeAdditionalFieldValues(original, patchedObject); - _existingObjectToFiledNameValueMap[original] = expandoForType; - - return patchedObject; - } - else - { - if (existingExpandoToObjectTypePair.ForType != typeof(TCreatedType)) - { - InitializeAdditionalFieldValues(original, existingExpandoToObjectTypePair.Object); - existingExpandoToObjectTypePair.ForType = typeof(TCreatedType); - } - - return existingExpandoToObjectTypePair.Object; - } - } - - public static bool TryGetDynamicallyAddedFieldValues(object forObject, out IDictionary addedFieldValues) - { - if (_existingObjectToFiledNameValueMap.TryGetValue(forObject, out var expandoForType)) - { - addedFieldValues = expandoForType.Object; - return true; - } - - addedFieldValues = null; - return false; - } - - private static void InitializeAdditionalFieldValues(object original, ExpandoObject patchedObject) - { - var originalType = original.GetType(); //TODO: PERF: resolve via TOriginal, not getType - var patchedObjectAsDict = patchedObject as IDictionary; - foreach (var fieldNameToGenerateDefaultValueFn in _existingObjectTypeToFieldNameToCreateDetaultValueFn[originalType]) - { - if (!patchedObjectAsDict.ContainsKey(fieldNameToGenerateDefaultValueFn.Key)) - { - patchedObjectAsDict[fieldNameToGenerateDefaultValueFn.Key] = fieldNameToGenerateDefaultValueFn.Value(typeof(TCreatedType)); - - if (patchedObjectAsDict[fieldNameToGenerateDefaultValueFn.Key] == null) - { - var fieldType = _existingObjectTypeToFieldNameToType[originalType][fieldNameToGenerateDefaultValueFn.Key](typeof(TCreatedType)); - if (ReferenceTypeToCreateDefaultValueFn.TryGetValue(fieldType, out var createValueFn)) - { - patchedObjectAsDict[fieldNameToGenerateDefaultValueFn.Key] = createValueFn(); - } - } - } - } - } - } - - public class ExpandoForType { - public Type ForType; - public ExpandoObject Object; - } -} \ No newline at end of file diff --git a/Assets/FastScriptReload/Third-Party Notices.txt b/Assets/FastScriptReload/Third-Party Notices.txt deleted file mode 100644 index 38d0bb41f..000000000 --- a/Assets/FastScriptReload/Third-Party Notices.txt +++ /dev/null @@ -1,102 +0,0 @@ -Asset is governed by the Asset Store EULA; however, the following components are governed by the licenses indicated below: - -1) Harmony - -MIT License - -Copyright (c) 2017 Andreas Pardeike - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -2) Roslyn - -The MIT License (MIT) - -Copyright (c) .NET Foundation and Contributors - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -3) ImmersiveVrToolsCommon -This code is part of the product and can be used with same licence as the one you purchased it with. - -Left in Plugins folder solely for convenience. - -4) MonoMod.Common -The MIT License (MIT) - -Copyright (c) 2019 - 2020 0x0ade - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - -4) Mono.Cecil -Copyright (c) 2008 - 2015 Jb Evain -Copyright (c) 2008 - 2011 Novell, Inc. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index f05175177..452fdd94e 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -136,8 +136,9 @@ PlayerSettings: vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 loadStoreDebugModeEnabled: 0 - bundleVersion: 0.1.34 - preloadedAssets: [] + bundleVersion: 0.1.41 + preloadedAssets: + - {fileID: 11400000, guid: 7b9d430162275634bb11a99d38617f9e, type: 2} metroInputSource: 0 wsaTransparentSwapchain: 0 m_HolographicPauseOnTrackingLoss: 1