diff --git a/Assets/ExampleScenes/HapticTextures.unity b/Assets/ExampleScenes/HapticTextures.unity index f564400..44a3025 100644 --- a/Assets/ExampleScenes/HapticTextures.unity +++ b/Assets/ExampleScenes/HapticTextures.unity @@ -136,7 +136,7 @@ GameObject: - component: {fileID: 325785226} - component: {fileID: 325785225} - component: {fileID: 325785229} - m_Layer: 11 + m_Layer: 8 m_Name: Cylinder m_TagString: Untagged m_Icon: {fileID: 0} @@ -236,7 +236,7 @@ MonoBehaviour: distanceX: 0.5 layerMask: serializedVersion: 2 - m_Bits: 2048 + m_Bits: 256 --- !u!1 &651873822 GameObject: m_ObjectHideFlags: 0 @@ -250,7 +250,7 @@ GameObject: - component: {fileID: 651873824} - component: {fileID: 651873823} - component: {fileID: 651873827} - m_Layer: 11 + m_Layer: 8 m_Name: Cube m_TagString: Untagged m_Icon: {fileID: 0} @@ -349,7 +349,7 @@ MonoBehaviour: distanceX: 0.5 layerMask: serializedVersion: 2 - m_Bits: 2048 + m_Bits: 256 --- !u!1 &880537917 GameObject: m_ObjectHideFlags: 0 @@ -574,79 +574,98 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 87073778819318775, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 87073778819318775, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: debug value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: portName value: //.//COM3 objectReference: {fileID: 0} - - target: {fileID: 826605487606422809, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422809, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Name value: Panto objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalScale.z value: 1 objectReference: {fileID: 0} - - target: {fileID: 2307693089428900514, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 2307693089428900514, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.z value: -0.3 objectReference: {fileID: 0} - - target: {fileID: 5330993574101415308, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 5330993574101415308, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Enabled value: 0 objectReference: {fileID: 0} - - target: {fileID: 8373185769348013176, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 8373185769348013176, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: f2fecced13b050b418bb4d305b0ec4fd, type: 2} @@ -659,51 +678,63 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 1103546739} m_Modifications: - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalRotation.x value: -0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 940633445967004887, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + - target: {fileID: 940633445967004887, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} propertyPath: m_Name value: ObstacleSphere objectReference: {fileID: 0} @@ -711,6 +742,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} --- !u!4 &1968542768 stripped Transform: - m_CorrespondingSourceObject: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} + m_CorrespondingSourceObject: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} m_PrefabInstance: {fileID: 1968542767} m_PrefabAsset: {fileID: 0} diff --git a/Assets/ExampleScenes/ManyObstacles.unity b/Assets/ExampleScenes/ManyObstacles.unity index 186d00b..8a1fd1e 100644 --- a/Assets/ExampleScenes/ManyObstacles.unity +++ b/Assets/ExampleScenes/ManyObstacles.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.4366757, g: 0.48427194, b: 0.5645252, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -227,7 +227,8 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.5, y: 1, z: 0.5} - m_Children: [] + m_Children: + - {fileID: 1920569587} m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -335,7 +336,8 @@ Transform: m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0.5, y: 1, z: 0.5} - m_Children: [] + m_Children: + - {fileID: 1858213816} m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -382,6 +384,156 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1858213815 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1103546739} + m_Modifications: + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004887, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_Name + value: ObstacleSphere + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} +--- !u!4 &1858213816 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + m_PrefabInstance: {fileID: 1858213815} + m_PrefabAsset: {fileID: 0} +--- !u!1001 &1920569586 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 880537922} + m_Modifications: + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 940633445967004887, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + propertyPath: m_Name + value: ObstacleSphere + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: af09ba9c5f8233441be32ef80c475e22, type: 3} +--- !u!4 &1920569587 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 940633445967004886, guid: af09ba9c5f8233441be32ef80c475e22, + type: 3} + m_PrefabInstance: {fileID: 1920569586} + m_PrefabAsset: {fileID: 0} --- !u!1001 &1938086325 PrefabInstance: m_ObjectHideFlags: 0 @@ -389,75 +541,93 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: debug value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: portName value: //.//COM3 objectReference: {fileID: 0} - - target: {fileID: 826605487606422809, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422809, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Name value: Panto objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalRotation.w value: 1 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalScale.z value: 1 objectReference: {fileID: 0} - - target: {fileID: 2307693089428900514, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 2307693089428900514, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_LocalPosition.z value: -0.3 objectReference: {fileID: 0} - - target: {fileID: 5330993574101415308, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 5330993574101415308, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Enabled value: 0 objectReference: {fileID: 0} - - target: {fileID: 8373185769348013176, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + - target: {fileID: 8373185769348013176, guid: f08d327e9fb42f94d97ba9d1d226d418, + type: 3} propertyPath: m_Materials.Array.data[0] value: objectReference: {fileID: 2100000, guid: f2fecced13b050b418bb4d305b0ec4fd, type: 2} diff --git a/Assets/ExampleScenes/Movement.unity b/Assets/ExampleScenes/Movement.unity index dc2dfb4..fa736ab 100644 --- a/Assets/ExampleScenes/Movement.unity +++ b/Assets/ExampleScenes/Movement.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.44657826, g: 0.49641263, b: 0.57481676, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -123,6 +123,118 @@ NavMeshSettings: debug: m_Flags: 0 m_NavMeshData: {fileID: 0} +--- !u!1 &201802860 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 201802864} + - component: {fileID: 201802863} + - component: {fileID: 201802862} + - component: {fileID: 201802861} + - component: {fileID: 201802865} + m_Layer: 10 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!64 &201802861 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201802860} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 4 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &201802862 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201802860} + 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: 2100000, guid: 7859534068d254e47a473a3741714205, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 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!33 &201802863 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201802860} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &201802864 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201802860} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.29, z: -9.76} + m_LocalScale: {x: 3, y: 1, z: 1.5} + m_Children: [] + m_Father: {fileID: 1298040049} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &201802865 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 201802860} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8175f47702cce734aa3f4f27c20c1738, type: 3} + m_Name: + m_EditorClassIdentifier: + diffuseRate: 1 + decayRate: 0.01 + computeShader: {fileID: 7200000, guid: f0da9c9da5731a44ba5147d1e405dc65, type: 3} --- !u!1 &880537917 GameObject: m_ObjectHideFlags: 0 @@ -339,6 +451,41 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1298040049 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 826605487606422813, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} + m_PrefabInstance: {fileID: 1938086325} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1576190026 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1576190027} + m_Layer: 10 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1576190027 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1576190026} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1938086325 PrefabInstance: m_ObjectHideFlags: 0 @@ -348,7 +495,7 @@ PrefabInstance: m_Modifications: - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} propertyPath: debug - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} propertyPath: portName diff --git a/Assets/ExampleScenes/Obstacles.unity b/Assets/ExampleScenes/Obstacles.unity index 2bbd5b7..68ba9ca 100644 --- a/Assets/ExampleScenes/Obstacles.unity +++ b/Assets/ExampleScenes/Obstacles.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.37311953, g: 0.38074014, b: 0.3587274, a: 1} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -403,7 +403,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 1 - showOutline: 0 --- !u!1 &767868459 GameObject: m_ObjectHideFlags: 0 @@ -547,7 +546,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 0 - showOutline: 0 --- !u!1 &1184726424 GameObject: m_ObjectHideFlags: 0 @@ -659,7 +657,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 1 - showOutline: 0 text: --- !u!1 &1345781018 GameObject: @@ -696,7 +693,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 1 - showOutline: 0 text: --- !u!65 &1345781021 BoxCollider: @@ -807,7 +803,6 @@ MonoBehaviour: onUpper: 1 onLower: 0 isPassable: 0 - showOutline: 0 --- !u!60 &1550062301 PolygonCollider2D: m_ObjectHideFlags: 0 @@ -995,7 +990,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 1 - showOutline: 0 text: --- !u!65 &1736803261 BoxCollider: @@ -1108,7 +1102,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 1 - showOutline: 0 text: --- !u!65 &1778785117 BoxCollider: @@ -1345,7 +1338,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} propertyPath: debug - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 826605487606422808, guid: f08d327e9fb42f94d97ba9d1d226d418, type: 3} propertyPath: portName @@ -1512,7 +1505,6 @@ MonoBehaviour: onUpper: 1 onLower: 1 isPassable: 0 - showOutline: 0 --- !u!65 &2031066674 BoxCollider: m_ObjectHideFlags: 0 diff --git a/Assets/ExampleScenes/README.md b/Assets/ExampleScenes/README.md index a84fde3..3911557 100644 --- a/Assets/ExampleScenes/README.md +++ b/Assets/ExampleScenes/README.md @@ -1,26 +1,38 @@ # Example Scenes This folder contains a number of demos for the Unity DualPanto framework. -### Introduction -Contains multiple objects that will be introduced at the start of the game. +### Force Field +Contains a force field. If the upper handle enters the area of the force field it will be gently pushed upwards. -### Rotation -Contains two objects. The upper one can be rotated by turning the upper handle. The lower objects is rotated via a script and will send it's rotation to the Panto. +### Force Field Labyrinth +This scene contains a small game. The player must reach the bottom of the area without being pulled in by the force fields. -### Obstacles -Contains a player that can be moved with the upper panto handle. The scene contains multiple obstacles, that are registered on the Panto, the player can collide with them. Press `D` to disable all obstacles, press `E` to enable them again. +### Haptic Texture +A haptic texture consists of rails in parallel or in a grid. Moving over a texture creates a haptic sensation that can be used to make areas more recognizable. Make sure the haptic texture is set to the same layer as the object it is attached to. -### SwitchTo -Contains a cube that is moved via a script. The lower handle will move towards it and then follow it's movement. +### Introduction +Contains multiple objects that will be introduced at the start of the game. -### MoveToPosition -Contains two cubes, each handle will move to one cube, one handle will be freed afterwards. +### Many Obstacles +A scene with a large amount of obstacles that vary in size. This scene uses the `ObstacleSphere`, as it contains more obstacles that can be rendered on the device at once. The sphere will only activate obstacles that are close to the handles. ### Movement Contains two spheres, each can be controlled by one handle. Pressing `F` will toggle the handles freezing in place. -### Many Obstacles -A scene with a large amount of obstacles that vary in size. +### MoveToPosition +Contains two cubes, each handle will move to one cube, one handle will be freed afterwards. Press `Space` to move the handle to the cubes again. + +### MovingObstacle +Contains an obstacle that moves. + +### Obstacles +Contains a player that can be moved with the upper panto handle. The scene contains multiple obstacles, that are registered on the Panto, the player can collide with them. Press `D` to disable all obstacles, press `E` to enable them again. ### PerceptionCone -This scene includes a demo for a navigation technique. The "Perception Cone" is attached to the player. Each "RoomElement" will repeat it's name while in focus of the cone. Walls can be placed to obstruct the cone, if they are on the correct layer. \ No newline at end of file +This scene includes a demo for a navigation technique. The "Perception Cone" is attached to the player. Each "RoomElement" will repeat it's name while in focus of the cone. Walls can be placed to obstruct the cone, if they are on the correct layer. + +### Rotation +Contains two objects. The upper one can be rotated by turning the upper handle. The lower objects is rotated via a script and will send it's rotation to the Panto. + +### SwitchTo +Contains a cube that is moved via a script. The lower handle will move towards it and then follow it's movement. \ No newline at end of file diff --git a/Assets/ExampleScripts/GenerateObstacles.cs b/Assets/ExampleScripts/GenerateObstacles.cs index 3764488..a7c4e31 100644 --- a/Assets/ExampleScripts/GenerateObstacles.cs +++ b/Assets/ExampleScripts/GenerateObstacles.cs @@ -8,21 +8,19 @@ void Start() { for (int i = 0; i <= 30; i++) { - float height = -8f; - if (i < 20) height = -9f; - if (i < 10) height = -10f; + float height = -7f; + if (i < 20) height = -10f; + if (i < 10) height = -13f; GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube); float x = Random.Range(0.3f, 1.5f); float z = Random.Range(0.3f, 1.5f); go.transform.localScale = new Vector3(x, 1, z); go.transform.position = new Vector3( - -4f + (i % 10) * 0.8f, + -8f + (i % 10) * 1.6f, 0f, height ); PantoBoxCollider collider = go.AddComponent(); - //collider.CreateObstacle(); - //collider.Enable(); } } } diff --git a/Assets/ExampleScripts/MoveToPosition.cs b/Assets/ExampleScripts/MoveToPosition.cs index 4fe6d20..cc0fb84 100644 --- a/Assets/ExampleScripts/MoveToPosition.cs +++ b/Assets/ExampleScripts/MoveToPosition.cs @@ -1,5 +1,6 @@ using UnityEngine; using DualPantoFramework; +using System.Threading.Tasks; public class MoveToPosition : MonoBehaviour { @@ -9,6 +10,7 @@ public class MoveToPosition : MonoBehaviour PantoHandle handle; async void Start() { + await Task.Delay(500); handle = isUpper ? (PantoHandle)GameObject.Find("Panto").GetComponent() : (PantoHandle)GameObject.Find("Panto").GetComponent(); diff --git a/Assets/ExampleScripts/ObstacleManager.cs b/Assets/ExampleScripts/ObstacleManager.cs index cd99434..a574e69 100644 --- a/Assets/ExampleScripts/ObstacleManager.cs +++ b/Assets/ExampleScripts/ObstacleManager.cs @@ -8,10 +8,8 @@ void Start() pantoColliders = GameObject.FindObjectsOfType(); foreach (PantoCollider collider in pantoColliders) { - Debug.Log("Enabling obstacle"); collider.CreateObstacle(); collider.Enable(); - //await Task.Delay(100); } } diff --git a/Assets/PantoScripts.meta b/Assets/PantoScripts.meta index 83b8d68..3fe5bc9 100644 --- a/Assets/PantoScripts.meta +++ b/Assets/PantoScripts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 6ed1f4c7c1b3c73478044936c33a8507 +guid: 8e2e3435797c069a39f344143d7b567f folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/PantoScripts/DualPantoSync.cs b/Assets/PantoScripts/DualPantoSync.cs index b95f954..e4148a8 100644 --- a/Assets/PantoScripts/DualPantoSync.cs +++ b/Assets/PantoScripts/DualPantoSync.cs @@ -42,7 +42,7 @@ private string portName else { Debug.LogError("No overwrite port was given, but the default port for your OS is not known."); - return "/dev/cu.SLAB_USBtoUART"; // default port for linux? + return "/dev/cu.SLAB_USBtoUART"; } } set { overwriteDefaultPort = value; } @@ -51,8 +51,6 @@ private string portName [Header("When Debug is enabled, the emulator mode will be used. You do not need to be connected to a Panto for this mode.")] public bool debug = false; public float debugRotationSpeed = 10.0f; - private bool debugHandleMeActive = true; // is the me handle or the it handle currently controlled using the mouse - public KeyCode toggleVisionKey = KeyCode.B; public bool showRawValues = true; protected ulong Handle; private static LowerHandle lowerHandle; @@ -62,8 +60,8 @@ private string portName //private static Vector2[] pantoBounds = { new Vector2(0, -110), new Vector2(320, 160) }; // for version D private static Vector2[] pantoBounds = { new Vector2(0, -100), new Vector2(360, 210) }; // ember private static Vector2[] unityBounds; - private Vector3 upperHandlePos; - private Vector3 lowerHandlePos; + //private Vector3 upperHandlePos; + //private Vector3 lowerHandlePos; private Vector3 upperGodObject; private Vector3 lowerGodObject; private float lowerHandleRot = 0f; @@ -221,7 +219,7 @@ private void PositionHandler(ulong handle, [MarshalAs(UnmanagedType.LPArray, Arr { Vector2 unityPosUpper = PantoToUnity(new Vector2((float)positions[0], (float)positions[1])); Vector2 unityGodUpper = PantoToUnity(new Vector2((float)positions[3], (float)positions[4])); - upperHandlePos = new Vector3(unityPosUpper.x, 0, unityPosUpper.y); + Vector3 upperHandlePos = new Vector3(unityPosUpper.x, 0, unityPosUpper.y); upperHandleRot = PantoToUnityRotation(positions[2]); if (initialUpperRot == -1 && initialPoll) initialUpperRot = upperHandleRot; @@ -235,7 +233,7 @@ private void PositionHandler(ulong handle, [MarshalAs(UnmanagedType.LPArray, Arr Vector2 unityPosLower = PantoToUnity(new Vector2((float)positions[5], (float)positions[6])); Vector2 unityGodLower = PantoToUnity(new Vector2((float)positions[8], (float)positions[9])); - lowerHandlePos = new Vector3(unityPosLower.x, 0, unityPosLower.y); + Vector3 lowerHandlePos = new Vector3(unityPosLower.x, 0, unityPosLower.y); lowerHandleRot = PantoToUnityRotation(positions[7]); lowerGodObject = new Vector3(unityGodLower.x, 0, unityGodLower.y); if (lowerHandle) @@ -272,11 +270,13 @@ public GameObject GetDebugGodObject(bool isUpper) { if (isUpper) { - return debugUpperGodObject; + //return debugUpperGodObject; + return debugUpperHandle; } else { - return debugLowerGodObject; + //return debugLowerGodObject; + return debugLowerHandle; } } @@ -328,8 +328,8 @@ void Awake() ParseCommandLineArguments(); Vector3 handleDefaultPosition = transform.position + new Vector3(0, 0, 3); - upperHandlePos = handleDefaultPosition; - lowerHandlePos = handleDefaultPosition; + //upperHandlePos = handleDefaultPosition; + //lowerHandlePos = handleDefaultPosition; CreateDebugObjects(handleDefaultPosition); if (!debug) { @@ -399,25 +399,17 @@ private void CreateDebugObjects(Vector3 position) debugUpperHandle.transform.localScale = transform.localScale; debugUpperHandle.name = "MeHandle"; - prefab = Resources.Load("MeHandleGodObject"); - debugUpperGodObject = Instantiate(prefab) as GameObject; - debugUpperGodObject.transform.position = position; - debugUpperGodObject.name = "MeHandleGodObject"; - debugUpperGodObject.tag = "MeHandle"; - Rigidbody rUpper = debugUpperGodObject.AddComponent(); - // rUpper.useGravity = false; - // rUpper.constraints = RigidbodyConstraints.FreezeRotation; - //debugUpperGodObject.AddComponent(); - - prefab = Resources.Load("ItHandleGodObject"); - debugLowerGodObject = Instantiate(prefab) as GameObject; - debugLowerGodObject.transform.position = position; - debugLowerGodObject.name = "ItHandleGodObject"; - debugLowerGodObject.tag = "ItHandle"; - Rigidbody rLower = debugLowerGodObject.AddComponent(); - // rLower.useGravity = false; - // rLower.constraints = RigidbodyConstraints.FreezeRotation; - //debugLowerGodObject.AddComponent(); + //prefab = Resources.Load("MeHandleGodObject"); + //debugUpperGodObject = Instantiate(prefab) as GameObject; + //debugUpperGodObject.transform.position = position; + //debugUpperGodObject.name = "MeHandleGodObject"; + //debugUpperGodObject.tag = "MeHandle"; + + //prefab = Resources.Load("ItHandleGodObject"); + //debugLowerGodObject = Instantiate(prefab) as GameObject; + //debugLowerGodObject.transform.position = position; + //debugLowerGodObject.name = "ItHandleGodObject"; + //debugLowerGodObject.tag = "ItHandle"; } void OnDestroy() @@ -444,26 +436,21 @@ void Update() } else { - if (Input.GetMouseButtonUp(0)) - debugHandleMeActive = !debugHandleMeActive; - - if (Input.GetMouseButton(0)) + if (Input.GetMouseButton(0) && upperHandle.IsUserControlled()) { Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); float mouseRotation = Input.GetAxis("Horizontal") * debugRotationSpeed * Time.deltaTime * 60f; Vector3 position = new Vector3(mousePosition.x, 0.0f, mousePosition.z); - if (debugHandleMeActive) - { - upperHandleRot = debugUpperHandle.transform.eulerAngles.y + mouseRotation; - upperHandlePos = position; - upperHandle.SetPositions(upperHandlePos, upperHandleRot, null); - } - else - { - lowerHandleRot = debugLowerHandle.transform.eulerAngles.y + mouseRotation; - lowerHandlePos = position; - lowerHandle.SetPositions(lowerHandlePos, lowerHandleRot, null); - } + upperHandleRot = debugUpperHandle.transform.eulerAngles.y + mouseRotation; + upperHandle.SetPositions(position, upperHandleRot, null); + } + if (Input.GetMouseButton(1) && lowerHandle.IsUserControlled()) + { + Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition); + float mouseRotation = Input.GetAxis("Horizontal") * debugRotationSpeed * Time.deltaTime * 60f; + Vector3 position = new Vector3(mousePosition.x, 0.0f, mousePosition.z); + lowerHandleRot = debugLowerHandle.transform.eulerAngles.y + mouseRotation; + lowerHandle.SetPositions(position, lowerHandleRot, null); } } if (Input.GetKeyDown(KeyCode.Q)) @@ -513,8 +500,8 @@ public void UpdateHandlePosition(Vector3? position, float? rotation, bool isUppe if (rotation != null) debugObject.transform.eulerAngles = new Vector3(debugObject.transform.eulerAngles.x, (float)rotation, debugObject.transform.eulerAngles.z); return; } - float pantoX = float.NaN; + float pantoX = float.NaN; float pantoY = float.NaN; if (position != null) { @@ -560,12 +547,12 @@ public void SetSpeedControl(bool tethered, float tetherFactor, float tetherInner SetSpeedControl(Handle, Convert.ToByte(tethered), tetherFactor, tetherInnerRadius, tetherOuterRadius, tetherStrategy, Convert.ToByte(pockEnabled)); } - public void SetDebugObjects(bool isUpper, Vector3? position, float? rotation) - { - GameObject debugObject = GetDebugObject(isUpper); - if (position != null) debugObject.transform.position = (Vector3)position; - if (rotation != null) debugObject.transform.eulerAngles = new Vector3(0, (float)rotation, transform.eulerAngles.z); - } + //public void SetDebugObjects(bool isUpper, Vector3? position, float? rotation) + //{ + //GameObject debugObject = GetDebugObject(isUpper); + //if (position != null) debugObject.transform.position = (Vector3)position; + //if (rotation != null) debugObject.transform.eulerAngles = new Vector3(0, (float)rotation, transform.eulerAngles.z); + //} private static float UnityToPantoRotation(float rotation) { diff --git a/Assets/PantoScripts/IntroManager.cs b/Assets/PantoScripts/IntroManager.cs index b9db33b..6e63659 100644 --- a/Assets/PantoScripts/IntroManager.cs +++ b/Assets/PantoScripts/IntroManager.cs @@ -19,7 +19,7 @@ void Start() { speechOut = new SpeechOut(); scratchSound = gameObject.AddComponent(); - scratchSound.clip = Resources.Load("scratch"); + scratchSound.clip = Resources.Load("Sounds/scratch"); scratchSound.loop = true; scratchSound.volume = 1; lower = GameObject.Find("Panto").GetComponent(); diff --git a/Assets/PantoScripts/PantoCollider.cs b/Assets/PantoScripts/PantoCollider.cs index 8d16054..27ad834 100644 --- a/Assets/PantoScripts/PantoCollider.cs +++ b/Assets/PantoScripts/PantoCollider.cs @@ -11,7 +11,6 @@ public abstract class PantoCollider : PantoBehaviour public bool onLower = true; public bool isPassable = false; private bool registered = false; - public bool showOutline = false; protected int containingSpheres = 0; public ushort GetId() @@ -124,6 +123,7 @@ protected void CreateLineObstacle(Vector2 start, Vector2 end) Debug.LogWarning("[DualPanto] Skipping creation for object with no handles"); } pantoSync.CreateObstacle(index, id, start, end); + DrawLine(start, end); } protected void CreateBoxObstacle() { @@ -169,6 +169,7 @@ public void CreateFromCorners(Vector2[] corners) if (this.isPassable) { pantoSync.CreatePassableObstacle(index, id, corners[0], corners[1]); + DrawLine(corners[0], corners[1]); } else { @@ -186,7 +187,15 @@ public void CreateFromCorners(Vector2[] corners) void DrawLine(Vector2 start, Vector2 end) { - if (showOutline) Debug.DrawLine(new Vector3(start.x, 0, start.y), new Vector3(end.x, 0, end.y), Color.red, float.PositiveInfinity); + GameObject n = new GameObject(); + n.transform.parent = transform; + n.layer = LayerMask.NameToLayer("MixedMode"); + LineRenderer lr = n.AddComponent(); + lr.positionCount = 2; + lr.SetPosition(0, new Vector3(start.x, 5, start.y)); + lr.SetPosition(1, new Vector3(end.x, 5, end.y)); + lr.startWidth = 0.05f * GetPantoSync().gameObject.transform.localScale.magnitude; + lr.material = Resources.Load("Materials/Colliders") as Material; } public void CreateRailForLine(Vector2 start, Vector2 end, float displacement) @@ -211,6 +220,7 @@ public void CreateRail() Debug.LogWarning("[DualPanto] Skipping creation for object with no handles"); } pantoSync.CreateRail(index, id, points[0], points[1], displacement); + DrawLine(points[0], points[1]); } @@ -229,7 +239,14 @@ public void Disable() public void Remove() { GetPantoSync().RemoveObstacle(getPantoIndex(), id); - //pantoEnabled = false; + foreach (Transform child in this.transform) + { + Debug.Log(child); + if (child.GetComponent()) + { + Destroy(child.gameObject); + } + } } /// diff --git a/Assets/PantoScripts/PantoHandle.cs b/Assets/PantoScripts/PantoHandle.cs index 28263e8..c03f751 100644 --- a/Assets/PantoScripts/PantoHandle.cs +++ b/Assets/PantoScripts/PantoHandle.cs @@ -11,10 +11,9 @@ public class PantoHandle : PantoBehaviour { protected bool isUpper = true; private GameObject handledGameObject; - private float speed = 5.0f; public bool inTransition = false; private float rotation; - static Vector3 handleDefaultPosition = new Vector3(0f, 0f, 14.5f); + static Vector3 handleDefaultPosition = new Vector3(0f, 0f, 0f); private Vector3 position = handleDefaultPosition; private Vector3? godObjectPosition; protected bool userControlledPosition = true; //for debug only @@ -63,7 +62,11 @@ async public Task SwitchTo(GameObject newHandle, float newSpeed = 1.0f) if (!pantoSync.debug) { pantoSync.SetSpeed(isUpper, Mathf.Min(newSpeed, MaxMovementSpeed())); - GetPantoSync().UpdateHandlePosition(handledGameObject.transform.position, handledGameObject.transform.eulerAngles.y, isUpper); + GetPantoSync().UpdateHandlePosition(handledGameObject.transform.position, handledGameObject.transform.eulerAngles.y + 180, isUpper); + } + else + { + Debug.DrawLine(handledGameObject.transform.position + Vector3.up, position + Vector3.up, Color.red, float.PositiveInfinity); } inTransition = true; @@ -72,6 +75,7 @@ async public Task SwitchTo(GameObject newHandle, float newSpeed = 1.0f) if (time > 3000) { Debug.Log("Abandoning gameobject that couldn't be reached: " + handledGameObject.name); + inTransition = false; return; } await Task.Delay(10); @@ -146,7 +150,6 @@ public void FreeRotation() { pantoSync.UpdateHandlePosition(null, float.NaN, isUpper); userControlledRotation = true; - } /// @@ -187,6 +190,7 @@ public void Free() pantoSync.FreeHandle(isUpper); } isFrozen = false; + inTransition = false; } /// @@ -206,6 +210,11 @@ public void Freeze() isFrozen = true; } + public bool IsUserControlled() + { + return userControlledPosition; + } + float MaxMovementSpeed() { return 1.5f; @@ -223,7 +232,7 @@ public void SetPositions(Vector3 newPosition, float newRotation, Vector3? newGod GameObject debugObject = pantoSync.GetDebugObject(isUpper); debugObject.transform.eulerAngles = new Vector3(debugObject.transform.eulerAngles.x, newRotation, debugObject.transform.eulerAngles.z); } - if (pantoSync.debug && userControlledPosition) + if (pantoSync.debug)// && userControlledPosition) { GameObject debugObject = pantoSync.GetDebugObject(isUpper); debugObject.transform.position = position; @@ -261,13 +270,25 @@ async public Task TraceObjectByPoints(List cornerObjects, float spee protected void FixedUpdate() { - if (pantoSync.debug && handledGameObject != null && Vector3.Distance(handledGameObject.transform.position, position) < 0.1f) + if (pantoSync.debug) { - inTransition = false; } - if (handledGameObject != null && !inTransition && !isFrozen)// reached gameobject initially + if (pantoSync.debug && handledGameObject != null) { - GetPantoSync().UpdateHandlePosition(handledGameObject.transform.position, null, isUpper); + if (Vector3.Distance(handledGameObject.transform.position, position) < 0.1f) + { + inTransition = false; + } + else + { + Vector3 goalPos = handledGameObject.transform.position; + //GetPantoSync().UpdateHandlePosition(position + (goalPos - position) * 0.1f, handledGameObject.transform.eulerAngles.y, isUpper); + SetPositions(position + (goalPos - position) * 0.05f, handledGameObject.transform.eulerAngles.y, null); + } + } + else if (handledGameObject != null && !inTransition && !isFrozen)// reached gameobject initially + { + GetPantoSync().UpdateHandlePosition(handledGameObject.transform.position, handledGameObject.transform.eulerAngles.y, isUpper); } } diff --git a/Assets/PantoScripts/PantoPolygonCollider.cs b/Assets/PantoScripts/PantoPolygonCollider.cs index c53e553..f2757c4 100644 --- a/Assets/PantoScripts/PantoPolygonCollider.cs +++ b/Assets/PantoScripts/PantoPolygonCollider.cs @@ -9,22 +9,5 @@ public override void CreateObstacle() UpdateId(); CreatePolygonObstacle(); } - - void OnDrawGizmos() - { - Gizmos.color = Color.black; - Vector2[] points = GetComponent().points; - Transform parent = this.transform.parent; - for (int i = 0; i < points.Length - 1; i++) - { - Vector3 point = transform.TransformPoint(points[i].x, points[i].y, 0); - Vector3 nextPoint = transform.TransformPoint(points[i + 1].x, points[i + 1].y, 0); - Gizmos.DrawLine(point, nextPoint); - } - // close loop - Gizmos.DrawLine( - transform.TransformPoint(points[points.Length - 1].x, points[points.Length - 1].y, 0), - transform.TransformPoint(points[0].x, points[0].y, 0)); - } } } \ No newline at end of file diff --git a/Assets/PantoScripts/RailPolyline.cs b/Assets/PantoScripts/RailPolyline.cs index d466b6b..ea43a7c 100644 --- a/Assets/PantoScripts/RailPolyline.cs +++ b/Assets/PantoScripts/RailPolyline.cs @@ -42,7 +42,6 @@ protected override void CreateObstacle(int i) newObj.AddComponent(); } } - public class RailTrigger : MonoBehaviour { @@ -53,7 +52,7 @@ public class RailTrigger : MonoBehaviour private void Start() { audioSource = gameObject.AddComponent(); - audioSource.clip = Resources.Load("railSound"); + audioSource.clip = Resources.Load("Sounds/railSound"); audioSource.loop = true; audioSource.volume = 0; } diff --git a/Assets/PantoScripts/ScriptedMotion.cs b/Assets/PantoScripts/ScriptedMotion.cs deleted file mode 100644 index 80e8a54..0000000 --- a/Assets/PantoScripts/ScriptedMotion.cs +++ /dev/null @@ -1,18 +0,0 @@ -using UnityEngine; -namespace DualPantoFramework -{ - public class ScriptedMotion : MonoBehaviour - { - // Start is called before the first frame update - void Start() - { - - } - - // Update is called once per frame - void Update() - { - - } - } -} diff --git a/Assets/PantoScripts/Settings.cs b/Assets/PantoScripts/Settings.cs index 1fad3c9..7cd8827 100644 --- a/Assets/PantoScripts/Settings.cs +++ b/Assets/PantoScripts/Settings.cs @@ -19,19 +19,35 @@ public class Settings : PantoBehaviour public bool pockEnabled; public IntroContourStrategy introContourOption; public SpeedControlStrategy speedControlOption; + public bool visualizeMePath; + public bool visualizeItPath; void UpdateSettings() { if (!pantoSync.debug) { - Debug.Log("updating settings"); pantoSync.SetSpeedControl(tetheringEnabled, tetherFactor, innerRadius, outerRadius, speedControlOption, pockEnabled); //SyncSettings(tetherFactor, innerRadius, outerRadius, speedControlOption); } } + void CreateTrails() + { + if (visualizeItPath) + { + GameObject x = GameObject.Find("MeHandleGodObject"); + GameObject go = Instantiate(Resources.Load("ItVisualizationParticles"), x.transform) as GameObject; + } + if (visualizeMePath) + { + GameObject x = GameObject.Find("ItHandleGodObject"); + GameObject go = Instantiate(Resources.Load("MeVisualizationParticles"), x.transform) as GameObject; + } + } + void Start() { UpdateSettings(); + CreateTrails(); } } } \ No newline at end of file diff --git a/Assets/PantoScripts/Vis.cs b/Assets/PantoScripts/Vis.cs new file mode 100644 index 0000000..f4aed19 --- /dev/null +++ b/Assets/PantoScripts/Vis.cs @@ -0,0 +1,27 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +public class Vis : MonoBehaviour +{ + public LayerMask blindView; + public LayerMask enhancedBlindView; + public LayerMask developmentView; + + LayerMask[] views; + int current = 0; + + void Awake() + { + views = new LayerMask[] { blindView, enhancedBlindView, developmentView }; + } + + void Update() + { + if (Input.GetKeyDown(KeyCode.B)) + { + current++; + if (current > 2) current = 0; + Camera.main.cullingMask = views[current]; + } + } +} \ No newline at end of file diff --git a/Assets/PantoScripts/ScriptedMotion.cs.meta b/Assets/PantoScripts/Vis.cs.meta similarity index 83% rename from Assets/PantoScripts/ScriptedMotion.cs.meta rename to Assets/PantoScripts/Vis.cs.meta index 183059a..768f11d 100644 --- a/Assets/PantoScripts/ScriptedMotion.cs.meta +++ b/Assets/PantoScripts/Vis.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: dcb7cf9125691234394f1d1d5f2bedbe +guid: 6a5f9532bd4402742bb2a686c6e3d57f MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Assets/Resources/ItHandlePrefab.prefab b/Assets/Resources/ItHandlePrefab.prefab index 7e853a5..4214676 100644 --- a/Assets/Resources/ItHandlePrefab.prefab +++ b/Assets/Resources/ItHandlePrefab.prefab @@ -1,97 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &75202114810211386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 506314925867069227} - - component: {fileID: 5495783621342472347} - m_Layer: 10 - m_Name: Spot Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &506314925867069227 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 75202114810211386} - m_LocalRotation: {x: 1, y: -0, z: -0, w: 0} - m_LocalPosition: {x: 0, y: 0.005, z: 0.1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2760152653773881903} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0} ---- !u!108 &5495783621342472347 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 75202114810211386} - m_Enabled: 0 - serializedVersion: 10 - m_Type: 0 - m_Shape: 0 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_Range: 20 - m_SpotAngle: 25 - m_InnerSpotAngle: 2 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 --- !u!1 &4226871023443672151 GameObject: m_ObjectHideFlags: 0 @@ -101,7 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2760152653773881903} - m_Layer: 10 + m_Layer: 9 m_Name: ItHandlePrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -119,7 +27,6 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 506314925867069227} - {fileID: 3257141765365880328} m_Father: {fileID: 0} m_RootOrder: 0 @@ -131,78 +38,96 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 2760152653773881903} m_Modifications: - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalPosition.x value: -0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalRotation.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalRotation.w value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_RootOrder - value: 1 + value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 180 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalScale.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalScale.z value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_LocalScale.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -927199367670048503, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -927199367670048503, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_Name value: it_handle objectReference: {fileID: 0} - - target: {fileID: -927199367670048503, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: -927199367670048503, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_Layer - value: 10 + value: 9 objectReference: {fileID: 0} - - target: {fileID: 2534866581884222612, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + - target: {fileID: 2534866581884222612, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} propertyPath: m_Layer - value: 10 + value: 9 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} --- !u!4 &3257141765365880328 stripped Transform: - m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, type: 3} + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ed5e3c6042f0734b93e9b71b5b2729c, + type: 3} m_PrefabInstance: {fileID: 7514543926601153810} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Materials/Colliders.mat b/Assets/Resources/Materials/Colliders.mat new file mode 100644 index 0000000..89f8ba5 --- /dev/null +++ b/Assets/Resources/Materials/Colliders.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Colliders + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} + m_BuildTextureStacks: [] diff --git a/Assets/Resources/Materials/Colliders.mat.meta b/Assets/Resources/Materials/Colliders.mat.meta new file mode 100644 index 0000000..a434bb2 --- /dev/null +++ b/Assets/Resources/Materials/Colliders.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50258792a662fd405815adf86f4b0fab +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Materials/TrailRenderMaterial.mat b/Assets/Resources/Materials/TrailRenderMaterial.mat new file mode 100644 index 0000000..46d12ac --- /dev/null +++ b/Assets/Resources/Materials/TrailRenderMaterial.mat @@ -0,0 +1,79 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TrailRenderMaterial + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 0 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 0 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Resources/Materials/TrailRenderMaterial.mat.meta b/Assets/Resources/Materials/TrailRenderMaterial.mat.meta new file mode 100644 index 0000000..c5cfc5d --- /dev/null +++ b/Assets/Resources/Materials/TrailRenderMaterial.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7859534068d254e47a473a3741714205 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/MeHandlePrefab.prefab b/Assets/Resources/MeHandlePrefab.prefab index 0727c6c..ede25dc 100644 --- a/Assets/Resources/MeHandlePrefab.prefab +++ b/Assets/Resources/MeHandlePrefab.prefab @@ -1,97 +1,5 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &75202114810211386 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 506314925867069227} - - component: {fileID: 5495783621342472347} - m_Layer: 10 - m_Name: Spot Light - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &506314925867069227 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 75202114810211386} - m_LocalRotation: {x: 1, y: -0, z: -0, w: 0} - m_LocalPosition: {x: 0, y: 0.005, z: 0.1} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 2760152653773881903} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0} ---- !u!108 &5495783621342472347 -Light: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 75202114810211386} - m_Enabled: 0 - serializedVersion: 10 - m_Type: 0 - m_Shape: 0 - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 1 - m_Range: 20 - m_SpotAngle: 25 - m_InnerSpotAngle: 2 - m_CookieSize: 10 - m_Shadows: - m_Type: 0 - m_Resolution: -1 - m_CustomResolution: -1 - m_Strength: 1 - m_Bias: 0.05 - m_NormalBias: 0.4 - m_NearPlane: 0.2 - m_CullingMatrixOverride: - e00: 1 - e01: 0 - e02: 0 - e03: 0 - e10: 0 - e11: 1 - e12: 0 - e13: 0 - e20: 0 - e21: 0 - e22: 1 - e23: 0 - e30: 0 - e31: 0 - e32: 0 - e33: 1 - m_UseCullingMatrixOverride: 0 - m_Cookie: {fileID: 0} - m_DrawHalo: 0 - m_Flare: {fileID: 0} - m_RenderMode: 0 - m_CullingMask: - serializedVersion: 2 - m_Bits: 4294967295 - m_RenderingLayerMask: 1 - m_Lightmapping: 4 - m_LightShadowCasterMode: 0 - m_AreaSize: {x: 1, y: 1} - m_BounceIntensity: 1 - m_ColorTemperature: 6570 - m_UseColorTemperature: 0 - m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} - m_UseBoundingSphereOverride: 0 - m_ShadowRadius: 0 - m_ShadowAngle: 0 --- !u!1 &4226871023443672151 GameObject: m_ObjectHideFlags: 0 @@ -101,7 +9,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2760152653773881903} - m_Layer: 10 + m_Layer: 9 m_Name: MeHandlePrefab m_TagString: Untagged m_Icon: {fileID: 0} @@ -119,7 +27,6 @@ Transform: m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 506314925867069227} - {fileID: 8701503991925448453} m_Father: {fileID: 0} m_RootOrder: 0 @@ -131,78 +38,96 @@ PrefabInstance: m_Modification: m_TransformParent: {fileID: 2760152653773881903} m_Modifications: - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalPosition.x value: -0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalRotation.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalRotation.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalRotation.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalRotation.w value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_RootOrder - value: 1 + value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 180 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalScale.x value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalScale.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_LocalScale.z value: 0.5 objectReference: {fileID: 0} - - target: {fileID: -927199367670048503, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -927199367670048503, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_Name value: me_handle objectReference: {fileID: 0} - - target: {fileID: -927199367670048503, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: -927199367670048503, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_Layer - value: 10 + value: 9 objectReference: {fileID: 0} - - target: {fileID: 2534866581884222612, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + - target: {fileID: 2534866581884222612, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} propertyPath: m_Layer - value: 10 + value: 9 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} --- !u!4 &8701503991925448453 stripped Transform: - m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, type: 3} + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: f7f3489368304c043ada8d5cfc28a785, + type: 3} m_PrefabInstance: {fileID: 4448227163954852895} m_PrefabAsset: {fileID: 0} diff --git a/Assets/Resources/Panto.prefab b/Assets/Resources/Panto.prefab index 62292a2..e0cdc96 100644 --- a/Assets/Resources/Panto.prefab +++ b/Assets/Resources/Panto.prefab @@ -90,7 +90,7 @@ GameObject: - component: {fileID: 2307693089428900514} - component: {fileID: 5763654064626165513} - component: {fileID: 4485703323886267288} - m_Layer: 10 + m_Layer: 9 m_Name: DoerteWorkingArea m_TagString: Untagged m_Icon: {fileID: 0} @@ -174,6 +174,7 @@ GameObject: - component: {fileID: 826605487606422808} - component: {fileID: 826605487606422812} - component: {fileID: 108249268259716505} + - component: {fileID: 3801158577767249954} m_Layer: 10 m_Name: Panto m_TagString: Untagged @@ -199,6 +200,7 @@ Transform: - {fileID: 4448097317320992897} - {fileID: 2307693089428900514} - {fileID: 7051017208497526617} + - {fileID: 1305547398829918299} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -248,7 +250,6 @@ MonoBehaviour: debugRotationSpeed: 10 toggleVisionKey: 98 showRawValues: 1 - isBlindModeOn: 0 --- !u!114 &826605487606422812 MonoBehaviour: m_ObjectHideFlags: 0 @@ -280,6 +281,29 @@ MonoBehaviour: pockEnabled: 0 introContourOption: 0 speedControlOption: 0 + visualizeMePath: 0 + visualizeItPath: 0 +--- !u!114 &3801158577767249954 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 826605487606422809} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6a5f9532bd4402742bb2a686c6e3d57f, type: 3} + m_Name: + m_EditorClassIdentifier: + blindView: + serializedVersion: 2 + m_Bits: 512 + enhancedBlindView: + serializedVersion: 2 + m_Bits: 1536 + developmentView: + serializedVersion: 2 + m_Bits: 4294967295 --- !u!1 &875243548349468180 GameObject: m_ObjectHideFlags: 0 @@ -438,6 +462,102 @@ MonoBehaviour: m_VerticalOverflow: 0 m_LineSpacing: 1 m_Text: '-' +--- !u!1 &1147493856053161812 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1305547398829918299} + - component: {fileID: 6488281642945532573} + - component: {fileID: 4749783678075532512} + - component: {fileID: 7514010203271449956} + m_Layer: 9 + m_Name: VisualizationPlane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!4 &1305547398829918299 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1147493856053161812} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.29, z: -9.76} + m_LocalScale: {x: 3, y: 1, z: 1.5} + m_Children: [] + m_Father: {fileID: 826605487606422813} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6488281642945532573 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1147493856053161812} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4749783678075532512 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1147493856053161812} + 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: 2100000, guid: 7859534068d254e47a473a3741714205, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 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!114 &7514010203271449956 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1147493856053161812} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8175f47702cce734aa3f4f27c20c1738, type: 3} + m_Name: + m_EditorClassIdentifier: + decayRate: 0.001 + computeShader: {fileID: 7200000, guid: f0da9c9da5731a44ba5147d1e405dc65, type: 3} --- !u!1 &1278281986026192329 GameObject: m_ObjectHideFlags: 0 @@ -1117,7 +1237,7 @@ GameObject: - component: {fileID: 4615792043202523929} - component: {fileID: 2443863139540227316} - component: {fileID: 8322132819214234425} - m_Layer: 10 + m_Layer: 9 m_Name: EmberWorkingArea m_TagString: Untagged m_Icon: {fileID: 0} @@ -1391,12 +1511,6 @@ MonoBehaviour: currentIOFps: {fileID: 7289043884047714474} currentPhysicsFps: {fileID: 5388696195647627332} currentLowerHandle: {fileID: 6909044344685383625} - blindView: - serializedVersion: 2 - m_Bits: 1024 - developmentView: - serializedVersion: 2 - m_Bits: 4294967295 --- !u!1 &3402125159651419077 GameObject: m_ObjectHideFlags: 0 @@ -2039,7 +2153,7 @@ GameObject: - component: {fileID: 4448097317320992897} - component: {fileID: 334029352965873684} - component: {fileID: 3117561587551626614} - m_Layer: 10 + m_Layer: 9 m_Name: EmberWorkingAreaWhite m_TagString: Untagged m_Icon: {fileID: 0} @@ -2251,7 +2365,7 @@ Camera: m_Depth: -1 m_CullingMask: serializedVersion: 2 - m_Bits: 1024 + m_Bits: 512 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -2981,7 +3095,7 @@ GameObject: - component: {fileID: 7051017208497526617} - component: {fileID: 1024537503750043979} - component: {fileID: 4794782899197110579} - m_Layer: 10 + m_Layer: 9 m_Name: DoerteWorkingAreaWhite m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/Resources/railSound.wav b/Assets/Resources/Sounds/railSound.wav similarity index 100% rename from Assets/Resources/railSound.wav rename to Assets/Resources/Sounds/railSound.wav diff --git a/Assets/Resources/railSound.wav.meta b/Assets/Resources/Sounds/railSound.wav.meta similarity index 100% rename from Assets/Resources/railSound.wav.meta rename to Assets/Resources/Sounds/railSound.wav.meta diff --git a/Assets/Resources/Sounds/scratch.wav b/Assets/Resources/Sounds/scratch.wav new file mode 100644 index 0000000..9444367 Binary files /dev/null and b/Assets/Resources/Sounds/scratch.wav differ diff --git a/Assets/Resources/scratch.wav.meta b/Assets/Resources/Sounds/scratch.wav.meta similarity index 100% rename from Assets/Resources/scratch.wav.meta rename to Assets/Resources/Sounds/scratch.wav.meta diff --git a/Assets/Resources/UIManager.cs b/Assets/Resources/UIManager.cs index 8bbd27c..69ad9c2 100644 --- a/Assets/Resources/UIManager.cs +++ b/Assets/Resources/UIManager.cs @@ -20,8 +20,6 @@ public class UIManager : MonoBehaviour public Text currentPhysicsFps; public Text currentLowerHandle; DateTime lastHeartbeat; - public LayerMask blindView; - public LayerMask developmentView; void Start() { lastHeartbeat = DateTime.Now; @@ -39,15 +37,6 @@ void Update() TimeSpan ts = (DateTime.Now - lastHeartbeat); currentHeartbeat.text = ((int)ts.TotalMilliseconds).ToString(); currentHeartbeat.color = ts.TotalMilliseconds > 1000 ? Color.red : Color.green; - - if (Input.GetKeyDown(KeyCode.B)) - { - Camera.main.cullingMask = blindView; - } - if (Input.GetKeyDown(KeyCode.D)) - { - Camera.main.cullingMask = developmentView; - } } public void ShowDebugValuesWindow() { diff --git a/Assets/Resources/Visualization.meta b/Assets/Resources/Visualization.meta new file mode 100644 index 0000000..96e9509 --- /dev/null +++ b/Assets/Resources/Visualization.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 89e43a538e8c41faf91ad9b444d5e3a4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/VisualizationParticles.prefab b/Assets/Resources/Visualization/ItVisualizationParticles.prefab similarity index 99% rename from Assets/Resources/VisualizationParticles.prefab rename to Assets/Resources/Visualization/ItVisualizationParticles.prefab index 946a99e..81659f5 100644 --- a/Assets/Resources/VisualizationParticles.prefab +++ b/Assets/Resources/Visualization/ItVisualizationParticles.prefab @@ -12,8 +12,8 @@ GameObject: - component: {fileID: 5786380867649445570} - component: {fileID: 5786380867649445571} m_Layer: 10 - m_Name: VisualizationParticles - m_TagString: BlindTrailRenderer + m_Name: ItVisualizationParticles + m_TagString: ItTrail m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 @@ -222,7 +222,7 @@ ParticleSystem: serializedVersion: 2 minMaxState: 0 minColor: {r: 1, g: 1, b: 1, a: 1} - maxColor: {r: 0, g: 0.06392897, b: 0.509434, a: 0.34901962} + maxColor: {r: 0, g: 0.06392897, b: 0.509434, a: 1} maxGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} @@ -860,7 +860,7 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 EmissionModule: - enabled: 0 + enabled: 1 serializedVersion: 4 rateOverTime: serializedVersion: 2 @@ -1312,9 +1312,9 @@ ParticleSystem: maxColor: {r: 1, g: 1, b: 1, a: 1} maxGradient: serializedVersion: 2 - key0: {r: 0, g: 0, b: 0.5188679, a: 0.20784314} - key1: {r: 0, g: 0, b: 0, a: 0.050980393} - key2: {r: 0, g: 0, b: 0, a: 0.019607844} + key0: {r: 0, g: 0, b: 0.5188679, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} key3: {r: 0, g: 0, b: 0, a: 0} key4: {r: 0, g: 0, b: 0, a: 0} key5: {r: 0, g: 0, b: 0, a: 0} @@ -1322,15 +1322,15 @@ ParticleSystem: key7: {r: 0, g: 0, b: 0, a: 0} ctime0: 0 ctime1: 65535 - ctime2: 0 + ctime2: 65535 ctime3: 0 ctime4: 0 ctime5: 0 ctime6: 0 ctime7: 0 atime0: 0 - atime1: 22937 - atime2: 47031 + atime1: 65535 + atime2: 65535 atime3: 65535 atime4: 0 atime5: 0 @@ -1338,7 +1338,7 @@ ParticleSystem: atime7: 0 m_Mode: 0 m_NumColorKeys: 2 - m_NumAlphaKeys: 4 + m_NumAlphaKeys: 2 minGradient: serializedVersion: 2 key0: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/Resources/Visualization/ItVisualizationParticles.prefab.meta b/Assets/Resources/Visualization/ItVisualizationParticles.prefab.meta new file mode 100644 index 0000000..75d1ec5 --- /dev/null +++ b/Assets/Resources/Visualization/ItVisualizationParticles.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a41499f8835662069bc9973d50f0ee39 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Visualization/MeVisualizationParticles.prefab b/Assets/Resources/Visualization/MeVisualizationParticles.prefab new file mode 100644 index 0000000..1f06142 --- /dev/null +++ b/Assets/Resources/Visualization/MeVisualizationParticles.prefab @@ -0,0 +1,4823 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &5786380867649445569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5786380867649445568} + - component: {fileID: 5786380867649445570} + - component: {fileID: 5786380867649445571} + m_Layer: 10 + m_Name: MeVisualizationParticles + m_TagString: MeTrail + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5786380867649445568 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5786380867649445569} + 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: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &5786380867649445570 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5786380867649445569} + serializedVersion: 6 + lengthInSec: 100 + simulationSpeed: 1 + stopAction: 0 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + looping: 1 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 1 + useRigidbodyForVelocity: 1 + startDelay: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + moveWithTransform: 1 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 3 + scalar: 100 + minScalar: 80 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 5 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startColor: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 0.030984411, g: 0.3584906, b: 0, a: 0.34901962} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + startSize: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startSizeZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotationY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startRotation: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + randomizeRotationDirection: 0 + maxNumParticles: 10000 + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + ShapeModule: + serializedVersion: 6 + enabled: 0 + type: 10 + angle: 25 + length: 5 + boxThickness: {x: 0, y: 0, z: 0} + radiusThickness: 1 + donutRadius: 0.2 + m_Position: {x: 0, y: 0, z: 0} + m_Rotation: {x: 0, y: 0, z: 0} + m_Scale: {x: 1, y: 1, z: 1} + placementMode: 0 + m_MeshMaterialIndex: 0 + m_MeshNormalOffset: 0 + m_MeshSpawn: + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Mesh: {fileID: 0} + m_MeshRenderer: {fileID: 0} + m_SkinnedMeshRenderer: {fileID: 0} + m_Sprite: {fileID: 0} + m_SpriteRenderer: {fileID: 0} + m_UseMeshMaterialIndex: 0 + m_UseMeshColors: 1 + alignToDirection: 0 + m_Texture: {fileID: 0} + m_TextureClipChannel: 3 + m_TextureClipThreshold: 0 + m_TextureUVChannel: 0 + m_TextureColorAffectsParticles: 1 + m_TextureAlphaAffectsParticles: 1 + m_TextureBilinearFiltering: 0 + randomDirectionAmount: 0 + sphericalDirectionAmount: 0 + randomPositionAmount: 0 + radius: + value: 1 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + arc: + value: 360 + mode: 0 + spread: 0 + speed: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + EmissionModule: + enabled: 1 + serializedVersion: 4 + rateOverTime: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 10 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rateOverDistance: + serializedVersion: 2 + minMaxState: 0 + scalar: 5 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_BurstCount: 0 + m_Bursts: [] + SizeModule: + enabled: 1 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 100 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.013511658 + inSlope: -0.044500563 + outSlope: -0.044500563 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0.13067149 + - serializedVersion: 3 + time: 0.4895176 + value: 0.118537664 + inSlope: 0.72333586 + outSlope: 0.72333586 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.14721587 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 3.4318166 + outSlope: 3.4318166 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.28205687 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + RotationModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + ColorModule: + enabled: 1 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 0.18806745, g: 0.5178302, b: 0.19197376, a: 1} + key1: {r: 1, g: 1, b: 1, a: 0} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 193 + atime1: 65535 + atime2: 65535 + atime3: 65535 + atime4: 65535 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + UVModule: + serializedVersion: 2 + enabled: 0 + mode: 0 + timeMode: 0 + fps: 30 + frameOverTime: + serializedVersion: 2 + minMaxState: 1 + scalar: 0.9999 + minScalar: 0.9999 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + startFrame: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedRange: {x: 0, y: 1} + tilesX: 1 + tilesY: 1 + animationType: 0 + rowIndex: 0 + cycles: 1 + uvChannelMask: -1 + rowMode: 1 + sprites: + - sprite: {fileID: 0} + flipU: 0 + flipV: 0 + VelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetX: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetY: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + orbitalOffsetZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + radial: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + speedModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + InheritVelocityModule: + enabled: 0 + m_Mode: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} + ForceModule: + enabled: 1 + x: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0.01 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 3 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 3 + scalar: 0.01 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + inWorldSpace: 0 + randomizePerFrame: 0 + ExternalForcesModule: + serializedVersion: 2 + enabled: 0 + multiplierCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + influenceFilter: 0 + influenceMask: + serializedVersion: 2 + m_Bits: 4294967295 + influenceList: [] + ClampVelocityModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + magnitude: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxis: 0 + inWorldSpace: 0 + multiplyDragByParticleSize: 1 + multiplyDragByParticleVelocity: 1 + dampen: 0 + drag: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + NoiseModule: + enabled: 0 + strength: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthY: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + strengthZ: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + frequency: 0.5 + damping: 1 + octaves: 1 + octaveMultiplier: 0.5 + octaveScale: 2 + quality: 2 + scrollSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remap: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapY: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapZ: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1 + inSlope: 0 + outSlope: 2 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 2 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + remapEnabled: 0 + positionAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + rotationAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + sizeAmount: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + SizeBySpeedModule: + enabled: 0 + curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + z: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + range: {x: 0, y: 1} + separateAxes: 0 + RotationBySpeedModule: + enabled: 0 + x: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + y: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + curve: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.7853982 + minScalar: 0.7853982 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + separateAxes: 0 + range: {x: 0, y: 1} + ColorBySpeedModule: + enabled: 0 + gradient: + serializedVersion: 2 + minMaxState: 1 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 3 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + plane0: {fileID: 0} + plane1: {fileID: 0} + plane2: {fileID: 0} + plane3: {fileID: 0} + plane4: {fileID: 0} + plane5: {fileID: 0} + m_Dampen: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Bounce: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_EnergyLossOnCollision: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minKillSpeed: 0 + maxKillSpeed: 10000 + radiusScale: 1 + collidesWith: + serializedVersion: 2 + m_Bits: 4294967295 + maxCollisionShapes: 256 + quality: 0 + voxelSize: 0.5 + collisionMessages: 0 + collidesWithDynamic: 1 + interiorCollisions: 0 + TriggerModule: + enabled: 0 + collisionShape0: {fileID: 0} + collisionShape1: {fileID: 0} + collisionShape2: {fileID: 0} + collisionShape3: {fileID: 0} + collisionShape4: {fileID: 0} + collisionShape5: {fileID: 0} + inside: 1 + outside: 0 + enter: 0 + exit: 0 + radiusScale: 1 + SubModule: + serializedVersion: 2 + enabled: 0 + subEmitters: + - serializedVersion: 3 + emitter: {fileID: 0} + type: 0 + properties: 0 + emitProbability: 1 + LightsModule: + enabled: 0 + ratio: 0 + light: {fileID: 0} + randomDistribution: 1 + color: 1 + range: 1 + intensity: 1 + rangeCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + intensityCurve: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + maxLights: 20 + TrailModule: + enabled: 0 + mode: 0 + ratio: 1 + lifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minVertexDistance: 0.2 + textureMode: 0 + ribbonCount: 1 + shadowBias: 0.5 + worldSpace: 0 + dieWithParticles: 1 + sizeAffectsWidth: 1 + sizeAffectsLifetime: 0 + inheritParticleColor: 1 + generateLightingData: 0 + splitSubEmitterRibbons: 0 + attachRibbonsToTransform: 0 + colorOverLifetime: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + widthOverTrail: + serializedVersion: 2 + minMaxState: 0 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorOverTrail: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + CustomDataModule: + enabled: 0 + mode0: 0 + vectorComponentCount0: 4 + color0: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel0: Color + vector0_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_0: X + vector0_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_1: Y + vector0_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_2: Z + vector0_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel0_3: W + mode1: 0 + vectorComponentCount1: 4 + color1: + serializedVersion: 2 + minMaxState: 0 + minColor: {r: 1, g: 1, b: 1, a: 1} + maxColor: {r: 1, g: 1, b: 1, a: 1} + maxGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + minGradient: + serializedVersion: 2 + key0: {r: 1, g: 1, b: 1, a: 1} + key1: {r: 1, g: 1, b: 1, a: 1} + key2: {r: 0, g: 0, b: 0, a: 0} + key3: {r: 0, g: 0, b: 0, a: 0} + key4: {r: 0, g: 0, b: 0, a: 0} + key5: {r: 0, g: 0, b: 0, a: 0} + key6: {r: 0, g: 0, b: 0, a: 0} + key7: {r: 0, g: 0, b: 0, a: 0} + ctime0: 0 + ctime1: 65535 + ctime2: 0 + ctime3: 0 + ctime4: 0 + ctime5: 0 + ctime6: 0 + ctime7: 0 + atime0: 0 + atime1: 65535 + atime2: 0 + atime3: 0 + atime4: 0 + atime5: 0 + atime6: 0 + atime7: 0 + m_Mode: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + colorLabel1: Color + vector1_0: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_0: X + vector1_1: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_1: Y + vector1_2: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_2: Z + vector1_3: + serializedVersion: 2 + minMaxState: 0 + scalar: 0 + minScalar: 0 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + vectorLabel1_3: W +--- !u!199 &5786380867649445571 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5786380867649445569} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 2b832e01331e707218f323f3d35ef188, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 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_RenderMode: 0 + m_SortMode: 0 + m_MinParticleSize: 0 + m_MaxParticleSize: 0.5 + m_CameraVelocityScale: 0 + m_VelocityScale: 0 + m_LengthScale: 2 + m_SortingFudge: 0 + m_NormalDirection: 1 + m_ShadowBias: 0 + m_RenderAlignment: 0 + m_Pivot: {x: 0, y: 0, z: 0} + m_Flip: {x: 0, y: 0, z: 0} + m_UseCustomVertexStreams: 1 + m_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_VertexStreams: 000304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MaskInteraction: 0 diff --git a/Assets/Resources/VisualizationParticles.prefab.meta b/Assets/Resources/Visualization/MeVisualizationParticles.prefab.meta similarity index 100% rename from Assets/Resources/VisualizationParticles.prefab.meta rename to Assets/Resources/Visualization/MeVisualizationParticles.prefab.meta diff --git a/Assets/Resources/Visualization/ParticleVisualizatonShader.shader b/Assets/Resources/Visualization/ParticleVisualizatonShader.shader new file mode 100644 index 0000000..1233fe0 --- /dev/null +++ b/Assets/Resources/Visualization/ParticleVisualizatonShader.shader @@ -0,0 +1,62 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "Custom/ParticleVisualizatonShader" +{ + Properties { + _MainTex ("Base (RGB)", 2D) = "white" {} + } + + SubShader { + Tags { "Queue"="Transparent" } + + Pass { + Stencil { + Ref 2 + Comp NotEqual + Pass Replace + } + + Blend SrcAlpha OneMinusSrcAlpha + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + + uniform sampler2D _MainTex; + + struct appdata_t { + fixed4 color : COLOR; + float4 vertex : POSITION; + half2 texcoord : TEXCOORD0; + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f { + half4 pos : POSITION; + half2 uv : TEXCOORD0; + fixed4 color : COLOR; + }; + + v2f vert(appdata_t v) { + v2f o; + o.pos = UnityObjectToClipPos (v.vertex); + half2 uv = MultiplyUV( UNITY_MATRIX_TEXTURE0, v.texcoord ); + o.uv = uv; + o.color = v.color; + return o; + } + + half4 frag (v2f i) : COLOR { + half4 finalColor = i.color; + finalColor.a = min(tex2D(_MainTex, i.uv).a, i.color.a); + if (finalColor.a == 0.0) + discard; + return finalColor; + } + ENDCG + } + + } + Fallback off +} \ No newline at end of file diff --git a/Assets/Resources/Visualization/ParticleVisualizatonShader.shader.meta b/Assets/Resources/Visualization/ParticleVisualizatonShader.shader.meta new file mode 100644 index 0000000..c8b0a60 --- /dev/null +++ b/Assets/Resources/Visualization/ParticleVisualizatonShader.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0d9d8a69c14d37d47be8b37cc9c9eb86 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Visualization/Path.compute b/Assets/Resources/Visualization/Path.compute new file mode 100644 index 0000000..f4a9c14 --- /dev/null +++ b/Assets/Resources/Visualization/Path.compute @@ -0,0 +1,142 @@ +//// Each #kernel tells which function to compile; you can have many kernels + +float decayRate; +int width; +int height; +RWTexture2D Result; + +float l_x; +float l_y; +float l_last_x; +float l_last_y; +float u_x; +float u_y; +float u_last_x; +float u_last_y; +bool moving; + +float Line( float2 p, float2 a, float2 b ) +{ + float2 pa = p-a, ba = b-a; + float h = saturate( dot(pa,ba)/dot(ba,ba) ); + float2 d = pa - ba * h; + return dot(d, d); +} + +float ease_in_quad(float x) { + float t = x; float b = 0; float c = 1; float d = 1; + return c*(t/=d)*t + b; +} + +#pragma kernel LineKernel +[numthreads(8,8,1)] +void LineKernel(uint3 id: SV_DispatchThreadID) +{ + if (moving) { + float2 uv = float2((float) id.x / width, (float) id.y / height); + float k = Line(uv, float2(u_x, u_y), float2(u_last_x, u_last_y)); + float thickness = 0.0001; + if (k < thickness) + Result[id.xy] = float4(0, 1, 0, 1); + } + if (moving) { + float2 uv = float2((float) id.x / width, (float) id.y / height); + float k = Line(uv, float2(l_x, l_y), float2(l_last_x, l_last_y)); + float thickness = 0.0001; + if (k < thickness) + Result[id.xy] = float4(0, 0, 1, 1); + } +} + +#pragma kernel Diffuse +RWTexture2D DiffuseResult; +bool doIt; + +[numthreads(8,8,1)] +void Diffuse(uint3 id : SV_DispatchThreadID) +{ + float4 originalCol = Result[id.xy]; +#if 0 + float maxAlpha = 0; + if (doIt) { + int kernelSize = 1; + for (int offsetX = -kernelSize; offsetX <= kernelSize; offsetX++) { + for (int offsetY = -kernelSize; offsetY <= kernelSize; offsetY++) { + int sampleX = min(width-1, max(0, id.x + offsetX)); + int sampleY = min(height-1, max(0, id.y + offsetY)); + maxAlpha = max(maxAlpha, Result[int2(sampleX,sampleY)].a); + // maxAlpha += Result[int2(sampleX,sampleY)].a; + } + } + } else { + maxAlpha = Result[id.xy].a; + } + + // finalCol = lerp(finalCol, blurredCol, 0); + // finalCol = float4(finalCol.rgb, max(0, finalCol.a - 0.01)); + // Result[id.xy] = finalCol; + + //float4 blurredCol = sum / ((kernelSize * 2 + 1) * (kernelSize * 2 + 1) - 0.1); + // blurredCol = originalCol * (1 - diffuseWeight) + blurredCol * (diffuseWeight); +#elif 0 + float4 sum = 0; + int kernelSize = 1; + int step = 1; + for (int x = -kernelSize; x <= kernelSize; x += step) { + for (int y = -kernelSize; y <= kernelSize; y += step) { + int sampleX = min(width-1, max(0, id.x + x)); + int sampleY = min(height-1, max(0, id.y + y)); + sum += Result[int2(sampleX,sampleY)]; + } + } + int dimSize = (kernelSize / step * 2 + 1); + float4 blurredCol = sum / (dimSize * dimSize); +#else + float Offsets[11] = + { + -5, + -4, + -3, + -2, + -1, + 0, + 1, + 2, + 3, + 4, + 5, + }; + + float Weights[11][11] = + { + {0.007959,0.008049,0.00812,0.008171,0.008202,0.008212,0.008202,0.008171,0.00812,0.008049,0.007959}, + {0.008049,0.00814,0.008212,0.008263,0.008294,0.008305,0.008294,0.008263,0.008212,0.00814,0.008049}, + {0.00812,0.008212,0.008284,0.008336,0.008367,0.008378,0.008367,0.008336,0.008284,0.008212,0.00812}, + {0.008171,0.008263,0.008336,0.008388,0.00842,0.00843,0.00842,0.008388,0.008336,0.008263,0.008171}, + {0.008202,0.008294,0.008367,0.00842,0.008451,0.008462,0.008451,0.00842,0.008367,0.008294,0.008202}, + {0.008212,0.008305,0.008378,0.00843,0.008462,0.008473,0.008462,0.00843,0.008378,0.008305,0.008212}, + {0.008202,0.008294,0.008367,0.00842,0.008451,0.008462,0.008451,0.00842,0.008367,0.008294,0.008202}, + {0.008171,0.008263,0.008336,0.008388,0.00842,0.00843,0.00842,0.008388,0.008336,0.008263,0.008171}, + {0.00812,0.008212,0.008284,0.008336,0.008367,0.008378,0.008367,0.008336,0.008284,0.008212,0.00812}, + {0.008049,0.00814,0.008212,0.008263,0.008294,0.008305,0.008294,0.008263,0.008212,0.00814,0.008049}, + {0.007959,0.008049,0.00812,0.008171,0.008202,0.008212,0.008202,0.008171,0.00812,0.008049,0.007959}, + }; + + float4 blurredCol = {0, 0, 0, 0}; + for (int x = 0; x < 11; x++) + { + for (int y = 0; y < 11; y++) + { + int sampleX = min(width-1, max(0, id.x + Offsets[x])); + int sampleY = min(height-1, max(0, id.y + Offsets[y])); + blurredCol += Result[int2(sampleX, sampleY)] * Weights[x][y]; + } + } +#endif + + //DiffuseResult[id.xy] + DiffuseResult[id.xy] = float4(saturate(blurredCol.rgb), saturate(blurredCol.a - decayRate)); + //DiffuseResult[id.xy] = saturate(pow(saturate(blurredCol * 1.021), 1.021)); + //float alpha = saturate(maxAlpha - 0.002); + //DiffuseResult[id.xy] = float4(0, alpha, 0, alpha); +} diff --git a/Assets/Resources/Visualization/Path.compute.meta b/Assets/Resources/Visualization/Path.compute.meta new file mode 100644 index 0000000..acc094a --- /dev/null +++ b/Assets/Resources/Visualization/Path.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0da9c9da5731a44ba5147d1e405dc65 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 4 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Visualization/PathShader.compute b/Assets/Resources/Visualization/PathShader.compute new file mode 100644 index 0000000..c1485de --- /dev/null +++ b/Assets/Resources/Visualization/PathShader.compute @@ -0,0 +1,172 @@ +//// Each #kernel tells which function to compile; you can have many kernels +//#pragma kernel CSMain + +//// Create a RenderTexture with enableRandomWrite flag and set it +//// with cs.SetTexture +//RWTexture2D Result; + +//[numthreads(8,8,1)] +//void CSMain (uint3 id : SV_DispatchThreadID) +//{ + //// TODO: insert actual code here! + //Result[id.xy] = float4(id.x & id.y, (id.x & 15)/15.0, (id.y & 15)/15.0, 0.0); +//} + +//#pragma kernel Diffuse + +//float decayRate = 1; +//float diffuseRate = 1; +//int width = 1920; +//int height = 1080; +//RWTexture2D DiffusedTrailMap; + +//[numthreads(8,8,1)] +//void Diffuse (uint3 id : SV_DispatchThreadID) +//{ + //if (id.x < 0 || id.x >= (uint)width || id.y < 0 || id.y >= (uint)height) { + //return; + //} + + //float4 sum = 0; + //float4 originalCol = Result[id.xy]; + //// 3x3 blur + //for (int offsetX = -1; offsetX <= 1; offsetX ++) { + //for (int offsetY = -1; offsetY <= 1; offsetY ++) { + //int sampleX = min(width-1, max(0, id.x + offsetX)); + //int sampleY = min(height-1, max(0, id.y + offsetY)); + //sum += Result[int2(sampleX,sampleY)]; + //} + //} + + //float4 blurredCol = sum / 9; + //float diffuseWeight = saturate(diffuseRate * 0.16); + //blurredCol = originalCol * (1 - diffuseWeight) + blurredCol * (diffuseWeight); + + //DiffusedTrailMap[id.xy] = blurredCol; // * saturate(1 - decayRate * deltaTime); +//} +/* +#pragma kernel Update + +RWTexture2D TrailMap; +int width; +int height; + +float trailWeight; + +float deltaTime; +float time; + +// Hash function www.cs.ubc.ca/~rbridson/docs/schechter-sca08-turbulence.pdf +uint hash(uint state) +{ + state ^= 2747636419u; + state *= 2654435769u; + state ^= state >> 16; + state *= 2654435769u; + state ^= state >> 16; + state *= 2654435769u; + return state; +} + +float scaleToRange01(uint state) +{ + return state / 4294967295.0; +} + + +[numthreads(16,1,1)] +void Update (uint3 id : SV_DispatchThreadID) +{ + if (id.x >= numAgents) { + return; + } + + + Agent agent = agents[id.x]; + SpeciesSettings settings = speciesSettings[agent.speciesIndex]; + float2 pos = agent.position; + + uint random = hash(pos.y * width + pos.x + hash(id.x + time * 100000)); + + // Steer based on sensory data + float sensorAngleRad = settings.sensorAngleDegrees * (3.1415 / 180); + float weightForward = sense(agent, settings, 0); + float weightLeft = sense(agent, settings, sensorAngleRad); + float weightRight = sense(agent, settings, -sensorAngleRad); + + + float randomSteerStrength = scaleToRange01(random); + + // Continue in same direction + if (weightForward > weightLeft && weightForward > weightRight) { + agents[id.x].angle += 0; + } + else if (weightForward < weightLeft && weightForward < weightRight) { + agents[id.x].angle += (randomSteerStrength - 0.5) * 2 * settings.turnSpeed * deltaTime; + } + + // Turn right + else if (weightRight > weightLeft) { + agents[id.x].angle -= randomSteerStrength * settings.turnSpeed * deltaTime; + } + // Turn left + else if (weightLeft > weightRight) { + agents[id.x].angle += randomSteerStrength * settings.turnSpeed * deltaTime; + } + // Turn randomly + else { + + } + + // Update position + float2 direction = float2(cos(agent.angle), sin(agent.angle)); + float2 newPos = agent.position + direction * deltaTime * settings.moveSpeed; + + + // Clamp position to map boundaries, and pick new random move dir if hit boundary + if (newPos.x < 0 || newPos.x >= width || newPos.y < 0 || newPos.y >= height) { + random = hash(random); + float randomAngle = scaleToRange01(random) * 2 * 3.1415; + + newPos.x = min(width-0.01,max(0, newPos.x)); + newPos.y = min(height-0.01,max(0, newPos.y)); + agents[id.x].angle = randomAngle; + } + else { + TrailMap[int2(newPos.x, newPos.y)] += agent.speciesMask * trailWeight * deltaTime; + } + + agents[id.x].position = newPos; +} + +#pragma kernel Diffuse + +float decayRate; +float diffuseRate; +RWTexture2D DiffusedTrailMap; + +[numthreads(8,8,1)] +void Diffuse (uint3 id : SV_DispatchThreadID) +{ + if (id.x < 0 || id.x >= (uint)width || id.y < 0 || id.y >= (uint)height) { + return; + } + + float4 sum = 0; + float4 originalCol = TrailMap[id.xy]; + // 3x3 blur + for (int offsetX = -1; offsetX <= 1; offsetX ++) { + for (int offsetY = -1; offsetY <= 1; offsetY ++) { + int sampleX = min(width-1, max(0, id.x + offsetX)); + int sampleY = min(height-1, max(0, id.y + offsetY)); + sum += TrailMap[int2(sampleX,sampleY)]; + } + } + + float4 blurredCol = sum / 9; + float diffuseWeight = saturate(diffuseRate * deltaTime); + blurredCol = originalCol * (1 - diffuseWeight) + blurredCol * (diffuseWeight); + + DiffusedTrailMap[id.xy] = blurredCol * saturate(1 - decayRate * deltaTime); +} +*/ \ No newline at end of file diff --git a/Assets/Resources/Visualization/PathShader.compute.meta b/Assets/Resources/Visualization/PathShader.compute.meta new file mode 100644 index 0000000..a22a6d3 --- /dev/null +++ b/Assets/Resources/Visualization/PathShader.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5c662d5e855329d409e99334e9dfdfa8 +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 4 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Visualization/PathWithComputeShader.cs b/Assets/Resources/Visualization/PathWithComputeShader.cs new file mode 100644 index 0000000..2efa0a3 --- /dev/null +++ b/Assets/Resources/Visualization/PathWithComputeShader.cs @@ -0,0 +1,158 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using DualPantoFramework; + +public class PathWithComputeShader : MonoBehaviour +{ + public float decayRate = 1; + + public ComputeShader computeShader; + RenderTexture renderTexture; + RenderTexture diffuseRenderTexture; + + UpperHandle upperHandle; + LowerHandle lowerHandle; + + Vector3 u_lastPos; + Vector3 l_lastPos; + int doItCount = 0; + const int growIntervalFrames = 10; + const int HEIGHT = 1024; + const int WIDTH = HEIGHT * 2; + + void Start() + { + upperHandle = GameObject.Find("Panto").GetComponent(); + lowerHandle = GameObject.Find("Panto").GetComponent(); + } + + void Update() + { + if (renderTexture == null) + { + renderTexture = new RenderTexture(WIDTH, HEIGHT, 24, RenderTextureFormat.ARGBFloat); + renderTexture.enableRandomWrite = true; + renderTexture.autoGenerateMips = false; + renderTexture.wrapMode = TextureWrapMode.Clamp; + renderTexture.filterMode = FilterMode.Point; + renderTexture.Create(); + + GetComponent().material.mainTexture = renderTexture; + } + + if (diffuseRenderTexture == null) + { + diffuseRenderTexture = new RenderTexture(WIDTH, HEIGHT, 24, RenderTextureFormat.ARGBFloat); + diffuseRenderTexture.enableRandomWrite = true; + diffuseRenderTexture.autoGenerateMips = false; + renderTexture.wrapMode = TextureWrapMode.Clamp; + diffuseRenderTexture.filterMode = FilterMode.Point; + diffuseRenderTexture.Create(); + } + + computeShader.SetTexture(0, "Result", renderTexture); + computeShader.SetTexture(1, "Result", renderTexture); + computeShader.SetTexture(1, "DiffuseResult", diffuseRenderTexture); + var bounds = GetComponent().mesh.bounds; + Vector3 upperPosition = upperHandle.HandlePosition(new Vector3(0, 0, 0)) - transform.TransformPoint(bounds.min); + Vector3 lowerPosition = lowerHandle.HandlePosition(new Vector3(0, 0, 0)) - transform.TransformPoint(bounds.min); + + if (u_lastPos != null && l_lastPos != null) { + computeShader.SetBool("moving", true); + computeShader.SetBool("doIt", doItCount == 0); + if (++doItCount == growIntervalFrames) + doItCount = 0; + computeShader.SetInt("width", WIDTH); + computeShader.SetInt("height", HEIGHT); + computeShader.SetFloat("decayRate", decayRate); + computeShader.SetFloat("u_last_x", 1.0f - u_lastPos.x / bounds.size.x / transform.lossyScale.x); + computeShader.SetFloat("u_last_y", 1.0f - u_lastPos.z / bounds.size.z / transform.lossyScale.z); + computeShader.SetFloat("u_x", 1.0f - upperPosition.x / bounds.size.x / transform.lossyScale.x); + computeShader.SetFloat("u_y", 1.0f - upperPosition.z / bounds.size.z / transform.lossyScale.z); + computeShader.SetFloat("l_last_x", 1.0f - l_lastPos.x / bounds.size.x / transform.lossyScale.x); + computeShader.SetFloat("l_last_y", 1.0f - l_lastPos.z / bounds.size.z / transform.lossyScale.z); + computeShader.SetFloat("l_x", 1.0f - lowerPosition.x / bounds.size.x / transform.lossyScale.x); + computeShader.SetFloat("l_y", 1.0f - lowerPosition.z / bounds.size.z / transform.lossyScale.z); + computeShader.Dispatch(0, renderTexture.width / 8, renderTexture.height / 8, 1); + computeShader.Dispatch(1, renderTexture.width / 8, renderTexture.height / 8, 1); + l_lastPos = lowerPosition; + u_lastPos = upperPosition; + + Graphics.Blit(diffuseRenderTexture, renderTexture); + } + } +} + +#if false +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using ComputeShaderUtility; + +public class Simulation : MonoBehaviour +{ + + const int updateKernel = 0; + const int diffuseMapKernel = 1; + + public ComputeShader compute; + + + [Header("Display Settings")] + public bool showAgentsOnly; + public FilterMode filterMode = FilterMode.Point; + public GraphicsFormat format = ComputeHelper.defaultGraphicsFormat; + + + [SerializeField, HideInInspector] protected RenderTexture trailMap; + [SerializeField, HideInInspector] protected RenderTexture diffusedTrailMap; + [SerializeField, HideInInspector] protected RenderTexture displayTexture; + + Texture2D colourMapTexture; + + protected virtual void Start() + { + Init(); + transform.GetComponentInChildren().material.mainTexture = displayTexture; + } + + + void Init() + { + + // Create render textures + ComputeHelper.CreateRenderTexture(ref trailMap, settings.width, settings.height, filterMode, format); + ComputeHelper.CreateRenderTexture(ref diffusedTrailMap, settings.width, settings.height, filterMode, format); + ComputeHelper.CreateRenderTexture(ref displayTexture, settings.width, settings.height, filterMode, format); + + compute.SetInt("width", settings.width); + compute.SetInt("height", settings.height); + } + + void Update() + { + + // Assign textures + compute.SetTexture(updateKernel, "TrailMap", trailMap); + compute.SetTexture(diffuseMapKernel, "TrailMap", trailMap); + compute.SetTexture(diffuseMapKernel, "DiffusedTrailMap", diffusedTrailMap); + + // Assign settings + compute.SetFloat("deltaTime", Time.deltaTime); + compute.SetFloat("time", Time.time); + + compute.SetFloat("trailWeight", settings.trailWeight); + compute.SetFloat("decayRate", settings.decayRate); + compute.SetFloat("diffuseRate", settings.diffuseRate); + + + ComputeHelper.Dispatch(compute, settings.numAgents, 1, 1, kernelIndex: updateKernel); + ComputeHelper.Dispatch(compute, settings.width, settings.height, 1, kernelIndex: diffuseMapKernel); + + ComputeHelper.CopyRenderTexture(diffusedTrailMap, trailMap); + + ComputeHelper.CopyRenderTexture(trailMap, displayTexture); + + } +} +#endif diff --git a/Assets/Resources/Visualization/PathWithComputeShader.cs.meta b/Assets/Resources/Visualization/PathWithComputeShader.cs.meta new file mode 100644 index 0000000..72d0f9a --- /dev/null +++ b/Assets/Resources/Visualization/PathWithComputeShader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8175f47702cce734aa3f4f27c20c1738 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - computeShader: {fileID: 7200000, guid: 5c662d5e855329d409e99334e9dfdfa8, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/blob.png b/Assets/Resources/Visualization/blob.png similarity index 100% rename from Assets/Resources/blob.png rename to Assets/Resources/Visualization/blob.png diff --git a/Assets/Resources/blob.png.meta b/Assets/Resources/Visualization/blob.png.meta similarity index 100% rename from Assets/Resources/blob.png.meta rename to Assets/Resources/Visualization/blob.png.meta diff --git a/Assets/Resources/blob2.png b/Assets/Resources/Visualization/blob2.png similarity index 100% rename from Assets/Resources/blob2.png rename to Assets/Resources/Visualization/blob2.png diff --git a/Assets/Resources/blob2.png.meta b/Assets/Resources/Visualization/blob2.png.meta similarity index 100% rename from Assets/Resources/blob2.png.meta rename to Assets/Resources/Visualization/blob2.png.meta diff --git a/Assets/Resources/Visualization/blob3.png b/Assets/Resources/Visualization/blob3.png new file mode 100644 index 0000000..3bb7ac6 Binary files /dev/null and b/Assets/Resources/Visualization/blob3.png differ diff --git a/Documentation/readme_images/blind_mode.png.meta b/Assets/Resources/Visualization/blob3.png.meta similarity index 78% rename from Documentation/readme_images/blind_mode.png.meta rename to Assets/Resources/Visualization/blob3.png.meta index f77d75c..9616783 100644 --- a/Documentation/readme_images/blind_mode.png.meta +++ b/Assets/Resources/Visualization/blob3.png.meta @@ -1,13 +1,13 @@ fileFormatVersion: 2 -guid: a2d1839f2170c5f469d6ba49c565cb64 +guid: e8df33afd2169d343bbaba3b141cc19c TextureImporter: internalIDToNameTable: [] externalObjects: {} serializedVersion: 11 mipmaps: mipMapMode: 0 - enableMipMap: 1 - sRGBTexture: 1 + enableMipMap: 0 + sRGBTexture: 0 linearTexture: 0 fadeOut: 0 borderMipMap: 0 @@ -32,12 +32,12 @@ TextureImporter: maxTextureSize: 2048 textureSettings: serializedVersion: 2 - filterMode: -1 + filterMode: 0 aniso: -1 mipBias: -100 - wrapU: -1 - wrapV: -1 - wrapW: -1 + wrapU: 0 + wrapV: 0 + wrapW: 0 nPOTScale: 1 lightmap: 0 compressionQuality: 50 @@ -50,7 +50,7 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 0 textureShape: 1 @@ -63,7 +63,19 @@ TextureImporter: platformSettings: - serializedVersion: 3 buildTarget: DefaultTexturePlatform - maxTextureSize: 2048 + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 resizeAlgorithm: 0 textureFormat: -1 textureCompression: 1 diff --git a/Assets/Resources/particles.mat b/Assets/Resources/Visualization/particles.mat similarity index 87% rename from Assets/Resources/particles.mat rename to Assets/Resources/Visualization/particles.mat index 7d686b6..1261269 100644 --- a/Assets/Resources/particles.mat +++ b/Assets/Resources/Visualization/particles.mat @@ -8,16 +8,14 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: particles - m_Shader: {fileID: 211, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: _ALPHAPREMULTIPLY_ON + m_Shader: {fileID: 4800000, guid: 0d9d8a69c14d37d47be8b37cc9c9eb86, type: 3} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _COLOROVERLAY_ON m_LightmapFlags: 0 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: 3000 - stringTagMap: - RenderType: Transparent - disabledShaderPasses: - - ALWAYS + stringTagMap: {} + disabledShaderPasses: [] m_SavedProperties: serializedVersion: 3 m_TexEnvs: @@ -42,7 +40,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 2800000, guid: cd4dd94643268660c879f95f60727303, type: 3} + m_Texture: {fileID: 2800000, guid: e8df33afd2169d343bbaba3b141cc19c, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: @@ -63,7 +61,7 @@ Material: - _CameraFadingEnabled: 0 - _CameraFarFadeDistance: 2 - _CameraNearFadeDistance: 1 - - _ColorMode: 0 + - _ColorMode: 3 - _Cull: 2 - _Cutoff: 0.5 - _DetailNormalMapScale: 1 @@ -77,6 +75,7 @@ Material: - _GlossMapScale: 1 - _Glossiness: 0.5 - _GlossyReflections: 1 + - _InvFade: 0.47 - _LightingEnabled: 0 - _Metallic: 0 - _Mode: 3 @@ -96,4 +95,5 @@ Material: - _ColorAddSubDiff: {r: -1, g: 0, b: 0, a: 0} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} m_BuildTextureStacks: [] diff --git a/Assets/Resources/particles.mat.meta b/Assets/Resources/Visualization/particles.mat.meta similarity index 100% rename from Assets/Resources/particles.mat.meta rename to Assets/Resources/Visualization/particles.mat.meta diff --git a/Assets/Resources/libserial.so.meta b/Assets/Resources/libserial.so.meta index 94052ca..1666784 100644 --- a/Assets/Resources/libserial.so.meta +++ b/Assets/Resources/libserial.so.meta @@ -28,7 +28,7 @@ PluginImporter: second: enabled: 1 settings: - CPU: x86_64 + CPU: AnyCPU - first: Standalone: OSXUniversal second: diff --git a/Assets/Resources/scratch.wav b/Assets/Resources/scratch.wav deleted file mode 100644 index 0adc194..0000000 Binary files a/Assets/Resources/scratch.wav and /dev/null differ diff --git a/Assets/Resources/serial.dll b/Assets/Resources/serial.dll index d28b834..170ad3a 100644 Binary files a/Assets/Resources/serial.dll and b/Assets/Resources/serial.dll differ diff --git a/Assets/SpeechIOForUnity b/Assets/SpeechIOForUnity index f11aa7f..2d85d32 160000 --- a/Assets/SpeechIOForUnity +++ b/Assets/SpeechIOForUnity @@ -1 +1 @@ -Subproject commit f11aa7f91384e8bb14040c25dac4d4f3bceefc0c +Subproject commit 2d85d324b2980990d079b5c96a1cad86e046ebcd diff --git a/Documentation/documentation.md b/Documentation/documentation.md index 1983cee..dd5bd5c 100644 --- a/Documentation/documentation.md +++ b/Documentation/documentation.md @@ -31,6 +31,12 @@ Moves the handle to the specified position. The handle will be freed by default, * `Free()` Frees the handle, it can now be controlled by the player. +* `Freeze()` +Freezes the handle in its current position. + +* `ApplyForce()` +Applies a force to the handle. This will only work if the handle is not attached to an object. + ## Level & ObjectOfInterest The Level component is attached to the Panto Prefab. You can add the ObjectOfInterest component to game objects in your scene. @@ -60,8 +66,16 @@ Enables the obstacle. Only when this function is called, will you be able to fee * `Disable()` Disables the obstacle. +Instead of enabling the colliders immediately, you can make use of the `ObstacleSphere`. Attach it to your player components, and it will Create and Enable all obstacles when the player moves near them. This can be useful if your scene has many obstacles, that cannot be stored on the Panto at the same time. See the `ManyObstacles.unity` scene for an example. + ### PantoBoxCollider Attach this to a cube and `CreateObstacle()` will create a box obstacle using the dimensions of the BoxCollider. ### PantoCircularCollider Attach this to a sphere and `CreateObstacle()` will create a circular obstacle using the position and radius of the SphereCollider. The obstacle, however, will only be an approximation of a sphere using the number of corners defined, 8 by default. + +### PantoPolygonCollider +Use it with a Polygon2D to create more complex shapes. + +### PantoLineCollider +A simple line from point A to point B. You need to set start and end, before using using `CreateObstacle()`. \ No newline at end of file diff --git a/Documentation/readme_images/adding_script_to_object.png b/Documentation/readme_images/adding_script_to_object.png index 2a15a05..b97f27a 100644 Binary files a/Documentation/readme_images/adding_script_to_object.png and b/Documentation/readme_images/adding_script_to_object.png differ diff --git a/Documentation/readme_images/blind_mode.jpg b/Documentation/readme_images/blind_mode.jpg new file mode 100644 index 0000000..3b6d55f Binary files /dev/null and b/Documentation/readme_images/blind_mode.jpg differ diff --git a/Documentation/readme_images/blind_mode.png b/Documentation/readme_images/blind_mode.png deleted file mode 100644 index f22e280..0000000 Binary files a/Documentation/readme_images/blind_mode.png and /dev/null differ diff --git a/Documentation/readme_images/develop_mode.jpg b/Documentation/readme_images/develop_mode.jpg new file mode 100644 index 0000000..40955fc Binary files /dev/null and b/Documentation/readme_images/develop_mode.jpg differ diff --git a/Documentation/readme_images/first_app.gif b/Documentation/readme_images/first_app.gif index 484c4bc..59278c6 100644 Binary files a/Documentation/readme_images/first_app.gif and b/Documentation/readme_images/first_app.gif differ diff --git a/Documentation/readme_images/mixed_mode.jpg b/Documentation/readme_images/mixed_mode.jpg new file mode 100644 index 0000000..1fe9cb1 Binary files /dev/null and b/Documentation/readme_images/mixed_mode.jpg differ diff --git a/Documentation/readme_images/panto_prefab_with_highlights.png b/Documentation/readme_images/panto_prefab_with_highlights.png index 97bcd99..f391dbd 100644 Binary files a/Documentation/readme_images/panto_prefab_with_highlights.png and b/Documentation/readme_images/panto_prefab_with_highlights.png differ diff --git a/Documentation/readme_images/portname_with_highlight.png b/Documentation/readme_images/portname_with_highlight.png index 030863f..9a02ebf 100644 Binary files a/Documentation/readme_images/portname_with_highlight.png and b/Documentation/readme_images/portname_with_highlight.png differ diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 3580dd7..35c4c4b 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -7,6 +7,9 @@ TagManager: - PantoHandle - ItHandle - MeHandle + - ItTrail + - MeTrail + - PerceptionCone layers: - Default - TransparentFX @@ -16,9 +19,9 @@ TagManager: - UI - - - - - - - - + - HapticTextures + - BlindMode + - MixedMode - - - diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset index e3d1f4b..dca2881 100644 Binary files a/ProjectSettings/VersionControlSettings.asset and b/ProjectSettings/VersionControlSettings.asset differ diff --git a/README.md b/README.md index 5925b3e..ec010fb 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## Installation Guide (Using UnityPanto) ### Unity -Install [Unity Version 2019.2.12](https://unity3d.com/de/get-unity/download/archive) (best 2019.2.12f1). +Install [Unity Version 2020.1.6](https://unity3d.com/de/get-unity/download/archive) (best 2020.1.6f1). #### VisualStudio & Git You will need something to edit code (e.g. the VisualStudio IDE or VisualStudio Code). @@ -27,15 +27,18 @@ You can find the installation instructions for SpeechIO [here](https://github.co ## Creating a Panto Application in Unity ### Adding the right components -Drag the Panto Prefab into your scene. You can find it at `Assets -> unity-dualpanto-framework -> Resources`. The Panto game object has different components attached to it: the DualPantoSync, the lower handle, the upper handle and a level. It also has a child component: the Panto Working Area. This is the area the DualPanto can reach. -![Panto Prefab in Scene](https://github.com/HassoPlattnerInstituteHCI/unity-dualpanto-framework/blob/master/Documentation/readme_images/panto_prefab_with_highlights.png) +Drag the Panto Prefab into your scene. You can find it at `Assets -> unity-dualpanto-framework -> Assets -> Resources`. The Panto game object has different components attached to it: the DualPantoSync, the lower handle, the upper handle and a level. It also has a few child objects, including Panto Working Areas for different device versions. This is the area the DualPanto can reach. +![Panto Prefab in Scene](/Documentation/readme_images/panto_prefab_with_highlights.png) ### Setting up the camera Prepare your scene by deleting the `Main Camera` object that is created with every new scene in Unity. The Panto Prefab, that you just added to the scene, already contains a camera that is adjusted to show a top-down perspective of the entire area the Panto can reach. +If the scene is very bright (white panto-area), also delete the directional light that is part of any new scene. The Panto Prefab also contains one of those. -### Find out the serial port of your device -At this point we still need to manually update the serial port of our panto before running the application. -Therefore we have to find the used serial port on our computer and replace the string "//.//COM3" in the Panto prefab under DualPantoSync _Port Name_. +### Find out the serial port of your device, if needed +You may be able to skip this step. The Panto will by default use the most common port name on your OS: `//.//COM3` (Windows), `/dev/cu.SLAB_USBtoUART` (MacOS) or `/dev/ttyUSB0` (Linux). Check if your Panto is already being found by connecting it and hitting Play (make sure Debug is disabled). If it works, you can skip this part! + +If it doesn't work, you need to manually update the serial port of your panto before running the application. +Therefore you have to find the correct port name and enter it in DualPantoSync's _Overwrite Default Port_. On Windows open the _Device Manager_ and go to _Ports (COM & LPT)_. Under that tab you will find a device called "Silicon Labs CP..." with the usb serial port in brackets (e.g. "COM6"). The _Port Name_ in your Panto Object would hence after updating be "//.//COM6". @@ -43,12 +46,12 @@ The _Port Name_ in your Panto Object would hence after updating be "//.//COM6". On Unix you can list your usb devices by using the command `ls /dev | grep cu.` To find out which device your Panto is one easy way is to plug the device out and in again and to check in between which serial port disappeared. That's the one we want to use. Copy the path of the port (e.g. "/dev/cu.SLAB_USBtoUART") into the _Port Name_ on the Panto Object. -![Setting Port Name](https://github.com/HassoPlattnerInstituteHCI/unity-dualpanto-framework/blob/master/Documentation/readme_images/portname_with_highlight.png) +![Setting Port Name](/Documentation/readme_images/portname_with_highlight.png) ### Your first Panto demo In your Unity Scene, add a cube using `GameObject -> 3D Object -> Cube`. Attach the `MeHandle` component to this cube. It should now follow the movement of the Upper Panto Handle. -![Adding the player script to the cube](https://github.com/HassoPlattnerInstituteHCI/unity-dualpanto-framework/blob/master/Documentation/readme_images/adding_script_to_object.png) +![Adding the player script to the cube](/Documentation/readme_images/adding_script_to_object.png) **You can find more sample scenes to get inspired in `ExampleScenes`, the relevant scripts can be found in `ExampleScripts`** @@ -56,13 +59,14 @@ In your Unity Scene, add a cube using `GameObject -> 3D Object -> Cube`. Attach There are two ways to test your app: * Using the emulator mode (default): For this you do not need a DualPanto, the device will be emulated. You should see two game objects that represent the two handles. The blue objects represents the lower handle, the green one the upper handle. When the handles are controlled by the user, both will follow the mouse. You emulate rotation input with `a` and `d`. * Using a DualPanto: If you want to run the application on the Panto, make sure the Debug mode is disabled in the DualPantoSync component and the panto is connected to your computer. If you have no device connect, it will fall back to the emulator mode. -![First App](https://github.com/HassoPlattnerInstituteHCI/unity-dualpanto-framework/blob/master/Documentation/readme_images/first_app.gif) +**If you do not see the cube in Game View:** Refer to the next section. +![First App](/Documentation/readme_images/first_app.gif) ### Using the Blind emulator -To get a better sense of what your game will feel to blind people, there is a small emulator for blind vision. By default, pressing `b` during game play will toggle this mode. -If you are using a panto, it will simply hide the game. If you are using the emulator, you should only see the two handles and a small area surrounding them. -This will work best if you disable environment lighting in the scene first: Open `Window -> Rendering -> Lighting Settings`, then set `Environment Setting -> Source` to `Color` and choose that color to be black. In addition, set `Environment Reflections -> Source` to `Custom`. You will need to do this for each scene. -![Blind mode emulator](https://github.com/HassoPlattnerInstituteHCI/unity-dualpanto-framework/blob/master/Documentation/readme_images/blind_mode.png) +To get a better sense of what your game will feel to blind people, there is a small emulator for blind vision. You can use `b` to toggle between blind view (only the handles and the area is displayed), mixed mode (the outlines of collider will also be displayed) and development mode (everything is displayed). +Blind Mode | Mixed Mode | Develop Mode +:-------------------------:|:-------------------------:|:--------------------: +![Blind Mode](/Documentation/readme_images/blind_mode.jpg) | ![Mixed Mode](/Documentation/readme_images/mixed_mode.jpg) | ![Develop Mode](/Documentation/readme_images/develop_mode.jpg) ## Troubleshooting