diff --git a/Animations/DragonController.controller b/Animations/DragonController.controller index 967a997..19565bb 100644 --- a/Animations/DragonController.controller +++ b/Animations/DragonController.controller @@ -11,7 +11,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: baa36b7c17a4288439f4e20dd5e8e798, type: 2} m_Threshold: 13 - m_Position: {x: -0.5, y: 0} + m_Position: {x: -0.5, y: -0.2} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -19,7 +19,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 8355f35815429be48b4719939f7c92ae, type: 2} m_Threshold: 18 - m_Position: {x: 0, y: 0} + m_Position: {x: 0, y: -0.2} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -27,7 +27,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 2c46f8b459a2e39489ad33e0c25e45e4, type: 2} m_Threshold: 23 - m_Position: {x: 0.5, y: 0} + m_Position: {x: 0.5, y: -0.2} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -35,7 +35,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 865afa414143d9b4dbb47938baa15854, type: 2} m_Threshold: 28 - m_Position: {x: -0.7, y: 1} + m_Position: {x: -0.7, y: -0.8} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -43,7 +43,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 5cc910c66b70fb04284254469d04f532, type: 2} m_Threshold: 33 - m_Position: {x: 0, y: 1} + m_Position: {x: 0, y: -0.8} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -51,18 +51,103 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: b9df435da0377284ca1a151b641cf1d3, type: 2} m_Threshold: 38 - m_Position: {x: 0.7, y: 1} + m_Position: {x: 0.7, y: -0.8} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity m_Mirror: 0 - m_BlendParameter: angularVelocity - m_BlendParameterY: forwardVelocity + m_BlendParameter: yaw + m_BlendParameterY: verticalVelocity m_MinThreshold: 13 m_MaxThreshold: 38 m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 3 +--- !u!1102 &-8188205827486385974 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Land + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 235655049629258357} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -6416401713070107847} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-7148949229824281150 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground Movement + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 4656374160036315861} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 1 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -5995950608809702562} + m_Tag: + m_SpeedParameter: speed + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!206 &-6416401713070107847 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: f5d454fc50ce1484880e8f911121b98a, type: 2} + m_Threshold: 0.4 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: roll + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 20054dc4b8f9f5f469721d3fe60a42fe, type: 2} + m_Threshold: 1 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: roll + m_Mirror: 0 + m_BlendParameter: roll + m_BlendParameterY: roll + m_MinThreshold: 0.4 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 0 --- !u!206 &-6390963665721911578 BlendTree: m_ObjectHideFlags: 1 @@ -83,7 +168,7 @@ BlendTree: m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} m_Threshold: 18 m_Position: {x: 0, y: 0} - m_TimeScale: 1.5 + m_TimeScale: 1.4 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity m_Mirror: 0 @@ -98,7 +183,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 6ee1aad5e0fb6404e83daaa12fe3b60c, type: 2} m_Threshold: 26 - m_Position: {x: -0.7, y: 1} + m_Position: {x: -0.7, y: 0.7} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -106,7 +191,7 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: 8672a58cf3dba174fabfc1a6e917128b, type: 2} m_Threshold: 30 - m_Position: {x: 0, y: 1} + m_Position: {x: 0, y: 0.8} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity @@ -114,19 +199,47 @@ BlendTree: - serializedVersion: 2 m_Motion: {fileID: 7400000, guid: f5f6ad99c462a594b9a74b5934303e29, type: 2} m_Threshold: 34 - m_Position: {x: 0.7, y: 1} + m_Position: {x: 0.7, y: 0.7} m_TimeScale: 1 m_CycleOffset: 0 m_DirectBlendParameter: angularVelocity m_Mirror: 0 - m_BlendParameter: angularVelocity - m_BlendParameterY: forwardVelocity + m_BlendParameter: yaw + m_BlendParameterY: pitch m_MinThreshold: 14 m_MaxThreshold: 34 m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 3 ---- !u!206 &-5110191505608462634 +--- !u!1102 &-6062263935054202883 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Flight + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4113568117264443117} + - {fileID: -2175759424970179939} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 1 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 2102132162150371118} + m_Tag: + m_SpeedParameter: speed + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!206 &-5995950608809702562 BlendTree: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} @@ -135,223 +248,145 @@ BlendTree: m_Name: Blend Tree m_Childs: - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 87905e8efc51e9848a1d33a36aa95157, type: 2} - m_Threshold: 0 - m_Position: {x: -1, y: 3} + m_Motion: {fileID: 7400000, guid: 22c6db7ffbcac17489bfe3f4d0dc9cae, type: 2} + m_Threshold: 0.06666667 + m_Position: {x: -1, y: 0} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: X + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 14bbf774c9a3ed949b3f10dd1f5037e7, type: 2} - m_Threshold: 0.25 - m_Position: {x: -0, y: 6} - m_TimeScale: 1.2 + m_Motion: {fileID: 7400000, guid: 7cdeec84aabad554b86d26fc01bcba7b, type: 2} + m_Threshold: 0.13333334 + m_Position: {x: 1, y: 0} + m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: X + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400012, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_Threshold: 0.5 - m_Position: {x: 0, y: 0} + m_Motion: {fileID: 7400000, guid: 0721403aa50e57b4ab6dfac45dd4f34d, type: 2} + m_Threshold: 0.20000002 + m_Position: {x: -1, y: 0.3} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: X + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: d99d545b590dd754db3eaf4891ad104b, type: 2} - m_Threshold: 0.75 - m_Position: {x: 1, y: 3} + m_Motion: {fileID: 7400000, guid: 42cd61671c82bd64d81c44a53d73595a, type: 2} + m_Threshold: 0.26666668 + m_Position: {x: -1, y: 0.7} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: X + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 18aa6846075b13e43b13bc3b3307791e, type: 2} - m_Threshold: 1 - m_Position: {x: 0, y: -4} + m_Motion: {fileID: 7400000, guid: 5f0d1563c229c824891d9f9567b353ab, type: 2} + m_Threshold: 0.33333334 + m_Position: {x: 0, y: 0.4} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: X + m_DirectBlendParameter: roll m_Mirror: 0 - m_BlendParameter: angularVelocity - m_BlendParameterY: forwardVelocity - m_MinThreshold: 0 - m_MaxThreshold: 1 - m_UseAutomaticThresholds: 1 - m_NormalizedBlendValues: 0 - m_BlendType: 1 ---- !u!1107 &-2323046387310864844 -AnimatorStateMachine: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Base Layer - m_ChildStates: - - serializedVersion: 1 - m_State: {fileID: 7320282026098016608} - m_Position: {x: 480, y: -220, z: 0} - - serializedVersion: 1 - m_State: {fileID: 7929321913217887456} - m_Position: {x: 480, y: 110, z: 0} - m_ChildStateMachines: [] - m_AnyStateTransitions: [] - m_EntryTransitions: [] - m_StateMachineTransitions: {} - m_StateMachineBehaviours: [] - m_AnyStatePosition: {x: 50, y: 20, z: 0} - m_EntryPosition: {x: 50, y: 120, z: 0} - m_ExitPosition: {x: 800, y: 120, z: 0} - m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} - m_DefaultState: {fileID: 7929321913217887456} ---- !u!91 &9100000 -AnimatorController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: DragonController - serializedVersion: 5 - m_AnimatorParameters: - - m_Name: angularVelocity - m_Type: 1 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - - m_Name: verticalVelocity - m_Type: 1 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - - m_Name: forwardVelocity - m_Type: 1 - m_DefaultFloat: 0 - m_DefaultInt: 0 - m_DefaultBool: 0 - m_Controller: {fileID: 9100000} - m_AnimatorLayers: - - serializedVersion: 5 - m_Name: Base Layer - m_StateMachine: {fileID: -2323046387310864844} - m_Mask: {fileID: 0} - m_Motions: [] - m_Behaviours: [] - m_BlendingMode: 0 - m_SyncedLayerIndex: -1 - m_DefaultWeight: 0 - m_IKPass: 0 - m_SyncedLayerAffectsTiming: 0 - m_Controller: {fileID: 9100000} ---- !u!206 &5237996256603445452 -BlendTree: - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Fly Level - m_Childs: - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: cc9cbc5b07c4f5d4ebee64760b87f7ab, type: 2} - m_Threshold: 0.2 - m_Position: {x: -0.7, y: 0.7} + m_Motion: {fileID: 7400000, guid: 100961df248c7604cb67cb9a391e54ba, type: 2} + m_Threshold: 0.4 + m_Position: {x: 0, y: 0.7} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} - m_Threshold: 0.2888889 - m_Position: {x: 0, y: 0.85} - m_TimeScale: 1.2 + m_Motion: {fileID: 7400000, guid: 77f9c829e773f0644a17356e9aaeb508, type: 2} + m_Threshold: 0.46666667 + m_Position: {x: 1, y: 0.3} + m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: ba3ade90af933bc4ea3f02fa11877300, type: 2} - m_Threshold: 0.37777779 - m_Position: {x: 0.7, y: 0.7} + m_Motion: {fileID: 7400000, guid: 1327632a62d23564ca82127131560da3, type: 2} + m_Threshold: 0.53333336 + m_Position: {x: 1, y: 0.7} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 0b47b571577c971449a4f1f5d234b2fb, type: 2} - m_Threshold: 0.4666667 - m_Position: {x: -0.6, y: 0} + m_Motion: {fileID: 7400000, guid: 2d9e6064dadac784f902292c4d312940, type: 2} + m_Threshold: 0.6 + m_Position: {x: 0, y: 0} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 716784733869f5f44855acc139951a66, type: 2} - m_Threshold: 0.5555556 - m_Position: {x: 0, y: 0} + m_Motion: {fileID: 7400000, guid: 8e50f84997e770343a72fc6a9912d0de, type: 2} + m_Threshold: 0.6666667 + m_Position: {x: 0, y: -1} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 7e26352eb41642447820642ab5e48ea5, type: 2} - m_Threshold: 0.64444447 - m_Position: {x: 0.6, y: 0} + m_Motion: {fileID: 7400000, guid: 4e299ae506296c24c89c59fa182cd3e9, type: 2} + m_Threshold: 0.73333335 + m_Position: {x: -1, y: -0.5} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 158e99599478daf43ae8974ce40e44d2, type: 2} - m_Threshold: 0.73333335 - m_Position: {x: 0, y: -1} + m_Motion: {fileID: 7400000, guid: 63dc492264e72ab45884d3d16e7b17e7, type: 2} + m_Threshold: 0.8 + m_Position: {x: 1, y: -0.5} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: baa36b7c17a4288439f4e20dd5e8e798, type: 2} - m_Threshold: 0.82222223 + m_Motion: {fileID: 7400000, guid: e18a90b540cd0174d80f7c196459c077, type: 2} + m_Threshold: 0.8666667 m_Position: {x: -1, y: 1} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 8355f35815429be48b4719939f7c92ae, type: 2} - m_Threshold: 0.9111111 + m_Motion: {fileID: 7400000, guid: 31bfc5ba291e8e541b3ed0effe9a56e1, type: 2} + m_Threshold: 0.93333334 m_Position: {x: 0, y: 1} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 7400000, guid: 2c46f8b459a2e39489ad33e0c25e45e4, type: 2} + m_Motion: {fileID: 7400000, guid: 7fb613f09f192494baf5938f9750dcea, type: 2} m_Threshold: 1 m_Position: {x: 1, y: 1} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - m_BlendParameter: angularVelocity - m_BlendParameterY: forwardVelocity - m_MinThreshold: 0.2 + m_BlendParameter: turn + m_BlendParameterY: forward + m_MinThreshold: 0.06666667 m_MaxThreshold: 1 m_UseAutomaticThresholds: 1 m_NormalizedBlendValues: 0 - m_BlendType: 3 ---- !u!1102 &7320282026098016608 + m_BlendType: 2 +--- !u!1102 &-4998510795023692726 AnimatorState: serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Fly Level + m_Name: Take Off m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: 7690465360124435592} + - {fileID: 513107367667273169} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 @@ -361,74 +396,893 @@ AnimatorState: m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: -5110191505608462634} + m_Motion: {fileID: -3483190475960587025} m_Tag: m_SpeedParameter: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!1102 &7929321913217887456 +--- !u!1101 &-4113568117264443117 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: glide + m_EventTreshold: 0.4 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8818472427370911743} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &-3696853045062049746 AnimatorState: serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Flight + m_Name: Fly m_Speed: 1 m_CycleOffset: 0 - m_Transitions: [] + m_Transitions: + - {fileID: -1988443606807587019} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 m_Mirror: 0 - m_SpeedParameterActive: 0 + m_SpeedParameterActive: 1 m_MirrorParameterActive: 0 m_CycleOffsetParameterActive: 0 m_TimeParameterActive: 0 - m_Motion: {fileID: 8110355964824687831} + m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} m_Tag: - m_SpeedParameter: + m_SpeedParameter: speed m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: ---- !u!206 &8110355964824687831 +--- !u!206 &-3483190475960587025 BlendTree: m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: Flight + m_Name: Blend Tree m_Childs: - serializedVersion: 2 - m_Motion: {fileID: -8904977728813876417} - m_Threshold: -0.7 - m_Position: {x: -1, y: -0.2} + m_Motion: {fileID: 7400000, guid: ae03bdbfa4f8697459f82ce14835189f, type: 2} + m_Threshold: 0 + m_Position: {x: 0, y: 0} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: 5237996256603445452} - m_Threshold: 0 - m_Position: {x: 3, y: 0} + m_Motion: {fileID: 7400000, guid: 0f76f6d3b2f7b0e43932781861d8af17, type: 2} + m_Threshold: 0.3 + m_Position: {x: 0, y: 0} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - serializedVersion: 2 - m_Motion: {fileID: -6390963665721911578} - m_Threshold: 0.8 - m_Position: {x: 1, y: 0.2} + m_Motion: {fileID: 7400000, guid: 478c730bfd3c1534ca86b78e66dabdbe, type: 2} + m_Threshold: 1 + m_Position: {x: 0, y: 0} m_TimeScale: 1 m_CycleOffset: 0 - m_DirectBlendParameter: angularVelocity + m_DirectBlendParameter: roll m_Mirror: 0 - m_BlendParameter: verticalVelocity - m_BlendParameterY: verticalVelocity - m_MinThreshold: -0.7 - m_MaxThreshold: 0.8 + m_BlendParameter: forwardVelocity + m_BlendParameterY: roll + m_MinThreshold: 0 + m_MaxThreshold: 1 m_UseAutomaticThresholds: 0 m_NormalizedBlendValues: 0 m_BlendType: 0 +--- !u!1107 &-3305796469165601778 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Flying + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -6062263935054202883} + m_Position: {x: 460, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8818472427370911743} + m_Position: {x: 780, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: -8188205827486385974} + m_Position: {x: 460, y: 310, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 820, y: 320, z: 0} + m_ParentStateMachinePosition: {x: 160, y: 230, z: 0} + m_DefaultState: {fileID: -6062263935054202883} +--- !u!1107 &-2323046387310864844 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Base Layer + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -4998510795023692726} + m_Position: {x: 270, y: 260, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3696853045062049746} + m_Position: {x: 270, y: 430, z: 0} + m_ChildStateMachines: + - serializedVersion: 1 + m_StateMachine: {fileID: -3305796469165601778} + m_Position: {x: 630, y: 420, z: 0} + - serializedVersion: 1 + m_StateMachine: {fileID: 2881775655748264109} + m_Position: {x: 430, y: 60, z: 0} + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: + - first: {fileID: -3305796469165601778} + second: + - {fileID: 6010986857719939538} + - first: {fileID: 2881775655748264109} + second: + - {fileID: -298753130373294560} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 30, y: 190, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: -7148949229824281150} +--- !u!1101 &-2175759424970179939 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isLanding + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -8188205827486385974} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &-1988443606807587019 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6062263935054202883} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1109 &-298753130373294560 +AnimatorTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isTakingOff + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -4998510795023692726} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 1 +--- !u!1101 &-40628600873809189 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 2 + m_ConditionEvent: glide + m_EventTreshold: 0.4 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6062263935054202883} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: DragonController + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: speed + m_Type: 1 + m_DefaultFloat: 1 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: isGrounded + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: isTakingOff + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: isLanding + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: roll + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: pitch + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: yaw + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: verticalVelocity + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: forwardVelocity + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: glide + m_Type: 4 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: turn + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: forward + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: Base Layer + m_StateMachine: {fileID: -2323046387310864844} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1101 &235655049629258357 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 0} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 1 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &513107367667273169 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isGrounded + m_EventTreshold: 0 + - m_ConditionMode: 2 + m_ConditionEvent: isTakingOff + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7148949229824281150} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!206 &1940849809455141935 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Down + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: baa36b7c17a4288439f4e20dd5e8e798, type: 2} + m_Threshold: 18 + m_Position: {x: -0.35, y: -0.2} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 8355f35815429be48b4719939f7c92ae, type: 2} + m_Threshold: 23 + m_Position: {x: 0, y: -0.2} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 2c46f8b459a2e39489ad33e0c25e45e4, type: 2} + m_Threshold: 28 + m_Position: {x: 0.35, y: -0.2} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 865afa414143d9b4dbb47938baa15854, type: 2} + m_Threshold: 33 + m_Position: {x: -0.6, y: -0.8} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 5cc910c66b70fb04284254469d04f532, type: 2} + m_Threshold: 38 + m_Position: {x: 0, y: -0.8} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: b9df435da0377284ca1a151b641cf1d3, type: 2} + m_Threshold: 43 + m_Position: {x: 0.7, y: -0.8} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + m_BlendParameter: yaw + m_BlendParameterY: verticalVelocity + m_MinThreshold: 18 + m_MaxThreshold: 43 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 3 +--- !u!206 &2102132162150371118 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Flight + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 1940849809455141935} + m_Threshold: -0.2 + m_Position: {x: -1, y: -0.2} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 6334421064192970886} + m_Threshold: 0.3 + m_Position: {x: 0.2, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 6807847240973777812} + m_Threshold: 1 + m_Position: {x: 1, y: 0.2} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + m_BlendParameter: pitch + m_BlendParameterY: pitch + m_MinThreshold: -0.2 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 0 +--- !u!1107 &2881775655748264109 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground Movement + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -7148949229824281150} + m_Position: {x: 420, y: 110, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 420, y: -100, z: 0} + m_DefaultState: {fileID: -7148949229824281150} +--- !u!1101 &3922406552934577057 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6062263935054202883} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &4656374160036315861 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isTakingOff + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -4998510795023692726} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.840824 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!206 &5237996256603445452 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Level + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: cc9cbc5b07c4f5d4ebee64760b87f7ab, type: 2} + m_Threshold: 0.2 + m_Position: {x: -0.6, y: 0.4} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} + m_Threshold: 0.2979592 + m_Position: {x: 0, y: 0.5} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: ba3ade90af933bc4ea3f02fa11877300, type: 2} + m_Threshold: 0.39591837 + m_Position: {x: 0.6, y: 0.4} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 0b47b571577c971449a4f1f5d234b2fb, type: 2} + m_Threshold: 0.4938776 + m_Position: {x: -0.4, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 716784733869f5f44855acc139951a66, type: 2} + m_Threshold: 0.59183675 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 7e26352eb41642447820642ab5e48ea5, type: 2} + m_Threshold: 0.689796 + m_Position: {x: 0.4, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 158e99599478daf43ae8974ce40e44d2, type: 2} + m_Threshold: 0.78775513 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + m_BlendParameter: yaw + m_BlendParameterY: forwardVelocity + m_MinThreshold: 0.2 + m_MaxThreshold: 0.78775513 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 3 +--- !u!1109 &6010986857719939538 +AnimatorTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: isGrounded + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -7148949229824281150} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 1 +--- !u!206 &6311787111152291628 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: baa36b7c17a4288439f4e20dd5e8e798, type: 2} + m_Threshold: -0.95 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: roll + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 8355f35815429be48b4719939f7c92ae, type: 2} + m_Threshold: 0 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: roll + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 2c46f8b459a2e39489ad33e0c25e45e4, type: 2} + m_Threshold: 0.9 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: roll + m_Mirror: 0 + m_BlendParameter: yaw + m_BlendParameterY: roll + m_MinThreshold: -0.95 + m_MaxThreshold: 0.9 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 0 +--- !u!206 &6334421064192970886 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Level + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: cc9cbc5b07c4f5d4ebee64760b87f7ab, type: 2} + m_Threshold: 0.2 + m_Position: {x: -0.4, y: 0.4} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} + m_Threshold: 0.2979592 + m_Position: {x: 0.099, y: 0.513} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: ba3ade90af933bc4ea3f02fa11877300, type: 2} + m_Threshold: 0.39591837 + m_Position: {x: 0.4, y: 0.4} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 0b47b571577c971449a4f1f5d234b2fb, type: 2} + m_Threshold: 0.4938776 + m_Position: {x: -0.2, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 716784733869f5f44855acc139951a66, type: 2} + m_Threshold: 0.59183675 + m_Position: {x: 0, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 7e26352eb41642447820642ab5e48ea5, type: 2} + m_Threshold: 0.689796 + m_Position: {x: 0.2, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 158e99599478daf43ae8974ce40e44d2, type: 2} + m_Threshold: 0.78775513 + m_Position: {x: 0, y: -1} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + m_BlendParameter: yaw + m_BlendParameterY: forwardVelocity + m_MinThreshold: 0.2 + m_MaxThreshold: 0.78775513 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 3 +--- !u!206 &6807847240973777812 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Up + m_Childs: + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: cc9cbc5b07c4f5d4ebee64760b87f7ab, type: 2} + m_Threshold: 14 + m_Position: {x: -0.4, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: a3bba46aa8991b143b164fe8f22f6d79, type: 2} + m_Threshold: 18 + m_Position: {x: 0, y: 0} + m_TimeScale: 1.4 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: ba3ade90af933bc4ea3f02fa11877300, type: 2} + m_Threshold: 26 + m_Position: {x: 0.4, y: 0} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 6ee1aad5e0fb6404e83daaa12fe3b60c, type: 2} + m_Threshold: 30 + m_Position: {x: -0.65, y: 0.6} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: 8672a58cf3dba174fabfc1a6e917128b, type: 2} + m_Threshold: 34 + m_Position: {x: 0, y: 0.7} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + - serializedVersion: 2 + m_Motion: {fileID: 7400000, guid: f5f6ad99c462a594b9a74b5934303e29, type: 2} + m_Threshold: 38 + m_Position: {x: 0.65, y: 0.6} + m_TimeScale: 1 + m_CycleOffset: 0 + m_DirectBlendParameter: angularVelocity + m_Mirror: 0 + m_BlendParameter: yaw + m_BlendParameterY: pitch + m_MinThreshold: 14 + m_MaxThreshold: 38 + m_UseAutomaticThresholds: 0 + m_NormalizedBlendValues: 0 + m_BlendType: 3 +--- !u!1101 &7690465360124435592 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3696853045062049746} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.45 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1109 &7746444506946679310 +AnimatorTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -6062263935054202883} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 1 +--- !u!1102 &8818472427370911743 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Glide + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -40628600873809189} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 6311787111152291628} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Animations/Placeholders/Fly Backwards.anim b/Animations/Placeholders/Fly Backwards.anim new file mode 100644 index 0000000..d7a4e95 --- /dev/null +++ b/Animations/Placeholders/Fly Backwards.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Backwards + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Backwards.anim.meta b/Animations/Placeholders/Fly Backwards.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Backwards.anim.meta rename to Animations/Placeholders/Fly Backwards.anim.meta diff --git a/Animations/Placeholders/Fly Down Forward L.anim b/Animations/Placeholders/Fly Down Forward L.anim new file mode 100644 index 0000000..ffd011e --- /dev/null +++ b/Animations/Placeholders/Fly Down Forward L.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Down Forward L + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Down Forward L.anim.meta b/Animations/Placeholders/Fly Down Forward L.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Down Forward L.anim.meta rename to Animations/Placeholders/Fly Down Forward L.anim.meta diff --git a/Animations/Placeholders/Fly Down Forward R.anim b/Animations/Placeholders/Fly Down Forward R.anim new file mode 100644 index 0000000..ac22498 --- /dev/null +++ b/Animations/Placeholders/Fly Down Forward R.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Down Forward R + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Down Forward R.anim.meta b/Animations/Placeholders/Fly Down Forward R.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Down Forward R.anim.meta rename to Animations/Placeholders/Fly Down Forward R.anim.meta diff --git a/Animations/Placeholders/UpFly Up.anim b/Animations/Placeholders/Fly Down.anim similarity index 98% rename from Animations/Placeholders/UpFly Up.anim rename to Animations/Placeholders/Fly Down.anim index da54396..082548d 100644 --- a/Animations/Placeholders/UpFly Up.anim +++ b/Animations/Placeholders/Fly Down.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly Up + m_Name: Fly Down serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly Down.anim.meta b/Animations/Placeholders/Fly Down.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Down.anim.meta rename to Animations/Placeholders/Fly Down.anim.meta diff --git a/Animations/Placeholders/Fly Hover.anim b/Animations/Placeholders/Fly Hover.anim new file mode 100644 index 0000000..1f9f8aa --- /dev/null +++ b/Animations/Placeholders/Fly Hover.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Hover + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Stand.anim.meta b/Animations/Placeholders/Fly Hover.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Stand.anim.meta rename to Animations/Placeholders/Fly Hover.anim.meta diff --git a/Animations/Placeholders/UpFly.anim b/Animations/Placeholders/Fly L.anim similarity index 98% rename from Animations/Placeholders/UpFly.anim rename to Animations/Placeholders/Fly L.anim index c52cb6f..2c41684 100644 --- a/Animations/Placeholders/UpFly.anim +++ b/Animations/Placeholders/Fly L.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly + m_Name: Fly L serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly L.anim.meta b/Animations/Placeholders/Fly L.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly L.anim.meta rename to Animations/Placeholders/Fly L.anim.meta diff --git a/Animations/Placeholders/UpGlide.anim b/Animations/Placeholders/Fly R.anim similarity index 98% rename from Animations/Placeholders/UpGlide.anim rename to Animations/Placeholders/Fly R.anim index 27e3ae8..f449991 100644 --- a/Animations/Placeholders/UpGlide.anim +++ b/Animations/Placeholders/Fly R.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpGlide + m_Name: Fly R serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly R.anim.meta b/Animations/Placeholders/Fly R.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly R.anim.meta rename to Animations/Placeholders/Fly R.anim.meta diff --git a/Animations/Placeholders/UpFly Down.anim b/Animations/Placeholders/Fly Strafe L.anim similarity index 98% rename from Animations/Placeholders/UpFly Down.anim rename to Animations/Placeholders/Fly Strafe L.anim index 770e2b7..67f78e6 100644 --- a/Animations/Placeholders/UpFly Down.anim +++ b/Animations/Placeholders/Fly Strafe L.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly Down + m_Name: Fly Strafe L serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly Strafe L.anim.meta b/Animations/Placeholders/Fly Strafe L.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Strafe L.anim.meta rename to Animations/Placeholders/Fly Strafe L.anim.meta diff --git a/Animations/Placeholders/Fly Strafe R.anim b/Animations/Placeholders/Fly Strafe R.anim new file mode 100644 index 0000000..2772f40 --- /dev/null +++ b/Animations/Placeholders/Fly Strafe R.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Strafe R + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Strafe R.anim.meta b/Animations/Placeholders/Fly Strafe R.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Strafe R.anim.meta rename to Animations/Placeholders/Fly Strafe R.anim.meta diff --git a/Animations/Placeholders/Fly Up Turn L.anim b/Animations/Placeholders/Fly Up Turn L.anim new file mode 100644 index 0000000..7e3b07b --- /dev/null +++ b/Animations/Placeholders/Fly Up Turn L.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Up Turn L + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Up Turn L.anim.meta b/Animations/Placeholders/Fly Up Turn L.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Up Turn L.anim.meta rename to Animations/Placeholders/Fly Up Turn L.anim.meta diff --git a/Animations/Placeholders/Fly Up Turn R.anim b/Animations/Placeholders/Fly Up Turn R.anim new file mode 100644 index 0000000..f6f04e7 --- /dev/null +++ b/Animations/Placeholders/Fly Up Turn R.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Fly Up Turn R + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpFly Up Turn R.anim.meta b/Animations/Placeholders/Fly Up Turn R.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Up Turn R.anim.meta rename to Animations/Placeholders/Fly Up Turn R.anim.meta diff --git a/Animations/Placeholders/UpFly L.anim b/Animations/Placeholders/Fly Up.anim similarity index 98% rename from Animations/Placeholders/UpFly L.anim rename to Animations/Placeholders/Fly Up.anim index bba9d4c..94c99c7 100644 --- a/Animations/Placeholders/UpFly L.anim +++ b/Animations/Placeholders/Fly Up.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly L + m_Name: Fly Up serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly Up.anim.meta b/Animations/Placeholders/Fly Up.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly Up.anim.meta rename to Animations/Placeholders/Fly Up.anim.meta diff --git a/Animations/Placeholders/UpFly R.anim b/Animations/Placeholders/Fly.anim similarity index 98% rename from Animations/Placeholders/UpFly R.anim rename to Animations/Placeholders/Fly.anim index 1547ef6..64e4269 100644 --- a/Animations/Placeholders/UpFly R.anim +++ b/Animations/Placeholders/Fly.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly R + m_Name: Fly serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/UpFly.anim.meta b/Animations/Placeholders/Fly.anim.meta similarity index 100% rename from Animations/Placeholders/UpFly.anim.meta rename to Animations/Placeholders/Fly.anim.meta diff --git a/Animations/Placeholders/Glide L.anim b/Animations/Placeholders/Glide L.anim new file mode 100644 index 0000000..72ae91d --- /dev/null +++ b/Animations/Placeholders/Glide L.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Glide L + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpGlide L.anim.meta b/Animations/Placeholders/Glide L.anim.meta similarity index 100% rename from Animations/Placeholders/UpGlide L.anim.meta rename to Animations/Placeholders/Glide L.anim.meta diff --git a/Animations/Placeholders/Glide R.anim b/Animations/Placeholders/Glide R.anim new file mode 100644 index 0000000..37cd95d --- /dev/null +++ b/Animations/Placeholders/Glide R.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Glide R + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpGlide R.anim.meta b/Animations/Placeholders/Glide R.anim.meta similarity index 100% rename from Animations/Placeholders/UpGlide R.anim.meta rename to Animations/Placeholders/Glide R.anim.meta diff --git a/Animations/Placeholders/Glide.anim b/Animations/Placeholders/Glide.anim new file mode 100644 index 0000000..992bc4e --- /dev/null +++ b/Animations/Placeholders/Glide.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Glide + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/UpGlide.anim.meta b/Animations/Placeholders/Glide.anim.meta similarity index 100% rename from Animations/Placeholders/UpGlide.anim.meta rename to Animations/Placeholders/Glide.anim.meta diff --git a/Animations/Placeholders/Ground Idle 1.anim b/Animations/Placeholders/Ground Idle 1.anim new file mode 100644 index 0000000..992ee06 --- /dev/null +++ b/Animations/Placeholders/Ground Idle 1.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground Idle 1 + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/Ground Idle 1.anim.meta b/Animations/Placeholders/Ground Idle 1.anim.meta new file mode 100644 index 0000000..deb6ed6 --- /dev/null +++ b/Animations/Placeholders/Ground Idle 1.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffef967343d4cb74ebc5c4f9a520cb1e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/Land Forward.anim b/Animations/Placeholders/Land Forward.anim new file mode 100644 index 0000000..552038b --- /dev/null +++ b/Animations/Placeholders/Land Forward.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Land Forward + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/Land Forward.anim.meta b/Animations/Placeholders/Land Forward.anim.meta new file mode 100644 index 0000000..cb57da9 --- /dev/null +++ b/Animations/Placeholders/Land Forward.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c66c9d973a8b47d4f8a5a4d74b1d829e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/Land Run.anim b/Animations/Placeholders/Land Run.anim new file mode 100644 index 0000000..0787139 --- /dev/null +++ b/Animations/Placeholders/Land Run.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Land Run + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/Land Run.anim.meta b/Animations/Placeholders/Land Run.anim.meta new file mode 100644 index 0000000..25b152c --- /dev/null +++ b/Animations/Placeholders/Land Run.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ea768a6df46eff42ada5fb9df91c44f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/UpFly Backwards.anim b/Animations/Placeholders/Take Off Forward.anim similarity index 97% rename from Animations/Placeholders/UpFly Backwards.anim rename to Animations/Placeholders/Take Off Forward.anim index 0ed349d..736c034 100644 --- a/Animations/Placeholders/UpFly Backwards.anim +++ b/Animations/Placeholders/Take Off Forward.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly Backwards + m_Name: Take Off Forward serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/Take Off Forward.anim.meta b/Animations/Placeholders/Take Off Forward.anim.meta new file mode 100644 index 0000000..e1d41b4 --- /dev/null +++ b/Animations/Placeholders/Take Off Forward.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f76f6d3b2f7b0e43932781861d8af17 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/Take Off Run.anim b/Animations/Placeholders/Take Off Run.anim new file mode 100644 index 0000000..1d3e154 --- /dev/null +++ b/Animations/Placeholders/Take Off Run.anim @@ -0,0 +1,53 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Take Off Run + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: [] + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Animations/Placeholders/Take Off Run.anim.meta b/Animations/Placeholders/Take Off Run.anim.meta new file mode 100644 index 0000000..d74bfdb --- /dev/null +++ b/Animations/Placeholders/Take Off Run.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b1bf5eb05923a6240afc3dfe8dc03d5f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/UpFly Stand.anim b/Animations/Placeholders/Take Off Up.anim similarity index 98% rename from Animations/Placeholders/UpFly Stand.anim rename to Animations/Placeholders/Take Off Up.anim index af8cb1c..d356ee0 100644 --- a/Animations/Placeholders/UpFly Stand.anim +++ b/Animations/Placeholders/Take Off Up.anim @@ -6,7 +6,7 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: UpFly Stand + m_Name: Take Off Up serializedVersion: 6 m_Legacy: 0 m_Compressed: 0 diff --git a/Animations/Placeholders/Take Off Up.anim.meta b/Animations/Placeholders/Take Off Up.anim.meta new file mode 100644 index 0000000..3b961b0 --- /dev/null +++ b/Animations/Placeholders/Take Off Up.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3adb37226d2cc804cbf549b0e919170d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Animations/Placeholders/UpFly Down Forward L.anim b/Animations/Placeholders/UpFly Down Forward L.anim deleted file mode 100644 index c272ca7..0000000 --- a/Animations/Placeholders/UpFly Down Forward L.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Down Forward L - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpFly Down Forward R.anim b/Animations/Placeholders/UpFly Down Forward R.anim deleted file mode 100644 index 758818e..0000000 --- a/Animations/Placeholders/UpFly Down Forward R.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Down Forward R - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpFly Strafe L.anim b/Animations/Placeholders/UpFly Strafe L.anim deleted file mode 100644 index 6c809c3..0000000 --- a/Animations/Placeholders/UpFly Strafe L.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Strafe L - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpFly Strafe R.anim b/Animations/Placeholders/UpFly Strafe R.anim deleted file mode 100644 index 055656f..0000000 --- a/Animations/Placeholders/UpFly Strafe R.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Strafe R - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpFly Up Turn L.anim b/Animations/Placeholders/UpFly Up Turn L.anim deleted file mode 100644 index cf2958a..0000000 --- a/Animations/Placeholders/UpFly Up Turn L.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Up Turn L - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpFly Up Turn R.anim b/Animations/Placeholders/UpFly Up Turn R.anim deleted file mode 100644 index 4f07ba9..0000000 --- a/Animations/Placeholders/UpFly Up Turn R.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpFly Up Turn R - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpGlide L.anim b/Animations/Placeholders/UpGlide L.anim deleted file mode 100644 index c017347..0000000 --- a/Animations/Placeholders/UpGlide L.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpGlide L - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Placeholders/UpGlide R.anim b/Animations/Placeholders/UpGlide R.anim deleted file mode 100644 index 0120d00..0000000 --- a/Animations/Placeholders/UpGlide R.anim +++ /dev/null @@ -1,53 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!74 &7400000 -AnimationClip: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: UpGlide R - serializedVersion: 6 - m_Legacy: 0 - m_Compressed: 0 - m_UseHighQualityCurve: 1 - m_RotationCurves: [] - m_CompressedRotationCurves: [] - m_EulerCurves: [] - m_PositionCurves: [] - m_ScaleCurves: [] - m_FloatCurves: [] - m_PPtrCurves: [] - m_SampleRate: 60 - m_WrapMode: 0 - m_Bounds: - m_Center: {x: 0, y: 0, z: 0} - m_Extent: {x: 0, y: 0, z: 0} - m_ClipBindingConstant: - genericBindings: [] - pptrCurveMapping: [] - m_AnimationClipSettings: - serializedVersion: 2 - m_AdditiveReferencePoseClip: {fileID: 0} - m_AdditiveReferencePoseTime: 0 - m_StartTime: 0 - m_StopTime: 1 - m_OrientationOffsetY: 0 - m_Level: 0 - m_CycleOffset: 0 - m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 - m_LoopBlend: 0 - m_LoopBlendOrientation: 0 - m_LoopBlendPositionY: 0 - m_LoopBlendPositionXZ: 0 - m_KeepOriginalOrientation: 0 - m_KeepOriginalPositionY: 1 - m_KeepOriginalPositionXZ: 0 - m_HeightFromFeet: 0 - m_Mirror: 0 - m_EditorCurves: [] - m_EulerEditorCurves: [] - m_HasGenericRootTransform: 0 - m_HasMotionFloatCurves: 0 - m_Events: [] diff --git a/Animations/Unka.overrideController b/Animations/Unka.overrideController index 2f1736e..fcd71fc 100644 --- a/Animations/Unka.overrideController +++ b/Animations/Unka.overrideController @@ -29,8 +29,6 @@ AnimatorOverrideController: m_OverrideClip: {fileID: 7400008, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_OriginalClip: {fileID: 7400000, guid: 2c46f8b459a2e39489ad33e0c25e45e4, type: 2} m_OverrideClip: {fileID: 7400010, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - - m_OriginalClip: {fileID: 7400012, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_OverrideClip: {fileID: 7400012, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_OriginalClip: {fileID: 7400000, guid: 716784733869f5f44855acc139951a66, type: 2} m_OverrideClip: {fileID: 7400012, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_OriginalClip: {fileID: 7400000, guid: 0b47b571577c971449a4f1f5d234b2fb, type: 2} @@ -43,3 +41,15 @@ AnimatorOverrideController: m_OverrideClip: {fileID: 7400048, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} - m_OriginalClip: {fileID: 7400000, guid: f5f6ad99c462a594b9a74b5934303e29, type: 2} m_OverrideClip: {fileID: 7400050, guid: 47c70e2dd99a9f14f90c8e037c1c792b, type: 3} + - m_OriginalClip: {fileID: 7400000, guid: ffef967343d4cb74ebc5c4f9a520cb1e, type: 2} + m_OverrideClip: {fileID: 7400000, guid: 2d9e6064dadac784f902292c4d312940, type: 2} + - m_OriginalClip: {fileID: 7400000, guid: f5d454fc50ce1484880e8f911121b98a, type: 2} + m_OverrideClip: {fileID: 7400000, guid: f5d454fc50ce1484880e8f911121b98a, type: 2} + - m_OriginalClip: {fileID: 7400000, guid: 245aabe401e9a024c8aacbe4a865906b, type: 2} + m_OverrideClip: {fileID: 7400000, guid: 245aabe401e9a024c8aacbe4a865906b, type: 2} + - m_OriginalClip: {fileID: 7400000, guid: 478c730bfd3c1534ca86b78e66dabdbe, type: 2} + m_OverrideClip: {fileID: 7400000, guid: 478c730bfd3c1534ca86b78e66dabdbe, type: 2} + - m_OriginalClip: {fileID: 7400000, guid: ae03bdbfa4f8697459f82ce14835189f, type: 2} + m_OverrideClip: {fileID: 7400000, guid: ae03bdbfa4f8697459f82ce14835189f, type: 2} + - m_OriginalClip: {fileID: 7400000, guid: 20054dc4b8f9f5f469721d3fe60a42fe, type: 2} + m_OverrideClip: {fileID: 7400000, guid: 20054dc4b8f9f5f469721d3fe60a42fe, type: 2} diff --git a/Prefabs/Camera Follow Target.prefab b/Prefabs/Camera Follow Target.prefab index c9a7bf6..dd670df 100644 --- a/Prefabs/Camera Follow Target.prefab +++ b/Prefabs/Camera Follow Target.prefab @@ -1,1185 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &109958 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 497084} - - component: {fileID: 11410988} - m_Layer: 0 - m_Name: Ray 9 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &497084 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109958} - m_LocalRotation: {x: -0.3535529, y: 0.35355347, z: -0.14644642, w: 0.8535536} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11410988 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 109958} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &112544 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 467240} - - component: {fileID: 11467820} - m_Layer: 0 - m_Name: Down - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &467240 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112544} - m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11467820 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 112544} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 2 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &121506 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 461314} - - component: {fileID: 11491204} - m_Layer: 0 - m_Name: Ray 10 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &461314 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 121506} - m_LocalRotation: {x: -0.38268292, y: 0, z: 0, w: 0.9238798} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11491204 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 121506} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &134770 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 405898} - - component: {fileID: 11465636} - m_Layer: 0 - m_Name: Ray 2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &405898 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134770} - m_LocalRotation: {x: 0, y: 1, z: 0, w: -0.00000016292068} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11465636 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 134770} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &140438 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 476970} - - component: {fileID: 11480012} - m_Layer: 0 - m_Name: Down Forward Right - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &476970 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140438} - m_LocalRotation: {x: 0.35355297, y: -0.35355344, z: -0.1464464, w: 0.85355365} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 13 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11480012 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 140438} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 5 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &148566 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 456120} - - component: {fileID: 11456762} - m_Layer: 0 - m_Name: Ray 3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &456120 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148566} - m_LocalRotation: {x: 0, y: 0.7071066, z: 0, w: -0.70710695} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11456762 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 148566} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &149280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 403102} - - component: {fileID: 11491162} - m_Layer: 0 - m_Name: Ray - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &403102 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149280} - 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_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11491162 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 149280} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &152168 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 428666} - - component: {fileID: 11410848} - m_Layer: 0 - m_Name: Ray 4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &428666 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152168} - m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11410848 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 152168} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &167088 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 439416} - - component: {fileID: 11471632} - m_Layer: 0 - m_Name: Ray 6 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &439416 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167088} - m_LocalRotation: {x: 0, y: 0.38268346, z: 0, w: 0.9238795} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11471632 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 167088} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &168060 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 462678} - - component: {fileID: 11443208} - m_Layer: 0 - m_Name: Ray 8 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &462678 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168060} - m_LocalRotation: {x: -0.3535529, y: -0.35355347, z: 0.14644642, w: 0.8535536} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11443208 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 168060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &171068 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 449576} - - component: {fileID: 11420432} - m_Layer: 0 - m_Name: Ray 7 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &449576 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171068} - m_LocalRotation: {x: 0, y: -0.38268346, z: 0, w: 0.9238795} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11420432 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 171068} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &173996 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 497124} - - component: {fileID: 11477234} - m_Layer: 0 - m_Name: Down Back - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &497124 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173996} - m_LocalRotation: {x: 0.35355297, y: 0.35355344, z: 0.1464464, w: 0.85355365} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 12 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11477234 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173996} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 5 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &174424 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 431162} - - component: {fileID: 11485136} - m_Layer: 0 - m_Name: WaypointSensor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &431162 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174424} - 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_Children: [] - m_Father: {fileID: 481132} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11485136 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 174424} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3fd1782782c33a144aa3b0d575bb80ea, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - DetectionMode: 0 - RequiresLineOfSight: 0 - BlocksLineOfSight: - serializedVersion: 2 - m_Bits: 0 - TestLOSTargetsOnly: 0 - NumberOfRays: 1 - MinimumVisibility: 0.5 - SensorRange: 200 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 2147483648 - SensorUpdateMode: 0 - CheckInterval: 1 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 ---- !u!1 &180422 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 434448} - - component: {fileID: 11419296} - - component: {fileID: 13552164} - - component: {fileID: 858816307} - m_Layer: 2 - m_Name: WaypointArrivalSensor - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &434448 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180422} - 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_Children: [] - m_Father: {fileID: 481132} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11419296 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180422} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e841c6eddfb006049bd02ce632bb1417, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - DetectionMode: 0 - RequiresLineOfSight: 0 - BlocksLineOfSight: - serializedVersion: 2 - m_Bits: 0 - TestLOSTargetsOnly: 0 - NumberOfRays: 1 - MinimumVisibility: 0.5 - LineOfSightUpdateMode: 0 - CheckLineOfSightInterval: 1 ---- !u!135 &13552164 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180422} - m_Material: {fileID: 0} - m_IsTrigger: 1 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 1.6922585 - m_Center: {x: 0, y: 0, z: 0} ---- !u!54 &858816307 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 180422} - serializedVersion: 2 - m_Mass: 1 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 1 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!1 &184346 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 498066} - - component: {fileID: 3194173746643593969} - m_Layer: 0 - m_Name: SteeringRig - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &498066 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184346} - 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_Children: - - {fileID: 403102} - - {fileID: 404114} - - {fileID: 405898} - - {fileID: 456120} - - {fileID: 428666} - - {fileID: 467240} - - {fileID: 439416} - - {fileID: 449576} - - {fileID: 462678} - - {fileID: 497084} - - {fileID: 461314} - - {fileID: 498480} - - {fileID: 497124} - - {fileID: 476970} - m_Father: {fileID: 481132} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &3194173746643593969 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184346} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9b2d1f7c80dcdd648b0afb4e5d33fa69, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - AvoidanceSensitivity: 1 - MaxAvoidanceLength: 2 - YAxis: 1 - RotateTowardsTarget: 1 - RB: {fileID: 5401098} - TurnForce: 3 - MoveForce: 35 - StrafeForce: 10 - TurnSpeed: 0 - MoveSpeed: 0 - StrafeSpeed: 0 - StoppingDistance: 1 - DestinationTransform: {fileID: 0} - FaceTowardsTransform: {fileID: 0} - m_MaintainHeight: 0 - minHeight: 1.5 - maxHeight: 2 - optimalHeight: 2 - m_RandomizeSpeed: 0 - m_Animator: {fileID: 0} - m_LegacyAnimation: {fileID: 0} - m_RandomizeX: 1 - m_RandomizeY: 1 - m_RandomizeZ: 1 - m_RandomizationFrequency: 3 ---- !u!1 &184980 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 498480} - - component: {fileID: 11446348} - m_Layer: 0 - m_Name: Down Back Right - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &498480 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184980} - m_LocalRotation: {x: 0.38268292, y: 0, z: 0, w: 0.9238798} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11446348 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 184980} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} - m_Name: - m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 5 - Radius: 0 - ObstructedByLayers: - serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] --- !u!1 &189694 GameObject: m_ObjectHideFlags: 0 @@ -1190,8 +10,9 @@ GameObject: m_Component: - component: {fileID: 481132} - component: {fileID: 5401098} - - component: {fileID: 1513489596} - component: {fileID: 1159833090} + - component: {fileID: 1513489596} + - component: {fileID: 1365091131743649090} m_Layer: 0 m_Name: Camera Follow Target m_TagString: Untagged @@ -1211,9 +32,6 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 3373821529879445102} - - {fileID: 498066} - - {fileID: 434448} - - {fileID: 431162} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -1233,29 +51,6 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 ---- !u!114 &1513489596 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 189694} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 2c3975f20feceb04caeef64f7f0f2af7, type: 3} - m_Name: - m_EditorClassIdentifier: - WaypointSensor: {fileID: 11485136} - WaypoinArrivalSensor: {fileID: 11419296} - strategy: 2 - randomness: 0.2 - waypointPrefab: {fileID: 6907383477543755845, guid: ad452806b554e9b4e942ccc6439b68d5, - type: 3} - Steering: {fileID: 3194173746643593969} - stuckDuration: 0.5 - stuckTolerance: 0.005 - m_TakePhotoOnArrival: 1 - m_RandomizeStartingPosition: 1 --- !u!135 &1159833090 SphereCollider: m_ObjectHideFlags: 0 @@ -1263,84 +58,67 @@ SphereCollider: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 189694} - m_Material: {fileID: 13400000, guid: 03c2be51a8473fe4a85e4aa5c31ee1ca, type: 2} + m_Material: {fileID: 0} m_IsTrigger: 0 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.05 m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &193910 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 404114} - - component: {fileID: 11434616} - m_Layer: 0 - m_Name: Ray 1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &404114 -Transform: +--- !u!114 &1513489596 +MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193910} - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071067} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 498066} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &11434616 + m_GameObject: {fileID: 189694} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2c3975f20feceb04caeef64f7f0f2af7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_waypointPrefab: {fileID: 6907383477543755845, guid: ad452806b554e9b4e942ccc6439b68d5, + type: 3} + m_sensorRange: 200 + m_detectsOnLayers: + serializedVersion: 2 + m_Bits: 1 + m_SelectionStrategy: 0 + m_SelectionRandomness: 0.2 + m_SteeringRig: {fileID: 1365091131743649090} + m_StuckDuration: 0.5 + m_StuckTolerance: 0.05 + m_TakePhotoOnArrival: 0 + m_RandomizeStartingPosition: 1 +--- !u!114 &1365091131743649090 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193910} + m_GameObject: {fileID: 189694} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4eef69e252fee6848bdd23e5429abac6, type: 3} + m_Script: {fileID: 11500000, guid: b4b518057b1f88040bff8e428a6b028d, type: 3} m_Name: m_EditorClassIdentifier: - IgnoreList: [] - EnableTagFilter: 0 - AllowedTags: [] - OnDetected: - m_PersistentCalls: - m_Calls: [] - OnLostDetection: - m_PersistentCalls: - m_Calls: [] - Length: 10 - Radius: 0 - ObstructedByLayers: + rigidbody: {fileID: 5401098} + m_ArrivalDistance: 1 + m_MaxTorque: 50 + m_MaxStrafeForce: 300 + m_MaxVerticalForce: 400 + m_MaxForwardForce: 800 + maxSpeed: 8 + m_MaxAvoidanceLength: 1.5 + m_AvoidanceLayers: serializedVersion: 2 - m_Bits: 1 - DetectsOnLayers: - serializedVersion: 2 - m_Bits: 17 - DetectionMode: 0 - Direction: {x: 0, y: 0, z: 1} - WorldSpace: 0 - SensorUpdateMode: 0 - InitialBufferSize: 20 - DynamicallyIncreaseBufferSize: 1 - OnObstruction: - m_PersistentCalls: - m_Calls: [] - OnClear: - m_PersistentCalls: - m_Calls: [] + m_Bits: 0 + m_MaintainHeight: 1 + m_MinHeight: 1.5 + m_MaxHeight: 10 + m_OptimalHeight: 2 + m_MaxClimbAngle: 35 + m_MaxDiveAngle: 75 + m_Animator: {fileID: 0} --- !u!1 &8301658394381504256 GameObject: m_ObjectHideFlags: 0 diff --git a/Prefabs/Large Creature Waypoint.prefab b/Prefabs/Large Creature Waypoint.prefab new file mode 100644 index 0000000..d769947 --- /dev/null +++ b/Prefabs/Large Creature Waypoint.prefab @@ -0,0 +1,145 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &146072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 434040} + - component: {fileID: 5192126769102148771} + - component: {fileID: 6907383477543755845} + m_Layer: 31 + m_Name: Large Creature Waypoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &434040 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146072} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.218, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4879797774331033280} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &5192126769102148771 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146072} + m_Material: {fileID: 0} + m_IsTrigger: 1 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.01 + m_Center: {x: 0, y: 0, z: 0} +--- !u!114 &6907383477543755845 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 146072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b1a3bf12463cfa542ae3f0b85a5baffc, type: 3} + m_Name: + m_EditorClassIdentifier: + ClearRadius: 3 + weight: 0.5 + reEnableWaitTime: 0 + NextWaypoint: {fileID: 0} +--- !u!1 &1072030564170204704 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4879797774331033280} + - component: {fileID: 4045462714422318277} + - component: {fileID: 3077099962748577212} + m_Layer: 31 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &4879797774331033280 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072030564170204704} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_Children: [] + m_Father: {fileID: 434040} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4045462714422318277 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072030564170204704} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3077099962748577212 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1072030564170204704} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + 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: 3 + 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} diff --git a/Prefabs/Waypoint with Floating Point Fix.prefab.meta b/Prefabs/Large Creature Waypoint.prefab.meta similarity index 78% rename from Prefabs/Waypoint with Floating Point Fix.prefab.meta rename to Prefabs/Large Creature Waypoint.prefab.meta index 4407f37..e22ccae 100644 --- a/Prefabs/Waypoint with Floating Point Fix.prefab.meta +++ b/Prefabs/Large Creature Waypoint.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: d3e55bc2543578442861c6802d15247b +guid: 4461efe13fc67904f8db2e5c8591aed0 timeCreated: 1504618869 licenseType: Store NativeFormatImporter: diff --git a/Prefabs/Waypoint Spawner.prefab b/Prefabs/Waypoint Spawner.prefab index 969c496..64373bf 100644 --- a/Prefabs/Waypoint Spawner.prefab +++ b/Prefabs/Waypoint Spawner.prefab @@ -43,14 +43,18 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1db34d609036b994ca87258eca785453, type: 3} m_Name: m_EditorClassIdentifier: - ToSpawn: {fileID: 146072, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - Number: 5 - SpawnInterval: 5 + ToSpawn: {fileID: 6907383477543755845, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} StartSpawnAmount: 2 + TotalNumber: 5 + SpawnInterval: 5 SizeX: 100 - SizeY: 10 SizeZ: 100 - ClearRadius: 1.8 + minHeight: 7 + maxHeight: 7 + AdjustToTerrainHeight: 1 + SpawnAboveWater: 1 ObstructingLayers: serializedVersion: 2 m_Bits: 1 + m_ShowAvailable: 0 + m_ShowUnavailable: 0 diff --git a/Prefabs/Waypoint with Floating Point Fix.prefab b/Prefabs/Waypoint with Floating Point Fix.prefab deleted file mode 100644 index 06960da..0000000 --- a/Prefabs/Waypoint with Floating Point Fix.prefab +++ /dev/null @@ -1,398 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &105448 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 440904} - - component: {fileID: 3349790} - - component: {fileID: 13604396} - - component: {fileID: 2380250} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &440904 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.44792253, y: 0.32641995, z: 0.44792253} - m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3349790 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!136 &13604396 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2380250 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 8caa672625832e74b8a4939c5f89ce08, 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - 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!1 &106212 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 460788} - m_Layer: 0 - m_Name: Mesh - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &460788 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106212} - 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_Children: - - {fileID: 440904} - - {fileID: 430804} - - {fileID: 423912} - m_Father: {fileID: 434040} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &146072 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 434040} - - component: {fileID: 5417428} - - component: {fileID: 5192126769102148771} - - component: {fileID: 6907383477543755845} - m_Layer: 31 - m_Name: Waypoint with Floating Point Fix - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &434040 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146072} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.218, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: - - {fileID: 460788} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!54 &5417428 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146072} - serializedVersion: 2 - m_Mass: 10 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 ---- !u!135 &5192126769102148771 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146072} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.01 - m_Center: {x: 0, y: 0, z: 0} ---- !u!114 &6907383477543755845 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146072} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b1a3bf12463cfa542ae3f0b85a5baffc, type: 3} - m_Name: - m_EditorClassIdentifier: - weight: 0.5 - reEnableWaitTime: 0 ---- !u!1 &173338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 423912} - - component: {fileID: 3344260} - - component: {fileID: 6520316} - - component: {fileID: 2354188} - m_Layer: 0 - m_Name: Cube 1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &423912 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.306, z: 0} - m_LocalScale: {x: 0.515383, y: 0.16288914, z: 0.515383} - m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3344260 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6520316 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2354188 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc4afe0f20d07414d97777b1b7daaa7e, 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - 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!1 &193702 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 430804} - - component: {fileID: 3361092} - - component: {fileID: 6583620} - - component: {fileID: 2347972} - m_Layer: 0 - m_Name: Cube - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &430804 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -0.349, z: 0} - m_LocalScale: {x: 0.515383, y: 0.17595918, z: 0.515383} - m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3361092 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6583620 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2347972 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc4afe0f20d07414d97777b1b7daaa7e, 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - 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} diff --git a/Prefabs/Waypoint.prefab b/Prefabs/Waypoint.prefab index 9d02004..904f7a1 100644 --- a/Prefabs/Waypoint.prefab +++ b/Prefabs/Waypoint.prefab @@ -1,134 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &105448 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 440904} - - component: {fileID: 3349790} - - component: {fileID: 13604396} - - component: {fileID: 2380250} - m_Layer: 0 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &440904 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 0.44792253, y: 0.32641995, z: 0.44792253} - m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3349790 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!136 &13604396 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - m_Radius: 0.5 - m_Height: 2 - m_Direction: 1 - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2380250 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 105448} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 8caa672625832e74b8a4939c5f89ce08, 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - 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!1 &106212 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 460788} - m_Layer: 0 - m_Name: Mesh - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!4 &460788 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 106212} - 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_Children: - - {fileID: 440904} - - {fileID: 430804} - - {fileID: 423912} - m_Father: {fileID: 434040} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &146072 GameObject: m_ObjectHideFlags: 0 @@ -138,7 +9,6 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 434040} - - component: {fileID: 5417428} - component: {fileID: 5192126769102148771} - component: {fileID: 6907383477543755845} m_Layer: 31 @@ -159,26 +29,10 @@ Transform: m_LocalPosition: {x: 0, y: 1.218, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 460788} + - {fileID: 4372954971884194727} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!54 &5417428 -Rigidbody: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 146072} - serializedVersion: 2 - m_Mass: 10 - m_Drag: 0 - m_AngularDrag: 0.05 - m_UseGravity: 0 - m_IsKinematic: 0 - m_Interpolate: 0 - m_Constraints: 0 - m_CollisionDetection: 0 --- !u!135 &5192126769102148771 SphereCollider: m_ObjectHideFlags: 0 @@ -187,7 +41,7 @@ SphereCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 146072} m_Material: {fileID: 0} - m_IsTrigger: 0 + m_IsTrigger: 1 m_Enabled: 1 serializedVersion: 2 m_Radius: 0.01 @@ -204,104 +58,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b1a3bf12463cfa542ae3f0b85a5baffc, type: 3} m_Name: m_EditorClassIdentifier: + ClearRadius: 1.8 weight: 0.5 reEnableWaitTime: 0 ---- !u!1 &173338 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 423912} - - component: {fileID: 3344260} - - component: {fileID: 6520316} - - component: {fileID: 2354188} - m_Layer: 0 - m_Name: Cube 1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &423912 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.306, z: 0} - m_LocalScale: {x: 0.515383, y: 0.16288914, z: 0.515383} - m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3344260 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6520316 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2354188 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 173338} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: fc4afe0f20d07414d97777b1b7daaa7e, 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: 1 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - 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!1 &193702 + NextWaypoint: {fileID: 0} +--- !u!1 &1081804780503400520 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -309,59 +70,45 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 430804} - - component: {fileID: 3361092} - - component: {fileID: 6583620} - - component: {fileID: 2347972} - m_Layer: 0 - m_Name: Cube + - component: {fileID: 4372954971884194727} + - component: {fileID: 5819990210521936850} + - component: {fileID: 351145139052512555} + m_Layer: 31 + m_Name: Cylinder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &430804 + m_IsActive: 0 +--- !u!4 &4372954971884194727 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} + m_GameObject: {fileID: 1081804780503400520} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: -0.349, z: 0} - m_LocalScale: {x: 0.515383, y: 0.17595918, z: 0.515383} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0.3, y: 0.3, z: 0.3} m_Children: [] - m_Father: {fileID: 460788} - m_RootOrder: 1 + m_Father: {fileID: 434040} + m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3361092 +--- !u!33 &5819990210521936850 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6583620 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 0 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2347972 + m_GameObject: {fileID: 1081804780503400520} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &351145139052512555 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 193702} + m_GameObject: {fileID: 1081804780503400520} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -371,10 +118,10 @@ MeshRenderer: m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 m_RayTraceProcedural: 0 - m_RenderingLayerMask: 257 + m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: fc4afe0f20d07414d97777b1b7daaa7e, type: 2} + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -383,7 +130,7 @@ MeshRenderer: m_LightProbeVolumeOverride: {fileID: 0} m_ScaleInLightmap: 1 m_ReceiveGI: 1 - m_PreserveUVs: 1 + m_PreserveUVs: 0 m_IgnoreNormalsForChartDetection: 0 m_ImportantGI: 0 m_StitchLightmapSeams: 1 diff --git a/Scenes/Mesh Scene.unity b/Scenes/Mesh Scene.unity index 01e4ee9..136cafb 100644 --- a/Scenes/Mesh Scene.unity +++ b/Scenes/Mesh Scene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -505,7 +505,8 @@ Transform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!4 &199054558 stripped Transform: - m_CorrespondingSourceObject: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + m_CorrespondingSourceObject: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} m_PrefabInstance: {fileID: 636334002} m_PrefabAsset: {fileID: 0} --- !u!1 &373465172 @@ -668,59 +669,73 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 1817917201698718570, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698718570, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_Name value: Waypoint Spawner objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalScale.y value: 1.5 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.y value: 5 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: SizeY value: 3 objectReference: {fileID: 0} @@ -828,59 +843,73 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_RootOrder value: 3 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.x value: 0.69257677 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.y value: 1.8 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.z value: 1.8762562 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.w value: -0.17588617 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.y value: 0.9844105 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.z value: -1e-45 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_Follow value: objectReference: {fileID: 1232492977} - - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LookAt value: objectReference: {fileID: 1232492977} - - target: {fileID: 7970667151623748437, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748437, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_Name value: Follow CM vcam1 objectReference: {fileID: 0} @@ -1076,7 +1105,8 @@ Transform: m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} --- !u!4 &1232492977 stripped Transform: - m_CorrespondingSourceObject: {fileID: 481132, guid: 66ad839bbf327b946b3ca0cbbd729738, type: 3} + m_CorrespondingSourceObject: {fileID: 481132, guid: 66ad839bbf327b946b3ca0cbbd729738, + type: 3} m_PrefabInstance: {fileID: 626561146} m_PrefabAsset: {fileID: 0} --- !u!1 &1270574473 @@ -1294,7 +1324,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} propertyPath: m_LocalPosition.y - value: 1.218 + value: 19 objectReference: {fileID: 0} - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} propertyPath: m_LocalPosition.z @@ -1473,7 +1503,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} propertyPath: m_LocalPosition.y - value: 1.218 + value: 17.21 objectReference: {fileID: 0} - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} propertyPath: m_LocalPosition.z diff --git a/Scenes/Terrain Scene.unity b/Scenes/Terrain Scene.unity index b1f4f1e..89ed5fc 100644 --- a/Scenes/Terrain Scene.unity +++ b/Scenes/Terrain Scene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -182,7 +182,8 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 66ad839bbf327b946b3ca0cbbd729738, type: 3} --- !u!4 &1516906 stripped Transform: - m_CorrespondingSourceObject: {fileID: 481132, guid: 66ad839bbf327b946b3ca0cbbd729738, type: 3} + m_CorrespondingSourceObject: {fileID: 481132, guid: 66ad839bbf327b946b3ca0cbbd729738, + type: 3} m_PrefabInstance: {fileID: 997132} m_PrefabAsset: {fileID: 0} --- !u!1 &202775237 @@ -277,7 +278,13 @@ MonoBehaviour: m_ShowCustomSorter: 0 breakBeforeColorGrading: 0 m_BeforeTransparentBundles: [] - m_BeforeStackBundles: [] + m_BeforeStackBundles: + - assemblyQualifiedName: IL3DN_Fog_PP, Assembly-CSharp, Version=1.0.0.0, Culture=neutral, + PublicKeyToken=null + - assemblyQualifiedName: Pinwheel.Poseidon.FX.PostProcessing.PUnderwater, Assembly-CSharp, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + - assemblyQualifiedName: Pinwheel.Poseidon.FX.PostProcessing.PWetLens, Assembly-CSharp, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null m_AfterStackBundles: [] --- !u!81 &202775240 AudioListener: @@ -371,59 +378,73 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.x value: 136.9 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.y value: 62.8 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalPosition.z value: 0.0000009536743 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.w value: 0.70710665 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.x value: 1e-45 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.y value: 0.707107 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalRotation.z value: -1e-45 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748435, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_Follow value: objectReference: {fileID: 1516906} - - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748436, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_LookAt value: objectReference: {fileID: 1516906} - - target: {fileID: 7970667151623748437, guid: 4157d46c891d60947a292698863e54df, type: 3} + - target: {fileID: 7970667151623748437, guid: 4157d46c891d60947a292698863e54df, + type: 3} propertyPath: m_Name value: Follow CM vcam1 objectReference: {fileID: 0} @@ -492,11 +513,13 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6907383477543755845, guid: 5b4c8307ce895cf43b4bfd9b34204148, type: 3} + - target: {fileID: 6907383477543755845, guid: 5b4c8307ce895cf43b4bfd9b34204148, + type: 3} propertyPath: weight value: 0.606 objectReference: {fileID: 0} - - target: {fileID: 6907383477543755845, guid: 5b4c8307ce895cf43b4bfd9b34204148, type: 3} + - target: {fileID: 6907383477543755845, guid: 5b4c8307ce895cf43b4bfd9b34204148, + type: 3} propertyPath: reEnableWaitTime value: 60 objectReference: {fileID: 0} @@ -598,7 +621,7 @@ Transform: - {fileID: 2135005361} - {fileID: 1886784008} m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &843506666 GameObject: @@ -638,7 +661,7 @@ Terrain: m_GameObject: {fileID: 843506666} m_Enabled: 1 serializedVersion: 6 - m_TerrainData: {fileID: 15600000, guid: cc9a6a0c5ae67d2449a640a92e8e268e, type: 2} + m_TerrainData: {fileID: 0} m_TreeDistance: 4019 m_TreeBillboardDistance: 1117 m_TreeCrossFadeLength: 200 @@ -674,65 +697,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1001 &892549802 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 7436454432037329914, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_Name - value: House 1 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_RootOrder - value: 4 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalPosition.x - value: 152.65 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalPosition.y - value: 61.27 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalPosition.z - value: -35.69 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalRotation.w - value: 0.97516584 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalRotation.y - value: -0.22147608 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -25.591 - objectReference: {fileID: 0} - - target: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 3587514a3d7225644867bd310508e1d6, type: 3} --- !u!1001 &986391264 PrefabInstance: m_ObjectHideFlags: 0 @@ -740,133 +706,83 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 1817917201698718570, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698718570, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_Name value: Waypoint Spawner objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.y value: 56.4 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 1817917201698967928, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: SizeX value: 500 objectReference: {fileID: 0} - - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: SizeY value: 5 objectReference: {fileID: 0} - - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} + - target: {fileID: 7629513432287551527, guid: 7b49dbdf54c68584c86d962e36d186ef, + type: 3} propertyPath: SizeZ value: 500 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 7b49dbdf54c68584c86d962e36d186ef, type: 3} ---- !u!1001 &1553094054 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 1915163266} - m_Modifications: - - target: {fileID: 146072, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_Name - value: Waypoint - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_RootOrder - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalPosition.y - value: 1.218 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 434040, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6907383477543755845, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: weight - value: 0.671 - objectReference: {fileID: 0} - - target: {fileID: 6907383477543755845, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} - propertyPath: reEnableWaitTime - value: 15 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ad452806b554e9b4e942ccc6439b68d5, type: 3} --- !u!1 &1886784007 GameObject: m_ObjectHideFlags: 0 @@ -988,13 +904,8 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} ---- !u!4 &1915163266 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7436454432037329918, guid: 3587514a3d7225644867bd310508e1d6, type: 3} - m_PrefabInstance: {fileID: 892549802} - m_PrefabAsset: {fileID: 0} --- !u!1 &2121742395 GameObject: m_ObjectHideFlags: 0 @@ -1014,7 +925,8 @@ GameObject: --- !u!4 &2135005361 Transform: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 434040, guid: 5b4c8307ce895cf43b4bfd9b34204148, type: 3} + m_CorrespondingSourceObject: {fileID: 434040, guid: 5b4c8307ce895cf43b4bfd9b34204148, + type: 3} m_PrefabInstance: {fileID: 625076020} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2121742395} diff --git a/Scripts/Editor/CameraSteeringRigEditor.cs b/Scripts/Editor/CameraSteeringRigEditor.cs deleted file mode 100644 index 1a5b103..0000000 --- a/Scripts/Editor/CameraSteeringRigEditor.cs +++ /dev/null @@ -1,163 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; -using SensorToolkit; -using UnityEditor; -using WizardsCode.AI; - -namespace WizardsCode.AIEditor -{ - [CustomEditor(typeof(CameraSteeringRig))] - public class CameraSteeringRigEditor : Editor - { - SerializedProperty ignoreList; - SerializedProperty avoidanceSensitivity; - SerializedProperty maxAvoidanceLength; - SerializedProperty yAxis; - SerializedProperty rotateTowardsTarget; - SerializedProperty rb; - SerializedProperty turnForce; - SerializedProperty moveForce; - SerializedProperty strafeForce; - SerializedProperty turnSpeed; - SerializedProperty moveSpeed; - SerializedProperty strafeSpeed; - SerializedProperty stoppingDistance; - SerializedProperty destinationTransform; - SerializedProperty faceTowardsTransform; - SerializedProperty maintainHeight; - SerializedProperty minHeight; - SerializedProperty maxHeight; - SerializedProperty optimalHeight; - SerializedProperty maxVerticalVelocity; - SerializedProperty maxForwardVelocity; - SerializedProperty animationController; - SerializedProperty randomizeX; - SerializedProperty randomizeY; - SerializedProperty randomizeZ; - SerializedProperty randomizationFrequency; - SerializedProperty randomizationFactor; - - CameraSteeringRig steeringRig; - - void OnEnable() - { - if (serializedObject == null) return; - - steeringRig = serializedObject.targetObject as CameraSteeringRig; - ignoreList = serializedObject.FindProperty("IgnoreList"); - avoidanceSensitivity = serializedObject.FindProperty("AvoidanceSensitivity"); - maxAvoidanceLength = serializedObject.FindProperty("MaxAvoidanceLength"); - yAxis = serializedObject.FindProperty("YAxis"); - rotateTowardsTarget = serializedObject.FindProperty("RotateTowardsTarget"); - rb = serializedObject.FindProperty("RB"); - turnForce = serializedObject.FindProperty("TurnForce"); - moveForce = serializedObject.FindProperty("MoveForce"); - strafeForce = serializedObject.FindProperty("StrafeForce"); - turnSpeed = serializedObject.FindProperty("TurnSpeed"); - moveSpeed = serializedObject.FindProperty("MoveSpeed"); - strafeSpeed = serializedObject.FindProperty("StrafeSpeed"); - stoppingDistance = serializedObject.FindProperty("StoppingDistance"); - destinationTransform = serializedObject.FindProperty("DestinationTransform"); - faceTowardsTransform = serializedObject.FindProperty("FaceTowardsTransform"); - maintainHeight = serializedObject.FindProperty("m_MaintainHeight"); - minHeight = serializedObject.FindProperty("minHeight"); - maxHeight = serializedObject.FindProperty("maxHeight"); - optimalHeight = serializedObject.FindProperty("optimalHeight"); - animationController = serializedObject.FindProperty("m_Animator"); - maxVerticalVelocity = serializedObject.FindProperty("m_MaxVerticalVelocity"); - maxForwardVelocity = serializedObject.FindProperty("m_MaxForwardVelocity"); - randomizeX = serializedObject.FindProperty("m_RandomizeX"); - randomizeY = serializedObject.FindProperty("m_RandomizeY"); - randomizeZ = serializedObject.FindProperty("m_RandomizeZ"); - randomizationFrequency = serializedObject.FindProperty("m_RandomizationFrequency"); - randomizationFactor = serializedObject.FindProperty("m_RandomizationFactor"); - } - - public override void OnInspectorGUI() - { - serializedObject.Update(); - - EditorGUILayout.PropertyField(ignoreList, true); - EditorGUILayout.PropertyField(avoidanceSensitivity); - EditorGUILayout.PropertyField(maxAvoidanceLength); - EditorGUILayout.PropertyField(yAxis); - EditorGUILayout.PropertyField(rotateTowardsTarget); - EditorGUILayout.PropertyField(rb); - if (rb.objectReferenceValue != null) - { - if ((rb.objectReferenceValue as Rigidbody).isKinematic) - { - EditorGUILayout.PropertyField(turnSpeed); - EditorGUILayout.PropertyField(moveSpeed); - EditorGUILayout.PropertyField(strafeSpeed); - } - else - { - EditorGUILayout.PropertyField(turnForce); - EditorGUILayout.PropertyField(moveForce); - EditorGUILayout.PropertyField(strafeForce); - } - EditorGUILayout.PropertyField(stoppingDistance); - EditorGUILayout.PropertyField(destinationTransform); - EditorGUILayout.PropertyField(faceTowardsTransform); - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Flight Randomization", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(randomizeX); - EditorGUILayout.PropertyField(randomizeY); - EditorGUILayout.PropertyField(randomizeZ); - if (randomizeX.boolValue || randomizeY.boolValue || randomizeZ.boolValue) - { - EditorGUILayout.PropertyField(randomizationFrequency); - EditorGUILayout.PropertyField(randomizationFactor); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Animation", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(animationController); - if (animationController.objectReferenceValue != null) - { - EditorGUILayout.PropertyField(maxVerticalVelocity); - EditorGUILayout.PropertyField(maxForwardVelocity); - } - - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Height Management", EditorStyles.boldLabel); - EditorGUILayout.PropertyField(maintainHeight); - if (maintainHeight.boolValue) { - EditorGUILayout.PropertyField(minHeight); - EditorGUILayout.PropertyField(maxHeight); - EditorGUILayout.PropertyField(optimalHeight); - } - } - - displayErrors(); - - serializedObject.ApplyModifiedProperties(); - } - - void displayErrors() - { - EditorGUILayout.Space(); - var raySensors = steeringRig.GetComponentsInChildren(); - - if (raySensors.Length == 0) - { - EditorGUILayout.HelpBox("Steering Rig looks for child Ray Sensors to calculate avoidance vectors, you should add some.", MessageType.Warning); - } - else - { - for (int i = 0; i < raySensors.Length; i++) - { - if (raySensors[i].IgnoreList != null && raySensors[i].IgnoreList.Count > 0 && raySensors[i].IgnoreList != steeringRig.IgnoreList) - { - EditorGUILayout.HelpBox("One or more of the steering ray sensors has objects assigned to its IgnoreList parameter. " - + "These will be overwritten by the steering rigs IgnoreList.", MessageType.Warning); - break; - } - } - } - } - } -} diff --git a/Scripts/Editor/wizardscode.ai.explorer.editor.asmdef b/Scripts/Editor/wizardscode.ai.explorer.editor.asmdef index 6278f64..b460ca2 100644 --- a/Scripts/Editor/wizardscode.ai.explorer.editor.asmdef +++ b/Scripts/Editor/wizardscode.ai.explorer.editor.asmdef @@ -3,8 +3,7 @@ "rootNamespace": "", "references": [ "wizardscode.ai.explorer", - "Cinemachine", - "microsmo.sensortoolkit" + "Cinemachine" ], "includePlatforms": [ "Editor" diff --git a/Scripts/Runtime/BoxAreaSpawner.cs b/Scripts/Runtime/BoxAreaSpawner.cs index db4129f..2758b49 100644 --- a/Scripts/Runtime/BoxAreaSpawner.cs +++ b/Scripts/Runtime/BoxAreaSpawner.cs @@ -4,13 +4,15 @@ using Random = UnityEngine.Random; using System.Linq; using UnityEngine.Serialization; +using WizardsCode.AI; namespace WizardsCode.Spawning { public class BoxAreaSpawner : MonoBehaviour { + //FIXME: generalize this so the spawner can be used for other items, not just WayPoints [SerializeField, Tooltip("The item we want to spawn using this spawner.")] - public GameObject ToSpawn; + public WayPoint ToSpawn; [SerializeField, Tooltip("The number of items to spawn at start.")] public int StartSpawnAmount; [SerializeField, Tooltip("The total number of items to have spawned. If an of the spawned items are destroyed then new ones will be spawned.")] @@ -29,12 +31,12 @@ public class BoxAreaSpawner : MonoBehaviour public float maxHeight = 7; [Header("Positioning")] - [SerializeField, Tooltip("If true then items spawned by this spawner will have their height adjusted to be within the mx height of the terrain height at the spawn coordinates.")] - public bool AdjustToTerrainHeight = true; - [SerializeField, Tooltip("If true then items spawned by this spawner will have their height adjusted to be within the mx height of the water surface if appropriate at the spawn coordinates. This setting overrides the AdjustToTerrainHeight where approrpiate, that is if this is true then the spawn point will be above water regardless of the size height of the terrain and the AsjustToTerrainHeight setting.")] - public bool SpawnAboveWater = true; - [SerializeField, Tooltip("The radiues that will be tested for obstructions. If an obstruction is found within this radius then a new spawn point will be generated.")] - public float ClearRadius = 1.8f; + [SerializeField, Tooltip("If true then items spawned by this spawner will have their height adjusted to be under the max height above the terrain or mesh objects at the coordinates.")] + [FormerlySerializedAs("AdjustToTerrainHeight")] + public bool AdjustHeight = true; + [SerializeField, Tooltip("Set to true if you want to allow spawn points below water. If false then items spawned by this spawner will have their height adjusted to be under the max height of the water surface if appropriate at the spawn coordinates. This setting overrides the AdjustToTerrainHeight where approrpiate, that is if this is false then the spawn point will be above water regardless of the size height of the terrain and the AsjustToTerrainHeight setting.")] + [FormerlySerializedAs("SpawnAboveWater")] // changed 1/29 + public bool SpawnBelowWater = false; [SerializeField, Tooltip("The layers to look for obsructions when spawning.")] public LayerMask ObstructingLayers; @@ -46,6 +48,7 @@ public class BoxAreaSpawner : MonoBehaviour float spawnCountdown; GameObject[] spawned; + private int instanceCount; void Awake() { @@ -62,7 +65,18 @@ void Start() void OnEnable() { - StartCoroutine(SpawnRoutine()); + if (Application.isPlaying) + { + StartCoroutine(SpawnRoutine()); + } + } + + private void OnDisable() + { + if (Application.isPlaying) + { + StopAllCoroutines(); + } } IEnumerator SpawnRoutine() @@ -96,6 +110,10 @@ void Spawn() spawnCountdown = SpawnInterval; var nextSlot = nextAvailableSlot; if (nextSlot == -1) return; // No spawn slots available + + //OPTIMIZATION: Use a pool + WayPoint go = Instantiate(ToSpawn); + go.name += instanceCount++; int nTrys = 0; Vector3 pos; @@ -107,96 +125,101 @@ void Spawn() Debug.LogWarning("Failed to find spawn location after 10 tries, aborting.", gameObject); return; } - pos = ChooseLocation(); - } while (LocationIsObstructed(pos)); + pos = ChooseLocation(go); + } while (LocationIsObstructed(pos, go)); - var newInst = Instantiate(ToSpawn, pos, transform.rotation) as GameObject; - newInst.transform.SetParent(transform.parent); - spawned[nextSlot] = newInst; + go.transform.SetPositionAndRotation(pos, transform.rotation); + go.transform.SetParent(transform.parent); + spawned[nextSlot] = go.gameObject; } - Vector3 ChooseLocation() + /// + /// Shoose a suitable location for an object to spawn. + /// + /// + /// + Vector3 ChooseLocation(WayPoint go) { Vector3 dimensions = new Vector3(SizeX / 2f, maxHeight - minHeight, SizeZ / 2f); - Vector3 randNormalizedVector = new Vector3(Random.Range(-1f, 1f), Random.Range(-1f, 1f), Random.Range(-1f, 1f)); + Vector3 randNormalizedVector = new Vector3(Random.Range(-1f, 1f), Random.Range(0, 1f), Random.Range(-1f, 1f)); Vector3 pos = Vector3.Scale(dimensions, randNormalizedVector) + transform.position; pos.y += minHeight; - pos = GetHeightAdjusted(pos); + pos = GetHeightAdjusted(pos, go); return pos; } /// - /// Adjust the height of a position in the terrain to allow for any obstructions on the terrain. + /// Adjust the height of a position in the terrain or colliders below to allow for any obstructions on the terrain. /// - /// + /// The approximate position the object should be placed + /// The game object to place at the position /// - private Vector3 GetHeightAdjusted(Vector3 pos) + private Vector3 GetHeightAdjusted(Vector3 pos, WayPoint go) { - if (!AdjustToTerrainHeight && !SpawnAboveWater) return pos; - - float clearance = (ClearRadius * 1.05f); + if (!AdjustHeight && SpawnBelowWater) return pos; - if (AdjustToTerrainHeight) + float clearance; + if (go == null) { - Terrain terrain = null; - if (Terrain.activeTerrains.Length == 1) - { - terrain = Terrain.activeTerrain; - } - else - { - terrain = Terrain.activeTerrains.OrderBy(x => - { - Vector3 terrainPosition = x.transform.position; - Vector3 terrainSize = x.terrainData.size * 0.5f; - Vector3 terrainCenter = new Vector3(terrainPosition.x + terrainSize.x, terrainPosition.y, terrainPosition.z + terrainSize.z); - return Vector3.SqrMagnitude(terrainCenter - pos); - }).First(); - } + clearance = 0.2f; + } + else + { + clearance = (go.ClearRadius * 1.05f); + } - if (terrain != null) + RaycastHit hit; + float height = 0; + bool hasHit = false; + + while (!hasHit) + { + hasHit = Physics.Raycast(pos, Vector3.down, out hit, Mathf.Infinity); + if (hasHit) { - float terrainHeight = terrain.SampleHeight(pos); + height = hit.distance; - if (pos.y < terrainHeight + clearance) + if (AdjustHeight) { - pos.y = terrain.transform.position.y + terrainHeight + clearance; - } else if (pos.y - terrainHeight > maxHeight) + if (height + clearance < minHeight) + { + pos.y = hit.point.y + minHeight + clearance; + } + else if (height + clearance > maxHeight) + { + pos.y = hit.point.y + maxHeight - clearance; + } + } + + if (!SpawnBelowWater) { - pos.y = terrain.transform.position.y + Random.Range(terrainHeight + clearance, terrainHeight + maxHeight); + float waterHeight = hit.distance; + + if (pos.y < waterHeight + clearance) + { + pos.y = waterHeight + clearance; + } + else if (pos.y - waterHeight > maxHeight) + { + pos.y = waterHeight + Random.Range(clearance, maxHeight); + } } } else { - Debug.LogError($"No terrain found for {pos} while AdjustToTerrainheight is true."); - } - } - - if (SpawnAboveWater) - { - RaycastHit hit; - if (Physics.Raycast(pos, Vector3.up, out hit, Mathf.Infinity)) - { - float waterHeight = hit.distance; - - if (pos.y < waterHeight + clearance) - { - pos.y = waterHeight + clearance; - } else if (pos.y - waterHeight > maxHeight) - { - pos.y = waterHeight + Random.Range(clearance, maxHeight); - } + Debug.LogWarning($"{name} has `AdjustHeight` enabled but there is no raycast hit below {pos}. Trying again 10 meters higher."); + pos.y += 10; } } return pos; } - bool LocationIsObstructed(Vector3 location) + bool LocationIsObstructed(Vector3 location, WayPoint go) { - return Physics.CheckSphere(location, ClearRadius, ObstructingLayers); + return Physics.CheckSphere(location, go.ClearRadius, ObstructingLayers); } public void OnDrawGizmosSelected() @@ -211,10 +234,13 @@ public void OnDrawGizmosSelected() // Red sphere marking the center of the box Gizmos.color = Color.red; - Gizmos.DrawSphere(GetHeightAdjusted(transform.position), Mathf.Max(0.2f, ClearRadius)); + Gizmos.DrawSphere(GetHeightAdjusted(transform.position, null), Mathf.Max(0.2f, 0.2f)); if (m_ShowAvailable || m_ShowUnavailable) { + //OPTIMIZATION: Use a cached sample object (See start of method as well) + WayPoint go = Instantiate(ToSpawn); + float depth = SizeX / 2; float xInterval = Mathf.Max(0.3f, SizeX / 20); float height = maxHeight / 2; @@ -230,13 +256,13 @@ public void OnDrawGizmosSelected() { { Vector3 pos = transform.position + new Vector3(-width + x, -height + y, -depth + z); - pos = GetHeightAdjusted(pos); - if (m_ShowAvailable && !LocationIsObstructed(pos)) + pos = GetHeightAdjusted(pos, go); + if (m_ShowAvailable && !LocationIsObstructed(pos, go)) { Gizmos.color = Color.green; Gizmos.DrawSphere(pos, 0.2f); } - else if (m_ShowUnavailable && LocationIsObstructed(pos)) + else if (m_ShowUnavailable && LocationIsObstructed(pos, go)) { Gizmos.color = Color.red; Gizmos.DrawSphere(pos, 0.2f); @@ -245,6 +271,9 @@ public void OnDrawGizmosSelected() } } } + + //OPTIMIZATION: Use a cached sample object (See start of method as well) + DestroyImmediate(go); } } } diff --git a/Scripts/Runtime/CameraSteeringRig.cs b/Scripts/Runtime/CameraSteeringRig.cs deleted file mode 100644 index 6a95293..0000000 --- a/Scripts/Runtime/CameraSteeringRig.cs +++ /dev/null @@ -1,220 +0,0 @@ -using UnityEngine; -using System.Collections; -using System.Collections.Generic; -using SensorToolkit; - -namespace WizardsCode.AI -{ - /// - /// A steering rig designed to drive a motion for a camera or a camera follow target. - /// - public class CameraSteeringRig : SteeringRig - { - [SerializeField, Tooltip("Try to keep the camera within a certain height range (true) or allow any height (false)." + - " If this is true the following settings will confine the height.")] - bool m_MaintainHeight = true; - [SerializeField, Tooltip("The minimum height above the ground or nearest obstacle that this rig" + - " should be. This is used as a validation check to ensure the object is not going below" + - " the terrain or through a mesh obstacles in the scene.")] - float minHeight = 1.5f; - [SerializeField, Tooltip("The maximum height above the ground or nearest obstacle that this rig" + - " should be. This is used as a validation check to ensure the object is not going too" + - " far above the terrain or mesh obstacles in the scene. The camera may go above this height" + - " but if it does it will have forces placed upon it to move down.")] - float maxHeight = 10f; - [SerializeField, Tooltip("The optimal height above the ground or nearest obstacle that this rig" + - " should be. The camera is allowed to move from this height but it will recieve gentle forces" + - " encourage it to return to this height.")] - float optimalHeight = 2f; - - [SerializeField, Tooltip("The maximum vertical velocity this object is expected to reach. This is used to normalize the animator parameters.")] - float m_MaxVerticalVelocity = 6; - [SerializeField, Tooltip("The maximum vertical velocity this object is expected to reach. This is used to normalize the animator parameters.")] - float m_MaxForwardVelocity = 20; - - [SerializeField, Tooltip("The animation controller for updating speed accordingly.")] - private Animator m_Animator; - - [SerializeField, Tooltip("Should forces be applied randomly in the x direction.")] - private bool m_RandomizeX = true; - [SerializeField, Tooltip("Should forces be applied randomly in the y direction.")] - private bool m_RandomizeY = true; - [SerializeField, Tooltip("Should forces be applied randomly in the z direction. Since Z is (usually) the forward direction the speed of the animator will also be modified according to this value.")] - private bool m_RandomizeZ = true; - [SerializeField, Tooltip("Frequency of randomization force change in seconds. Each time the randomization force is changed it will be in the opposite direction to the last change, thus the change will not often push the object too far off course.")] - public float m_RandomizationFrequency = 3; - [SerializeField, Tooltip("The amount of randomization in each direction. The force in each direction will be adjusted up or down by this % amount.")] - [Range(0, 1f)] - float m_RandomizationFactor = 0.1f; - - private float timeOFRandomization; - private float speedVariation; - private float originalMoveForce; - private float targetMoveForce; - private float originalSpeed; - private Vector3 targetRandomizationForce; - - private void Start() - { - originalMoveForce = MoveForce; - - if (m_Animator) - { - originalSpeed = m_Animator.speed; - } - } - - /// - /// FIXME: This requires that the `SteeringRig.FixedUpdate` method is marked `protected virtual` which it is not out of the box. - /// I've made a request to do this at https://forum.unity.com/threads/released-sensor-toolkit.468255/ - /// but at the time of writing you will need to make this edit yourself. - /// - protected override void FixedUpdate() - { - base.FixedUpdate(); - - Vector3 additionalForce = MaintainHeight(); - - additionalForce += ApplyRandomizationForce(); - - RB.AddForce(additionalForce); - - SetAnimationParameters(); - } - - void SetAnimationParameters() - { - // TODO:Allow animations to be disabled - if (m_Animator) - { - Vector3 velocity = RB.transform.InverseTransformDirection(RB.velocity); - - //TODO: Use Hash not string - m_Animator.SetFloat("angularVelocity", RB.angularVelocity.y); - - if (velocity.y > 0) - { - m_Animator.SetFloat("verticalVelocity", Mathf.Clamp01(velocity.y / m_MaxVerticalVelocity)); - } - else - { - m_Animator.SetFloat("verticalVelocity", -Mathf.Clamp01(-velocity.y / m_MaxVerticalVelocity)); - } - if (velocity.z > 0) - { - m_Animator.SetFloat("forwardVelocity", Mathf.Clamp01(velocity.z / m_MaxForwardVelocity)); - } - else - { - m_Animator.SetFloat("forwardVelocity", -Mathf.Clamp01(-velocity.z / m_MaxForwardVelocity)); - } - } - } - - /// - /// Calculate a random force that will be added to the object to add variation to the flight. - /// - private Vector3 ApplyRandomizationForce() - { - Vector3 randomForce = Vector3.zero; - if (!(m_RandomizeX || m_RandomizeX || m_RandomizeX)) return randomForce; - - if (timeOFRandomization > Time.timeSinceLevelLoad) - { - randomForce = Vector3.Slerp(Vector3.zero, targetRandomizationForce, (Time.timeSinceLevelLoad - timeOFRandomization) / m_RandomizationFrequency); - return randomForce; - } - - timeOFRandomization = Time.timeSinceLevelLoad + m_RandomizationFrequency; - - float targetX = 0; - float targetY = 0; - float targetZ = 0; - if (m_RandomizeX) - { - if (Random.value < 0.7) - { - targetX = StrafeForce * (1 + Random.Range(-m_RandomizationFactor, m_RandomizationFactor)); - } - } - if (m_RandomizeY) - { - if (Random.value < 0.7) - { - targetY = MoveForce * (1 + Random.Range(-m_RandomizationFactor, m_RandomizationFactor)); - } - } - if (m_RandomizeZ) - { - if (Random.value < 0.7) - { - targetZ = 1 + Random.Range(-m_RandomizationFactor, m_RandomizationFactor); - - if (m_Animator) - { - m_Animator.speed = originalSpeed * targetZ; - } - - targetZ *= MoveForce; - } - } - - targetRandomizationForce = new Vector3(targetX, targetY, targetZ); - - return Vector3.Slerp(Vector3.zero, targetRandomizationForce, (Time.timeSinceLevelLoad - timeOFRandomization) / m_RandomizationFrequency); - } - - - /// - /// Get a force that is used to adjuste the height of the body based on the Height Management settings. - /// - /// A force to be applied to the body. - private Vector3 MaintainHeight() - { - Vector3 heightAdjustmentForce = Vector3.zero; - if (!m_MaintainHeight) return heightAdjustmentForce; - - RaycastHit hit; - float height = 0; - if (Physics.Raycast(RB.transform.position, Vector3.down, out hit, Mathf.Infinity)) - { - height = hit.distance; - } - else - { - Debug.LogWarning($"{name} has `Maintain Height` enabled but therre is no raycast hit below it. Relying on Steering Behaviours to keep things in order."); - return heightAdjustmentForce; - } - - /* What was this for? doesn't really do anything useful that I can think of. Commented out to see what it does... 1/24/22 - float waypointHeight = Destination.y - height; - - if (waypointHeight > optimalHeight || waypointHeight < optimalHeight) return; - */ - if (height > optimalHeight) - { - if (height > maxHeight) - { - heightAdjustmentForce = -RB.transform.up * Mathf.Lerp(0, MoveForce, Mathf.Clamp01((height - maxHeight) / maxHeight)); - } - else - { - heightAdjustmentForce = -RB.transform.up * Mathf.Lerp(0, MoveForce, Mathf.Clamp01((height - optimalHeight) / optimalHeight)); - } - } - else if (height < optimalHeight) - { - if (height < minHeight) - { - heightAdjustmentForce = RB.transform.up * Mathf.Lerp(0, MoveForce * 3, Mathf.Clamp01((minHeight - height) / minHeight)); - } - else - { - heightAdjustmentForce = RB.transform.up * Mathf.Lerp(0, MoveForce * 2, Mathf.Clamp01((optimalHeight - height) / optimalHeight)); - } - } - - return heightAdjustmentForce; - } - } -} diff --git a/Scripts/Runtime/CameraSteeringRig.cs.meta b/Scripts/Runtime/CameraSteeringRig.cs.meta deleted file mode 100644 index 9a7b702..0000000 --- a/Scripts/Runtime/CameraSteeringRig.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 9b2d1f7c80dcdd648b0afb4e5d33fa69 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Scripts/Runtime/MoveToWaypoint.cs b/Scripts/Runtime/MoveToWaypoint.cs index 66cfeda..202e772 100644 --- a/Scripts/Runtime/MoveToWaypoint.cs +++ b/Scripts/Runtime/MoveToWaypoint.cs @@ -1,6 +1,5 @@ using UnityEngine; -using SensorToolkit; -using UnityEngine.Serialization; +using System.Collections.Generic; #if PHOTOSESSION_PRESENT using Rowlan.PhotoSession; #endif @@ -13,36 +12,38 @@ public class MoveToWaypoint : MonoBehaviour enum SelectionStrategy { nearest, furthest, random }; [Header("Sensors")] - [SerializeField, Tooltip("The sensor for detecting waypoints.")] - Sensor WaypointSensor; - [SerializeField, Tooltip("The sensor for detecting when the target waypoint has been reached.")] - Sensor WaypoinArrivalSensor; - [SerializeField, Tooltip("The waypoint prefab to use when getting the object to move out of a stuck state.")] - WayPoint waypointPrefab; + [SerializeField, Tooltip("The range of the waypoint sensor this body has.")] + float m_sensorRange = 200; + [SerializeField, Tooltip("The layers on which waypoints will be detected by this body")] + LayerMask m_detectsOnLayers = 1 << 0; // default [SerializeField, Tooltip("Strategy for selecting the next waypoint when one is not currently selected.")] - SelectionStrategy strategy = SelectionStrategy.nearest; + SelectionStrategy m_SelectionStrategy = SelectionStrategy.nearest; [SerializeField, Tooltip("Randomness in the selection of the next waypoint. The higher this value the more randomness there will be."), Range(0f, 1f)] - float randomness = 0.2f; - [SerializeField, Tooltip("The radius that is used for the turning circle of the body. 0 means the body can turn on the spot. Note that a turning radius that is too close to the Waypoint Arrival sensor range will likely cause problems.")] - [Range(0f, 100f)] - float turningRadius = 15; + float m_SelectionRandomness = 0.2f; [Header("Steering")] [SerializeField, Tooltip("The rig for steering towards the currently selected waypoint.")] - [FormerlySerializedAs("Steering")] // changed 1/23/22 - SteeringRig SteeringRig; + FlyingSteeringRig m_SteeringRig; [SerializeField, Tooltip("How long should the object be in the same place, if it has an existing waypoint destination, before it is assumed to be stuck. When stuck a new waypoint will be created a few meters away roughly behind the current position.")] - float stuckDuration = 0.5f; + float m_StuckDuration = 0.5f; [SerializeField, Tooltip("The tolerance to use when deciding if the item is stuck. If the object moves more than this distance in any direction in the `stuckDuration` then it will be considered to be moving.")] - float stuckTolerance = 0.05f; - [SerializeField, Tooltip("If set to true the sensor rig will be set to rotate towards the selected target waypoint.")] - bool faceTowardsTarget = false; + float m_StuckTolerance = 0.05f; + [SerializeField, Tooltip("The waypoint prefab to use when getting the object to move out of a stuck state.")] + WayPoint m_waypointPrefab; [Header("Arrival Behaviours")] [SerializeField, Tooltip("If you have [Photo Session](https://github.com/TheWizardsCode/PhotoSession) and this setting is true then a new photo will be taken each time the target reaches a waypoint. " + "Note if this is set to true but the Phot Session code is not present a warning will be displayed in the console.")] bool m_TakePhotoOnArrival = true; + [Header("Auto Enable/Disable")] + [SerializeField, Tooltip("If true this object will be enabled and disabled according to the paramters set below.")] + bool m_AutoDisable = true; + [SerializeField, Tooltip("If the object is at least this distance from the maincamera the object will be disabled.")] + int sqrDisableDistance = 1000; + [SerializeField, Tooltip("How frequently, in seconds, should this distance be checked?")] + float m_EnabledCheckInterval = 2.0f; + [Header("Configuration")] [SerializeField, Tooltip("If true the body will select a random waypoint as its starting position. " + "However, these waypoints must be present in the scene on start, spawned waypoints will not be considered. " + @@ -54,6 +55,11 @@ enum SelectionStrategy { nearest, furthest, random }; Vector3 oldPosition = Vector3.zero; float timeToStuck; float sqrStuckTolerance; + private Transform cameraTransform; + List m_DetectedWayPoints = new List(); + + private WayPoint nextWaypoint; + private WayPoint lastWaypoint; #if PHOTOSESSION_PRESENT PhotoSession photoSession; #endif @@ -62,10 +68,10 @@ private void Start() { if (m_RandomizeStartingPosition) { - WaypointSensor.Pulse(); - if (WaypointSensor.DetectedObjects.Count > 0) + Scan(); + if (m_DetectedWayPoints.Count > 0) { - WayPoint start = WaypointSensor.DetectedObjects[Random.Range(0, WaypointSensor.DetectedObjects.Count)].GetComponent(); + WayPoint start = m_DetectedWayPoints[Random.Range(0, m_DetectedWayPoints.Count)].GetComponent(); if (start) { transform.position = start.transform.position; @@ -74,17 +80,46 @@ private void Start() } } - timeToStuck = stuckDuration; - sqrStuckTolerance = stuckTolerance * stuckTolerance; + timeToStuck = m_StuckDuration; + sqrStuckTolerance = m_StuckTolerance * m_StuckTolerance; + + if (m_AutoDisable) + { + cameraTransform = Camera.main.transform; + if (cameraTransform == null) { + Debug.LogError($"{name} is set to auto disable but no MainCamera is available in the scene."); + } + + sqrDisableDistance = sqrDisableDistance * sqrDisableDistance; + + InvokeRepeating("CheckEnableDisable", Random.value * m_EnabledCheckInterval, m_EnabledCheckInterval); + CheckEnableDisable(); + } #if PHOTOSESSION_PRESENT photoSession = GameObject.FindObjectOfType(); #endif } - private WayPoint nextWaypoint; - private WayPoint lastWaypoint; + private void OnEnable() + { + timeToStuck = m_StuckDuration; + } + void CheckEnableDisable() + { + if (gameObject.activeInHierarchy) { + if ((transform.position - cameraTransform.position).sqrMagnitude >= sqrDisableDistance) + { + gameObject.SetActive(false); + } + } + else if ((transform.position - cameraTransform.position).sqrMagnitude < sqrDisableDistance) + { + gameObject.SetActive(true); + } + } + WayPoint currentWaypoint { get @@ -97,17 +132,9 @@ WayPoint currentWaypoint if (m_currentWaypoint != value) { m_currentWaypoint = value; - if (m_currentWaypoint != null) + if (currentWaypoint != null && m_SteeringRig != null) { - SteeringRig.IgnoreList.Clear(); - SteeringRig.IgnoreList.Add(m_currentWaypoint.gameObject); - SteeringRig.IgnoreList.Add(gameObject); - SteeringRig.DestinationTransform = m_currentWaypoint.transform; - - if (faceTowardsTarget) - { - SteeringRig.FaceTowardsTransform = m_currentWaypoint.transform; - } + m_SteeringRig.destination = currentWaypoint.transform; } } } @@ -117,42 +144,71 @@ bool IsStuck { get { + if (!m_SteeringRig.isFlying) return false; + if (m_SteeringRig.isIdle) return false; + if (Vector3.SqrMagnitude(oldPosition - transform.position) < sqrStuckTolerance) { timeToStuck -= Time.deltaTime; - } else + } + else { oldPosition = transform.position; - timeToStuck = stuckDuration; + timeToStuck = m_StuckDuration; } return timeToStuck <= 0; } } + /// + /// Scan the sensor area for Waypoints. + /// + void Scan() + { + //Optimization: Only scan after a period of time has elapsed since the last scan + //Optimization: Scan close by more frequently than at the full range + WayPoint waypoint; + m_DetectedWayPoints.Clear(); + //Optimization: use NonAlloc and manually managed cache size.s + Collider[] colliders = Physics.OverlapSphere(transform.position, m_sensorRange, m_detectsOnLayers, QueryTriggerInteraction.Collide); + for (int i = 0; i < colliders.Length; i++) + { + waypoint = colliders[i].GetComponent(); + if (waypoint) + { + m_DetectedWayPoints.Add(waypoint); + } + } + } + void Update() { if (currentWaypoint && IsStuck) { OnWaypointArrival(); - Vector3 pos = -transform.forward * Random.Range(SteeringRig.StoppingDistance * 2.5f, SteeringRig.StoppingDistance * 3.5f); - pos += transform.right * Random.Range(-0.5f, -0.5f); - pos += transform.up * Random.Range(0.5f, 1f); - GameObject go = Instantiate(waypointPrefab.gameObject, transform.position + pos, Quaternion.identity); + Vector3 pos = -transform.forward * Random.Range(m_waypointPrefab.ClearRadius * 3, m_waypointPrefab.ClearRadius * 4); + pos += transform.right * Random.Range(-m_waypointPrefab.ClearRadius / 2, -m_waypointPrefab.ClearRadius); + pos += transform.up * Random.Range(-m_waypointPrefab.ClearRadius / 2, -m_waypointPrefab.ClearRadius); + pos.y += 10; // ensuring we are above the terrain + pos.y = m_SteeringRig.GetObstructionHeight(pos) + m_waypointPrefab.ClearRadius; + + GameObject go = Instantiate(m_waypointPrefab.gameObject, transform.position + pos, Quaternion.identity); go.name = stuckWaypointName; currentWaypoint = go.GetComponent(); oldPosition = transform.position; - timeToStuck = stuckDuration; + timeToStuck = m_StuckDuration; - WaypointSensor.Pulse(); + m_DetectedWayPoints.Add(currentWaypoint); } if (!currentWaypoint) { + Scan(); SelectNewWaypoint(); - } - else if (WaypoinArrivalSensor.IsDetected(currentWaypoint.gameObject)) + } + else if (m_SteeringRig.hasReachedDestination) { OnWaypointArrival(); } @@ -181,7 +237,6 @@ private void OnWaypointArrival() { currentWaypoint.Disable(); } - WaypointSensor.Pulse(); lastWaypoint = currentWaypoint; currentWaypoint = null; @@ -221,7 +276,7 @@ private void SelectNewWaypoint() } else { - switch (strategy) + switch (m_SelectionStrategy) { case SelectionStrategy.nearest: currentWaypoint = GetWeightedNearestFromPointWithComponent(transform.position); @@ -230,40 +285,35 @@ private void SelectNewWaypoint() currentWaypoint = GetWeightedFurthestFromPointWithComponent(transform.position); break; case SelectionStrategy.random: - if (WaypointSensor.DetectedObjects.Count > 0) + if (m_DetectedWayPoints.Count > 0) { - currentWaypoint = WaypointSensor.DetectedObjects[Random.Range(0, WaypointSensor.DetectedObjects.Count)].GetComponent(); + currentWaypoint = m_DetectedWayPoints[Random.Range(0, m_DetectedWayPoints.Count)].GetComponent(); } break; default: - Debug.LogError("Unknown selection strategy: " + strategy); + Debug.LogError("Unknown selection strategy: " + m_SelectionStrategy); break; } } } - if (currentWaypoint == null || turningRadius == 0) return; + if (currentWaypoint == null) return; + } - Transform root = transform.root; - Vector3 heading = currentWaypoint.transform.position - root.position; - float dot = Vector3.Dot(heading, root.forward); - if ( dot < 0.5) + /// + /// Returns a list of detected Waypoints ordered by their distance from the body. + /// + public List DetectedObjectsOrderedByDistance + { + get { - nextWaypoint = currentWaypoint; - currentWaypoint = Instantiate(waypointPrefab); - currentWaypoint.name = $"Turning waypoint (heading to {nextWaypoint})."; - Vector3 leftRight = Vector3.zero; - if (Vector3.SignedAngle(currentWaypoint.transform.position, root.position, Vector3.up) > 0) { - leftRight = root.right; - } else - { - leftRight = -root.right; - } - - Vector3 pos = transform.position + (leftRight * turningRadius) + (root.forward * turningRadius); - //FIXME: this needs to be set at a height above the terrain as there is a danger that it will be set into a slope and be inacessible - pos.y = root.position.y; - currentWaypoint.transform.position = pos; + List detectedWaypointsOrderedByDistance = new List(); + detectedWaypointsOrderedByDistance.Clear(); + detectedWaypointsOrderedByDistance.AddRange(m_DetectedWayPoints); + DistanceComparer comparer = new DistanceComparer(); + comparer.position = transform.position; + detectedWaypointsOrderedByDistance.Sort(comparer); + return detectedWaypointsOrderedByDistance; } } @@ -271,13 +321,13 @@ private WayPoint GetWeightedFurthestFromPointWithComponent(Vector3 point) { WayPoint furthest = null; var furthestDistance = 0f; - var gos = WaypointSensor.DetectedObjectsOrderedByDistance; + var gos = DetectedObjectsOrderedByDistance; for (int i = 0; i < gos.Count; i++) { WayPoint waypoint = gos[i].GetComponent(); if (waypoint == null) { continue; } - float weight = waypoint.weight + Random.Range(0, randomness); + float weight = waypoint.weight + Random.Range(0, m_SelectionRandomness); var weightedDistance = Vector3.SqrMagnitude(waypoint.transform.position - point) * weight; if (furthest == null || weightedDistance > furthestDistance) { @@ -292,13 +342,13 @@ private WayPoint GetWeightedNearestFromPointWithComponent(Vector3 point) { WayPoint nearest = null; var nearestDistance = 0f; - var gos = WaypointSensor.DetectedObjectsOrderedByDistance; + var gos = DetectedObjectsOrderedByDistance; for (int i = 0; i < gos.Count; i++) { WayPoint waypoint = gos[i].GetComponent(); if (waypoint == null) { continue; } - float weight = 1.001f - (waypoint.weight + Random.Range(0, randomness)); + float weight = 1.001f - (waypoint.weight + Random.Range(0, m_SelectionRandomness)); float weightedDistance = Vector3.SqrMagnitude(waypoint.transform.position - point) * weight; if (nearest == null || weightedDistance < nearestDistance) @@ -309,5 +359,32 @@ private WayPoint GetWeightedNearestFromPointWithComponent(Vector3 point) } return nearest; } + + private void OnValidate() + { + if (m_SteeringRig == null) m_SteeringRig = GetComponentInChildren(); + } + } + + public class DistanceComparer : IComparer + { + public Vector3 position; + public int Compare(WayPoint x, WayPoint y) + { + var d1 = Vector3.SqrMagnitude(x.transform.position - position); + var d2 = Vector3.SqrMagnitude(y.transform.position - position); + if (d1 < d2) + { + return -1; + } + else if (d1 > d2) + { + return 1; + } + else + { + return 0; + } + } } } \ No newline at end of file diff --git a/Scripts/Runtime/SoundController.cs b/Scripts/Runtime/SoundController.cs index a544cd5..5e5f8aa 100644 --- a/Scripts/Runtime/SoundController.cs +++ b/Scripts/Runtime/SoundController.cs @@ -9,7 +9,7 @@ public class SoundController : MonoBehaviour AudioClip[] m_WingFlapClip; AudioSource audioSource; - + float timeOfLastSound; private void Awake() { audioSource = GetComponent(); @@ -17,9 +17,16 @@ private void Awake() public void PlaySound() { - audioSource.clip = m_WingFlapClip[Random.Range(0, m_WingFlapClip.Length)]; - audioSource.pitch = Random.Range(0.95f, 1.05f); - audioSource.Play(); + if (m_WingFlapClip.Length == 0) return; + + if (Time.timeSinceLevelLoad > timeOfLastSound) + { + audioSource.clip = m_WingFlapClip[Random.Range(0, m_WingFlapClip.Length)]; + audioSource.pitch = Random.Range(0.95f, 1.05f); + audioSource.Play(); + + timeOfLastSound = Time.timeSinceLevelLoad + (audioSource.clip.length * 1.1f); + } } } } diff --git a/Scripts/Runtime/Steering.meta b/Scripts/Runtime/Steering.meta new file mode 100644 index 0000000..e1d9653 --- /dev/null +++ b/Scripts/Runtime/Steering.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 02d79118dc6dd654bae35c79397bd79f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Scripts/Runtime/Steering/FlyingSteeringRig.cs b/Scripts/Runtime/Steering/FlyingSteeringRig.cs new file mode 100644 index 0000000..573ea78 --- /dev/null +++ b/Scripts/Runtime/Steering/FlyingSteeringRig.cs @@ -0,0 +1,831 @@ +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using static WizardsCode.AI.Sensor; +using WizardsCode.Character; +using System; +using Random = UnityEngine.Random; + +namespace WizardsCode.AI +{ + /// + /// This rig provides a 3D navigation for flying creatures and objects. It detects opstacles on the expected path an flies over + /// them or around them if it can. + /// + public class FlyingSteeringRig : AnimatorActorController + { + #region Inspector Parameters + [Header("Flight Controls")] + [SerializeField, Tooltip("The rigid body that forces will be applied to to make the object fly (or fall in the case of gravity).")] + internal Rigidbody rb; + [SerializeField, Tooltip("Once the object is within this distance of the destination it is considered to have reached the destination.")] + float m_ArrivalDistance = 1; + [SerializeField, Tooltip("The maximum toque (turning force) that can be applied to this body. Higher values will result in tighter turns.")] + float m_MaxTorque = 4; + [SerializeField, Tooltip("The maximum strafe (sideways and backwards) force that can be applied to this body. Larger values will allow the body to slide sideways and backwards. A value of 0 will result in the body only moving forward, thus requiring a turn to move sideways or backwards from the current position.")] + float m_MaxStrafeForce = 5; + [SerializeField, Tooltip("The maximum vertical force that can be applied to this body. Larger values will result in faster climbs and dives.")] + float m_MaxVerticalForce = 8; + [SerializeField, Tooltip("The maximum forward force that can be applied to this body. Larger values will result in faster movement.")] + float m_MaxForwardForce = 10; + [SerializeField, Tooltip("The maximum forward velocity for this body.")] + internal float maxSpeed = 8; + [SerializeField, Tooltip("The avoidance strength of the body. A higher setting will result in the body moving rapidly away from obstructions, while a lower setting will result in slower, smoother movements.")] + [Range(0.1f, 5f)] + float m_AvoidanceStrength = 2f; + [SerializeField, Tooltip("The body will attempt to avoid colliders on these layers.")] + LayerMask m_AvoidanceLayers; + + [Header("Height Management")] + [SerializeField, Tooltip("The minimum height above the ground or nearest obstacle that this rig" + + " should be. The body will always try to get higher if it drops below this height.")] + float m_MinHeight = 1.5f; + [SerializeField, Tooltip("Automatically land when below the landing height?")] + bool m_AutoLand = false; + [SerializeField, Tooltip("The height above the ground or nearest obstacle that will cause this rig" + + " automatically land.")] + float m_LandingHeight = 0.5f; + [SerializeField, Tooltip("The minimum amount of time to spend on the ground after landing. The Dragon will not take off again until this amount of time (in seconds) has passed.")] + float m_MinTimeOnGround = 5; + [SerializeField, Tooltip("The height at which the body is considered to be grounded. Theoretically this should be zero," + + " however it will often be higher due to the models structure.")] + float m_GroundedHeight = 0.08f; + [SerializeField, Tooltip("The maximum height above the ground or nearest obstacle that this rig" + + " should be. This is used as a validation check to ensure the object is not going too" + + " far above the terrain or mesh obstacles in the scene. The camera may go above this height" + + " but if it does it will have forces placed upon it to move down.")] + float m_MaxHeight = 10f; + [SerializeField, Tooltip("The optimal height above the ground or nearest obstacle that this rig" + + " should be. The camera is allowed to move from this height but it will recieve gentle forces" + + " encourage it to return to this height.")] + float m_OptimalHeight = 2f; + [SerializeField, Tooltip("The maximum climb angle that this body can gain vertical height with. 90 is vertically up.")] + [Range(0, 90)] + float m_MaxClimbAngle = 35; + [SerializeField, Tooltip("The maximum dive angle that this body can lose vertical height with in a controlled way. 90 is stright down.")] + [Range(0, 90)] + float m_MaxDiveAngle = 75; + #endregion + + private float originalAnimationSpeed; + private Sensor[] sensorArray; + int nextSensorToPulse = 0; + private float approachDistanceSqr; + private float prepareToLandDistanceSqr; + private float landingDistanceSqr; + + /// + /// The transform of the current destination the object is flying to. + /// + public Transform destination { get; set; } + + + + /// + /// Returns true if the body is in an idle state. + /// + public override bool isIdle + { + get + { + if (m_Animator) + { + return m_Animator.GetCurrentAnimatorStateInfo(0).shortNameHash == AnimationHash.idleState; + } + else + { + return false; + } + } + } + + + /// + /// Returns true if the body is currently on the ground. + /// + public bool isGrounded + { + get + { + if (m_Animator) + { + return m_Animator.GetBool(AnimationHash.isGrounded); + } else + { + return false; + } + } + set + { + if (m_Animator && isGrounded != value) + { + m_Agent.enabled = value; + if (value) + { + m_Agent.Warp(transform.position); + } + m_Animator.SetBool(AnimationHash.isGrounded, value); + } + } + } + + private float m_TimeOfLastLanding; + private float previousForwardForce; + private float previousVerticalForce; + + /// + /// Returns true if the body is in the process of taking off. + /// + public bool isTakingOff + { + get + { + if (m_Animator) + { + return m_Animator.GetBool(AnimationHash.isTakingOff); + } else + { + return false; + } + } + set + { + if (m_Animator) + { + m_Animator.SetBool(AnimationHash.isTakingOff, value); + } + } + } + + /// + /// Returns true if the body is in the process of landing. + /// + public bool isLanding + { + get + { + if (m_Animator) + { + return m_Animator.GetBool(AnimationHash.isLanding); + } else + { + return false; + } + } + set + { + if (m_Animator) + { + m_Animator.SetBool(AnimationHash.isLanding, value); + } + } + } + + public bool isFlying + { + get + { + if (m_Animator) + { + return m_Animator.GetCurrentAnimatorStateInfo(0).shortNameHash == AnimationHash.flightState + || m_Animator.GetCurrentAnimatorStateInfo(0).shortNameHash == AnimationHash.glideState; + } else + { + return true; + } + } + } + + /// + /// Returns the current height of the body above the nearest obstacle below it. + /// + public float height + { + get + { + return GetObstructionHeight(rb.transform.position); + } + } + + private Transform cachedDestination; + private float cachedDestinationHeight; + private Vector3 oldRepulsion; + + /// + /// Returns the height of the current destination relative to the nearest obstacle below it. + /// + public float DestinationHeight + { + get + { + if (cachedDestination != destination) + { + cachedDestination = destination; + cachedDestinationHeight = GetObstructionHeight(destination.position); + } + return cachedDestinationHeight; + } + } + + /// + /// Get the ground height below a given point, or the heighest point of any obstruction below that point. + /// + /// The heighest obstruction point below the supplied point or 0 if no obstruction is seen. + /// + public float GetObstructionHeight(Vector3 point) + { + //OPTIMIZE: cache the result of this for a few frames at a time since it is potentially called multiple times a frame + RaycastHit hit; + if (Physics.Raycast(point, Vector3.down, out hit, Mathf.Infinity)) + { + return hit.distance; + } + else + { + return 0; + } + } + protected override void Awake() + { + base.Awake(); + + ConfigureSensors(); + + float landingDistance = m_ArrivalDistance * 3f; + landingDistanceSqr = landingDistance * landingDistance; + + float prepareToLandDistance = landingDistance * 4f; + prepareToLandDistanceSqr = prepareToLandDistance * prepareToLandDistance; + + float approachDistance = landingDistance * 20f; + approachDistanceSqr = approachDistance * approachDistance; + } + + protected override void Update() + { + if (isGrounded) base.Update(); + } + + public override void MoveTo(Transform destination) + { + WayPoint wp = destination.GetComponent(); + if (wp) + { + this.destination = destination; + } else + { + base.MoveTo(destination); + } + } + + private void ConfigureSensors() + { + float forwardSensitivity = 0.8f; + float sidewaysSensitivity = 0.2f; + float upSensitivity = 1f; + float downSensitivity = 1f; + + List sensors = new List(); + sensors.Add(new Sensor(transform.forward, true, 3, maxSpeed * 1.5f, forwardSensitivity * 1f, m_AvoidanceLayers)); // near forward + sensors.Add(new Sensor(transform.forward * 2 - transform.right, true, 1.5f, maxSpeed * 0.6f, forwardSensitivity * sidewaysSensitivity * 0.6f, m_AvoidanceLayers)); // forward/forward/left + sensors.Add(new Sensor(transform.forward - transform.right, true, 1f, maxSpeed * 0.7f, forwardSensitivity * sidewaysSensitivity * 0.4f, m_AvoidanceLayers)); // forward/left + sensors.Add(new Sensor(transform.forward - transform.right * 2, true, 0, maxSpeed * 0.8f, forwardSensitivity * sidewaysSensitivity * 0.2f, m_AvoidanceLayers)); // forward/left/left + sensors.Add(new Sensor(transform.forward * 2 + transform.right, true, 1.5f, maxSpeed * 0.9f, forwardSensitivity * sidewaysSensitivity * 0.6f, m_AvoidanceLayers)); ; // forward/forward/right + sensors.Add(new Sensor(transform.forward + transform.right, true, 1f, maxSpeed * 0.8f, forwardSensitivity * sidewaysSensitivity * 0.4f, m_AvoidanceLayers)); // forward/right + sensors.Add(new Sensor(transform.forward + transform.right * 2, true, 0, maxSpeed * 0.7f, forwardSensitivity * sidewaysSensitivity * 0.2f, m_AvoidanceLayers)); // forward/right/right + + sensors.Add(new Sensor(-transform.right, true, 0, maxSpeed * 0.6f, sidewaysSensitivity * 0.3f, m_AvoidanceLayers)); // left + sensors.Add(new Sensor(transform.right, true, 0, maxSpeed * 0.6f, sidewaysSensitivity * 0.3f, m_AvoidanceLayers)); // right + + sensors.Add(new Sensor(transform.up, false, 0, maxSpeed * 0.5f, upSensitivity * 0.6f, m_AvoidanceLayers)); // up + sensors.Add(new Sensor(transform.up + transform.forward, false, 0, maxSpeed * 1.5f, upSensitivity * 0.6f, m_AvoidanceLayers)); // up/forward + sensors.Add(new Sensor(transform.up + transform.forward * 2, false, 0, maxSpeed * 1.5f, upSensitivity * 0.4f, m_AvoidanceLayers)); // up/forward/forward + sensors.Add(new Sensor(transform.up - transform.right, false, 0, maxSpeed * 0.7f, upSensitivity * sidewaysSensitivity * 0.6f, m_AvoidanceLayers)); // up/left + sensors.Add(new Sensor(transform.up + transform.right, false, 0, maxSpeed * 0.7f, upSensitivity * sidewaysSensitivity * 0.6f, m_AvoidanceLayers)); // up/right + + sensors.Add(new Sensor(-transform.up, false, 0, m_OptimalHeight * 2, downSensitivity * 0.1f, m_AvoidanceLayers)); // down + sensors.Add(new Sensor(-transform.up - transform.right, false, 0, m_MinHeight * 0.5f, downSensitivity * sidewaysSensitivity * 0.3f, m_AvoidanceLayers)); // down/left + sensors.Add(new Sensor(-transform.up + transform.forward, false, 0, m_MinHeight, downSensitivity * 0.4f, m_AvoidanceLayers)); // down/forward + sensors.Add(new Sensor(-transform.up + transform.forward * 2, false, 0, m_MinHeight * 2, downSensitivity * 0.3f, m_AvoidanceLayers)); // down/forward/forward + sensors.Add(new Sensor(-transform.up + transform.right, false, 0, m_MinHeight * 0.7f, downSensitivity * sidewaysSensitivity * 0.3f, m_AvoidanceLayers)); // down/right + + sensorArray = sensors.ToArray(); + } + + /// + /// Get a direction that will push the object away from detected obstacles. + /// + /// If true then all sensors will be updated immediately. Use this if you need very accurate avoidance. Othersie leave as the default - false. + /// + Vector3 GetRepulsionDirection(bool updateAllSensors = false) + { + if (isLanding) return Vector3.zero; + + if (!updateAllSensors) + { + sensorArray[nextSensorToPulse].Pulse(this); + nextSensorToPulse++; + if (nextSensorToPulse == sensorArray.Length) nextSensorToPulse = 0; + } + + Vector3 strength = Vector3.zero; + for (int i = 0; i < sensorArray.Length; i++) + { + if (updateAllSensors) + { + sensorArray[i].Pulse(this); + } + + if (sensorArray[i].sensorDirection.y < 0 + && Vector3.SqrMagnitude(rb.transform.position - destination.position) < approachDistanceSqr + && destination.position.y < rb.transform.position.y) + { + // skip downward sensors when approaching a destination that is below the current position + // as they would result in an undesirable push back up when we are trying to go down. + // Forward and up sensors can still result in a small upward force depending on + // the rotation of the body. This serves to force a levelling out as obstructions get nearer. + continue; + } + strength += sensorArray[i].lastObstructionRatio; + } + + Vector3 repulsion = strength * Mathf.Clamp(strength.magnitude, 0, m_AvoidanceStrength); + //Debug.Log($"Repulsion direction is {repulsion}"); + return repulsion; + } + void Start() + { + if (m_Animator) + { + originalAnimationSpeed = m_Animator.speed; + } + + if (height <= m_GroundedHeight) { + isGrounded = true; + } else + { + isTakingOff = true; + } + isLanding = false; + } + + /// + /// Test to see if the body has reached its destination. If no destination is currently set this will + /// always return true. + /// + internal bool hasReachedDestination + { + get + { + if (destination == null) return true; + + return (rb.transform.position - destination.position).magnitude <= m_ArrivalDistance; + } + } + protected virtual void FixedUpdate() + { + if (destination == null) return; + + if (hasReachedDestination) + { + destination = null; + return; + } + + if (isGrounded) + { + // FIXME: need height of destination from the ground not absolute height + if (destination.position.y >= height + m_MinHeight && m_TimeOfLastLanding + m_MinTimeOnGround < Time.timeSinceLevelLoad) + { + TakeOff(); + } + else + { + GroundMovement(); + } + } + else if (isTakingOff) + { + // Take off is handled in the animation controller, so once we are flying we are good. + isTakingOff = height < m_LandingHeight; + FlightPhysics(); + } + else if (isLanding) + { + LandingPhysics(); + } else + { + FlightPhysics(); + } + + SetAnimationParameters(); + } + + private void LandingPhysics() + { + rb.freezeRotation = true; + + if (height < m_GroundedHeight) + { + isLanding = false; + isGrounded = true; + //m_Agent.enabled = true; + //m_Agent.Warp(rb.transform.position); + m_TimeOfLastLanding = Time.timeSinceLevelLoad; + return; + } + + Vector3 desiredDirection; + Vector3 interimDestination = GetInterimPointAdjustedForApproachHeight(); + + desiredDirection = (interimDestination - rb.position); + Vector3 moveDirection = Vector3.zero; + if (desiredDirection.sqrMagnitude > 1) + { + moveDirection += desiredDirection.normalized; + } + else + { + moveDirection += desiredDirection; + } + + //OPTIMIZATION: is it cheaper to create a single force and add it? + float z = rb.rotation.eulerAngles.z; + if (z > 180f) z -= 360f; + float force = Mathf.Clamp(z / 45f, -1f, 1f) * m_MaxTorque; + rb.AddTorque(rb.transform.forward * -force); + + float x = rb.rotation.eulerAngles.x; + if (x > 180f) z -= 360f; + force = Mathf.Clamp(z / 45f, -1f, 1f) * m_MaxTorque; + rb.AddTorque(rb.transform.right * -force); + + ApplyForces(moveDirection); + + rb.velocity = Vector3.ClampMagnitude(rb.velocity, maxSpeed / 10); + } + + private void FlightPhysics() + { + rb.freezeRotation = false; + + Vector3 desiredDirection; + Vector3 interimDestination = GetInterimPointAdjustedForApproachHeight(); + + desiredDirection = (interimDestination - rb.position); + Vector3 moveDirection = Vector3.zero; + if (desiredDirection.sqrMagnitude > 1) + { + moveDirection += desiredDirection.normalized; + } + else + { + moveDirection += desiredDirection; + } + + Vector3 repulsion = Vector3.Lerp(oldRepulsion, GetRepulsionDirection(), Time.deltaTime); + oldRepulsion = repulsion; + if (repulsion.sqrMagnitude > 0.01f) + { + moveDirection += repulsion.normalized; + } + else + { + moveDirection += repulsion * 10; + } + + // Rotate towards the desired direction + float angle; + Vector3 axis; + Quaternion desiredRotation = Quaternion.FromToRotation(rb.transform.forward, moveDirection); + desiredRotation.ToAngleAxis(out angle, out axis); + angle = angle > 180f ? angle - 360f : angle; + var torque = Mathf.Clamp(angle, -1f, 1f) * m_MaxTorque; + rb.AddTorque(axis * torque); + + // Keep the bottom facing down + float z = rb.rotation.eulerAngles.z; + if (z > 180f) z -= 360f; + float force = Mathf.Clamp(z / 120f, -1f, 1f) * m_MaxTorque; + rb.AddTorque(rb.transform.forward * -force); + + //Debug.Log($"Move direction is {moveDirection}, normalized is {moveDirection.normalized}"); + + ApplyForces(moveDirection); + } + + /// + /// Get an interim point that is in the same x,z space as the destination but adjusted for height + /// to provide a good approach for landing or leisurely flight. + /// + private Vector3 GetInterimPointAdjustedForApproachHeight() + { + Vector3 interimDestination = destination.position; + float desiredDirectionSqrMagnitude = (destination.position - rb.position).sqrMagnitude; + if (desiredDirectionSqrMagnitude > approachDistanceSqr) + { + if (DestinationHeight < m_OptimalHeight) + { + interimDestination.y += m_OptimalHeight; + } + } + else if (m_AutoLand && desiredDirectionSqrMagnitude > prepareToLandDistanceSqr) + { + if (DestinationHeight < m_MinHeight) + { + interimDestination.y += m_MinHeight; + } + } + else if (m_AutoLand && desiredDirectionSqrMagnitude > landingDistanceSqr) + { + if (DestinationHeight < m_LandingHeight) + { + interimDestination.y += m_LandingHeight; + } + } + else if (m_AutoLand && DestinationHeight < m_LandingHeight) + { + interimDestination.y = Mathf.Lerp(transform.position.y, destination.position.y, desiredDirectionSqrMagnitude / m_LandingHeight); + isLanding = true; + } + + return interimDestination; + } + + private void ApplyForces(Vector3 moveDirection) + { + // Forward force to add + //float forwardDotMove = Vector3.Dot(rb.transform.forward, moveDirection.normalized); + //float forwardForce = Mathf.Lerp(m_MaxStrafeForce, m_MaxForwardForce, Mathf.Clamp01(forwardDotMove)); + var forwardForce = m_MaxForwardForce; + + // Vertical force to add + float verticalForce = Mathf.Lerp(0, m_MaxVerticalForce, Mathf.Clamp01(moveDirection.normalized.y)); + + // Add the forces + //Debug.Log($"Forward force is {forwardForce}, vertical force is {verticalForce}."); + rb.AddForce((Mathf.Lerp(previousForwardForce, forwardForce, Time.deltaTime) * moveDirection.normalized) + + (Mathf.Lerp(previousVerticalForce, verticalForce, Time.deltaTime) * rb.transform.up)); + + // Don't go over maximum speed + rb.velocity = Vector3.ClampMagnitude(rb.velocity, maxSpeed); + + previousForwardForce = forwardForce; + previousVerticalForce = verticalForce; + } + + /// + /// Apply rules to cause the body to take off from a grounded position + /// + private void TakeOff() + { + Vector3 repulsion = GetRepulsionDirection(true); + if (repulsion.y < 0) { + return; + } + + rb.freezeRotation = false; + + Vector3 moveDirection = Vector3.zero; + moveDirection = new Vector3(0, 1000, 1000); + isGrounded = false; + isTakingOff = true; + + ApplyForces(moveDirection); + } + + /// + /// Apply on the ground movement rules. + /// + private void GroundMovement() + { + rb.freezeRotation = true; + + if (Vector3.SqrMagnitude(rb.transform.position - destination.position) > approachDistanceSqr + && m_TimeOfLastLanding + m_MinTimeOnGround < Time.timeSinceLevelLoad + && Random.value <= 0.01) { + TakeOff(); + return; + } + + if (m_Agent.destination != destination.position) + { + m_Agent.SetDestination(destination.position); + } + } + void SetAnimationParameters() + { + if (!m_Animator) return; + + Quaternion q = rb.rotation; + float rollRad = Mathf.Atan2(2 * q.y * q.w - 2 * q.x * q.z, 1 - 2 * q.y * q.y - 2 * q.z * q.z); + float pitchRad = Mathf.Atan2(2 * q.x * q.w - 2 * q.y * q.z, 1 - 2 * q.x * q.x - 2 * q.z * q.z); + float yawRad = Mathf.Asin(2 * q.x * q.y + 2 * q.z * q.w); + + float pitch; + if (pitchRad <= 0) // up + { + pitch = (Mathf.Rad2Deg * -pitchRad) / m_MaxClimbAngle; + } else + { + pitch = (Mathf.Rad2Deg * -pitchRad) / m_MaxDiveAngle; + } + float yaw = yawRad / 1.52f; + float roll = rollRad / 3.14f; + float strafeVelocity = transform.InverseTransformDirection(rb.velocity).normalized.x; + float verticalVelocity = rb.velocity.normalized.y; + float forwardVelocity = transform.InverseTransformDirection(rb.velocity).normalized.z; + + bool glide = false; + if (forwardVelocity > 0.9 && height > m_MinHeight) + { + glide = pitch > -0.2 && pitch < 0.2; + } + + m_Animator.SetFloat(AnimationHash.yaw, strafeVelocity); + if (pitch <= 0) // up + { + m_Animator.SetFloat(AnimationHash.pitch, pitch); + } else // down + { + m_Animator.SetFloat(AnimationHash.pitch, pitch); + } + m_Animator.SetFloat(AnimationHash.roll, roll); + m_Animator.SetFloat(AnimationHash.verticalVelocity, verticalVelocity); + m_Animator.SetFloat(AnimationHash.forwardVelocity, forwardVelocity); + m_Animator.SetBool(AnimationHash.glide, glide); + + m_Animator.SetFloat(AnimationHash.speed, Mathf.Clamp((rb.velocity.magnitude / m_MaxSpeed) * 1.6f, 0.9f, 1.8f)); + } + + private void OnDrawGizmosSelected() + { + if (destination == null) return; + if (isGrounded) return; + + // Target Direction + Gizmos.color = Color.yellow; + Gizmos.DrawLine(rb.transform.position, destination.position); + + // Sensors + if (sensorArray == null || sensorArray.Length == 0) ConfigureSensors(); + + if (!isLanding) + { + for (int i = 0; i < sensorArray.Length; i++) + { + if (sensorArray[i].sensorDirection.y < 0 + && Vector3.SqrMagnitude(rb.transform.position - destination.position) < approachDistanceSqr + && destination.position.y < rb.transform.position.y) + { + // skip downward sensors when approaching a destination that is below the current position + // as they would result in an undesirable push back up when we are trying to go down. + // Forward and up sensors can still result in a small upward force depending on + // the rotation of the body. This serves to force a levelling out as obstructions get nearer. + continue; + } + + Gizmos.color = Color.white; + Vector3 interimPoint = GetInterimPointAdjustedForApproachHeight(); + Gizmos.DrawSphere(interimPoint, 0.5f); + Gizmos.DrawLine(rb.transform.position, interimPoint); + + Vector3 direction = rb.transform.TransformDirection(sensorArray[i].sensorDirection); + float length = (rb.velocity.magnitude / maxSpeed) * sensorArray[i].maxLength; //Mathf.Lerp(0, sensorArray[i].maxLength, Mathf.Clamp01(rb.velocity.magnitude * maxSpeed)); + + Vector3 endPoint; + if (sensorArray[i].hit.collider == null) + { + endPoint = rb.position + (direction * length); + Gizmos.color = Color.green; + } + else + { + endPoint = rb.position + (direction * sensorArray[i].hit.distance); + Gizmos.color = Color.red; + } + + if (sensorArray[i].radius > 0) + { + float currentRadius = Mathf.Lerp(0, sensorArray[i].radius, Mathf.Clamp01(rb.velocity.magnitude * maxSpeed)); + Gizmos.DrawLine(rb.position, endPoint); + Gizmos.DrawWireSphere(endPoint, currentRadius); + } + else + { + Gizmos.DrawLine(rb.position, endPoint); + } + } + } + } + private void OnValidate() + { + if (rb == null) rb = GetComponentInParent(); + } + } + + class Sensor + { + private bool obstructionHit = false; + + /// + /// The RaycastHit or null depending on whether the sensor hit anything on the last pulse + /// + public RaycastHit hit; + + /// + /// Direction relative to `transform.forward`. + /// + public Vector3 sensorDirection { get; set; } + public float radius { get; set; } + public float maxLength { get; set; } + + public float avoidanceSensitivity = 0.6f; + + public bool rotateWithRigidbody = true; + + private LayerMask avoidanceLayers; + internal Vector3 lastObstructionRatio + { + get + { + if (obstructionHit) + { + float obstructionRatio = Mathf.Pow(1f - (hit.distance / maxLength), 1f / avoidanceSensitivity); + return obstructionRatio * hit.normal; + } + else + { + return Vector3.zero; + } + } + } + public Sensor(Vector3 direction, bool rotateWithRigidbody, float radius, float maxLength, float avoidanceSensitivity, LayerMask avoidanceLayers) + { + this.sensorDirection = direction; + this.rotateWithRigidbody = rotateWithRigidbody; + this.radius = radius; + this.maxLength = maxLength; + this.avoidanceSensitivity = avoidanceSensitivity; + this.avoidanceLayers = avoidanceLayers; + } + + /// + /// Check for obstructions in the sensor. Once pulsed the value of `hit` + /// will be the `RaycastHit` returned by the testing raycast. + /// The rig from which the sensors should be fired. + /// + public bool Pulse(FlyingSteeringRig rig) + { + Vector3 direction; + if (rotateWithRigidbody) + { + direction = rig.rb.transform.TransformDirection(this.sensorDirection); + } else + { + direction = sensorDirection; + } + float length = Mathf.Lerp(0, maxLength, Mathf.Clamp01(rig.rb.velocity.magnitude * rig.maxSpeed)); + + Ray ray = new Ray(rig.rb.transform.position, direction); + if (radius > 0) + { + float currentRadius = Mathf.Lerp(0, radius, Mathf.Clamp01(rig.rb.velocity.magnitude * rig.maxSpeed)); + obstructionHit = Physics.SphereCast(ray, currentRadius, out hit, length, avoidanceLayers); + } + else + { + obstructionHit = Physics.Raycast(ray, out hit, length, avoidanceLayers); + } + + return obstructionHit; + } + + internal static class AnimationHash + { + #region parameters + internal static int speed = Animator.StringToHash("speed"); + + internal static int isGrounded = Animator.StringToHash("isGrounded"); + internal static int isTakingOff= Animator.StringToHash("isTakingOff"); + internal static int isLanding = Animator.StringToHash("isLanding"); + + internal static int roll = Animator.StringToHash("roll"); + internal static int pitch = Animator.StringToHash("pitch"); + internal static int yaw = Animator.StringToHash("yaw"); + + internal static int verticalVelocity = Animator.StringToHash("verticalVelocity"); + internal static int forwardVelocity = Animator.StringToHash("forwardVelocity"); + + internal static int glide = Animator.StringToHash("glide"); + #endregion + + #region states + internal static int idleState = Animator.StringToHash("Idle"); + internal static int takeOffState = Animator.StringToHash("Take Off"); + internal static int flightState = Animator.StringToHash("Flight"); + internal static int glideState = Animator.StringToHash("Glide"); + #endregion + } + } +} diff --git a/Scripts/Editor/CameraSteeringRigEditor.cs.meta b/Scripts/Runtime/Steering/FlyingSteeringRig.cs.meta similarity index 83% rename from Scripts/Editor/CameraSteeringRigEditor.cs.meta rename to Scripts/Runtime/Steering/FlyingSteeringRig.cs.meta index 1d808b3..943240d 100644 --- a/Scripts/Editor/CameraSteeringRigEditor.cs.meta +++ b/Scripts/Runtime/Steering/FlyingSteeringRig.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 31c2c2b01c6232f4fb120560eac9b436 +guid: b4b518057b1f88040bff8e428a6b028d MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Scripts/Runtime/WayPoint.cs b/Scripts/Runtime/WayPoint.cs index cf8c23e..a52c843 100644 --- a/Scripts/Runtime/WayPoint.cs +++ b/Scripts/Runtime/WayPoint.cs @@ -11,11 +11,14 @@ namespace WizardsCode.AI /// or points of interest. /// /// + [RequireComponent(typeof(Collider))] public class WayPoint : MonoBehaviour { - [SerializeField, Tooltip("The relative weight of this waypoint in terms of it's interest. A higher value will increase the chances of this waypoint being selected all other choice factors being equal."), Range(0.001f, 1f)] + [SerializeField, Tooltip("The radiues that will be tested for obstructions. If an obstruction is found within this radius then a new spawn point will be generated.")] + public float ClearRadius = 1.8f; + [SerializeField, Tooltip("The relative weight of this waypoint in terms of it's interest. A higher value will increase the chances of this waypoint being selected all other choice factors being equal. A weight of 0 means it will never be selected, this is useful when you want a waypoint that can only be assigned in code."), Range(0f, 1f)] internal float weight = 0.5f; - [SerializeField, Tooltip("Time, in seconds, to wait before re-enabling the waypoint after it is visited. If 0 the waypoint will not be re-enabled.")] + [SerializeField, Tooltip("Time, in seconds, to wait before re-enabling the waypoint after it is visited. If 0 the waypoint will destroyed once visited.")] internal float reEnableWaitTime = 0; [SerializeField, Tooltip("If set the next waypoint selected will be the one set here, assuming that it is still present in the scene.")] public WayPoint NextWaypoint; @@ -70,6 +73,9 @@ public void Disable() if (reEnableWaitTime > 0) { timeToReEnable = Time.timeSinceLevelLoad + reEnableWaitTime; + } else + { + Destroy(this.gameObject); } } @@ -85,7 +91,7 @@ public void Enable() private void OnDrawGizmos() { Gizmos.color = Color.blue; - Gizmos.DrawSphere(transform.position, 0.2f); + Gizmos.DrawSphere(transform.position, ClearRadius); } } } \ No newline at end of file diff --git a/Scripts/Runtime/wizardscode.ai.explorer.asmdef b/Scripts/Runtime/wizardscode.ai.explorer.asmdef index b64ab86..e850400 100644 --- a/Scripts/Runtime/wizardscode.ai.explorer.asmdef +++ b/Scripts/Runtime/wizardscode.ai.explorer.asmdef @@ -3,7 +3,7 @@ "rootNamespace": "", "references": [ "PhotoSession.Runtime", - "microsmo.sensortoolkit" + "WizardsCode.Character" ], "includePlatforms": [], "excludePlatforms": [],