diff --git a/.gitignore b/.gitignore index 9eb70ce..888daae 100644 --- a/.gitignore +++ b/.gitignore @@ -97,3 +97,4 @@ InitTestScene*.unity* # Auto-generated scenes by play mode tests /[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity* +.editorconfig diff --git a/Assets/3D Assets/CupCharacter.fbx b/Assets/3D Assets/CupCharacter.fbx index 92893e1..f39de5a 100644 Binary files a/Assets/3D Assets/CupCharacter.fbx and b/Assets/3D Assets/CupCharacter.fbx differ diff --git a/Assets/3D Assets/Jetpack.fbx b/Assets/3D Assets/Jetpack.fbx new file mode 100644 index 0000000..397958d Binary files /dev/null and b/Assets/3D Assets/Jetpack.fbx differ diff --git a/Assets/3D Assets/Jetpack.fbx.meta b/Assets/3D Assets/Jetpack.fbx.meta new file mode 100644 index 0000000..4a29831 --- /dev/null +++ b/Assets/3D Assets/Jetpack.fbx.meta @@ -0,0 +1,112 @@ +fileFormatVersion: 2 +guid: b3f0cc9060e21fb459dba5c9de438dbb +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 1 + removeConstantScaleCurves: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 3 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 0.1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 0 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 0 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: + - name: Jetpack(Clone) + parentName: + position: {x: -0, y: 0, z: 0} + rotation: {x: -0.00000005338508, y: 0.7071068, z: -0.7071067, w: 0.000000053385072} + scale: {x: 50, y: 49.999996, z: 49.999992} + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 0.1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..6c3c94d --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6d910a4538a1054abfa67cf7d2e9992 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/ReadOnlyDrawer.cs b/Assets/Editor/ReadOnlyDrawer.cs new file mode 100644 index 0000000..7fa1581 --- /dev/null +++ b/Assets/Editor/ReadOnlyDrawer.cs @@ -0,0 +1,18 @@ +using UnityEngine; +using UnityEditor; + +// Put this script in the "Editor" folder +[CustomPropertyDrawer(typeof(ReadOnlyAttribute))] +public class ReadOnlyDrawer : PropertyDrawer { + + public override float GetPropertyHeight(SerializedProperty property, GUIContent label) { + return EditorGUI.GetPropertyHeight(property, label, true); + } + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { + + GUI.enabled = false; + EditorGUI.PropertyField(position, property, label, true); + GUI.enabled = true; + } +} \ No newline at end of file diff --git a/Assets/Editor/ReadOnlyDrawer.cs.meta b/Assets/Editor/ReadOnlyDrawer.cs.meta new file mode 100644 index 0000000..96ffeeb --- /dev/null +++ b/Assets/Editor/ReadOnlyDrawer.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: e70302663bb02554aa1efead3cedd72f \ No newline at end of file diff --git a/Assets/Materials/Water Trail.mat b/Assets/Materials/Water Trail.mat new file mode 100644 index 0000000..1695dde --- /dev/null +++ b/Assets/Materials/Water Trail.mat @@ -0,0 +1,164 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6880711356224745354 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 9 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Water Trail + m_Shader: {fileID: 4800000, guid: b7839dad95683814aa64166edc107ae2, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _ALPHAPREMULTIPLY_ON + - _COLOROVERLAY_ON + - _SURFACE_TYPE_TRANSPARENT + m_InvalidKeywords: + - _FLIPBOOKBLENDING_OFF + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: + - DepthOnly + - SHADOWCASTER + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _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: 10307, guid: 0000000000000000f000000000000000, type: 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} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _ColorMode: 3 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 10 + - _DstBlendAlpha: 10 + - _EmissionEnabled: 0 + - _EnvironmentReflections: 1 + - _FlipbookBlending: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _LightingEnabled: 0 + - _Metallic: 0.63 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.15 + - _SmoothnessSource: 0 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 1 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 0 + m_Colors: + - _BaseColor: {r: 0.30660376, g: 0.849414, b: 1, a: 0.7882353} + - _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0} + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 0.30660373, g: 0.849414, b: 1, a: 0.7882353} + - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Materials/Water Trail.mat.meta b/Assets/Materials/Water Trail.mat.meta new file mode 100644 index 0000000..31752b8 --- /dev/null +++ b/Assets/Materials/Water Trail.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1de8c6acc74c2974d848c273a62d3559 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/PlayerCapsule.prefab b/Assets/Prefabs/PlayerCapsule.prefab index ca7f2f1..491feca 100644 --- a/Assets/Prefabs/PlayerCapsule.prefab +++ b/Assets/Prefabs/PlayerCapsule.prefab @@ -1,5 +1,111 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &515804675445092484 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3721499353281683697} + - component: {fileID: 852354713247095350} + - component: {fileID: 1827075049547160609} + m_Layer: 0 + m_Name: Pupil + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3721499353281683697 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515804675445092484} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -3.5527137e-15, z: -3.5527137e-15, w: 1} + m_LocalPosition: {x: -0.102, y: -0.056, z: -0.005} + m_LocalScale: {x: 0.65, y: 0.65, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7865933881565626388} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &852354713247095350 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515804675445092484} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &1827075049547160609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 515804675445092484} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ca04ba1a5b7877a48b4841d9e983a45e, type: 3} + m_Name: + m_EditorClassIdentifier: + rPupil: 0.75 + rEye: 1 + speed: 5 + gravMultiplier: 1 + Bounciness: 0.8 + Friction: 0.99 --- !u!1 &1555974882127332706 GameObject: m_ObjectHideFlags: 0 @@ -110,6 +216,38 @@ CapsuleCollider: m_Height: 2 m_Direction: 1 m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &2501217583632416967 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7865933881565626388} + m_Layer: 0 + m_Name: LEye + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7865933881565626388 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2501217583632416967} + serializedVersion: 2 + m_LocalRotation: {x: 0.012887824, y: 0.97824675, z: 0.06403189, w: -0.19689365} + m_LocalPosition: {x: 0.00343, y: 0.01068, z: 0.00492} + m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 3721499353281683697} + m_Father: {fileID: 6997694118134333449} + m_LocalEulerAnglesHint: {x: -7.49, y: 202.76, z: 0} --- !u!1 &3499777991421248227 GameObject: m_ObjectHideFlags: 0 @@ -141,6 +279,143 @@ Transform: m_Children: [] m_Father: {fileID: 5509480054821979055} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3515852557750783830 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7167114897184045469} + - component: {fileID: 4698957386554012503} + - component: {fileID: 448023307871666137} + m_Layer: 0 + m_Name: Pupil + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7167114897184045469 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3515852557750783830} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -3.5527137e-15, z: -3.5527137e-15, w: 1} + m_LocalPosition: {x: 0.129, y: -0.103, z: -0.005} + m_LocalScale: {x: 0.65, y: 0.65, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7530333802941389399} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!212 &4698957386554012503 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3515852557750783830} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, 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: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 1, y: 1} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 +--- !u!114 &448023307871666137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3515852557750783830} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ca04ba1a5b7877a48b4841d9e983a45e, type: 3} + m_Name: + m_EditorClassIdentifier: + rPupil: 0.75 + rEye: 1 + speed: 5 + gravMultiplier: 1 + Bounciness: 0.8 + Friction: 0.99 +--- !u!1 &3901416619655837541 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8337714668223101655} + m_Layer: 6 + m_Name: lNozzle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8337714668223101655 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3901416619655837541} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: -0.35, y: 0.15, z: -0.35} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5509480054821979055} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &4606851360649482546 GameObject: m_ObjectHideFlags: 0 @@ -189,7 +464,9 @@ GameObject: - component: {fileID: 2958942853775824639} - component: {fileID: 8063871869589066007} - component: {fileID: 5014335334898830710} + - component: {fileID: 5019629367168265698} - component: {fileID: 1044206370189926961} + - component: {fileID: 3616046827049094926} m_Layer: 6 m_Name: PlayerCapsule m_TagString: Player @@ -215,6 +492,8 @@ Transform: - {fileID: 2975474187306092459} - {fileID: 2937016638278681527} - {fileID: 5689981267565724997} + - {fileID: 8337714668223101655} + - {fileID: 1540997590415945629} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!143 &4279066835326261118 @@ -267,6 +546,7 @@ MonoBehaviour: SpeedChangeRate: 10 JumpHeight: 2 Gravity: -20 + ApplyGravity: 1 JumpTimeout: 0.2 FallTimeout: 0.15 Grounded: 1 @@ -300,9 +580,9 @@ MonoBehaviour: m_EditorClassIdentifier: pushLayers: serializedVersion: 2 - m_Bits: 0 - canPush: 0 - strength: 1.1 + m_Bits: 769 + canPush: 1 + strength: 0.5 --- !u!114 &8900243168316602284 MonoBehaviour: m_ObjectHideFlags: 0 @@ -459,6 +739,7 @@ MonoBehaviour: m_EditorClassIdentifier: cupBodyRenderer: {fileID: 4720310507881937721} movementController: {fileID: 7026925414343413259} + equipmentManager: {fileID: 5014335334898830710} defaultMaterial: {fileID: 2100000, guid: 7e78d5eef4e298f4694f973a136cb0cc, type: 2} spawnPoint: {fileID: 2937016638278681527} dirtCupPrefab: {fileID: 6497454181553410524, guid: b0ada4d9c0d43da45a912bad7f00e3b0, type: 3} @@ -480,7 +761,23 @@ MonoBehaviour: cup: {fileID: 8063871869589066007} strawVisual: {fileID: 6071999207883727411} bucketHandleVisual: {fileID: 3242626969228630999} + jetPackVisual: {fileID: 65509606935249637} animationManager: {fileID: 0} +--- !u!114 &5019629367168265698 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437827671237524125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6c5cf44be52c8ee4db16bed1e29ecead, type: 3} + m_Name: + m_EditorClassIdentifier: + projectileConfig: {fileID: 0} + ConsumesWater: 0 + currentWater: 0 --- !u!114 &1044206370189926961 MonoBehaviour: m_ObjectHideFlags: 0 @@ -497,6 +794,52 @@ MonoBehaviour: strawTip: {fileID: 5689981267565724997} squirtOn: 0 animationManager: {fileID: 0} +--- !u!114 &3616046827049094926 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6437827671237524125} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8770e2578ee550d4ea13378edd90189a, type: 3} + m_Name: + m_EditorClassIdentifier: + projectileConfig: {fileID: 0} + lNozzle: {fileID: 8337714668223101655} + rNozzle: {fileID: 1540997590415945629} +--- !u!1 &6655132522387737653 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1540997590415945629} + m_Layer: 6 + m_Name: rNozzle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1540997590415945629 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6655132522387737653} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0.35, y: 0.15, z: -0.35} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5509480054821979055} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &6881207050667131521 GameObject: m_ObjectHideFlags: 0 @@ -522,12 +865,77 @@ Transform: m_GameObject: {fileID: 6881207050667131521} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1.08, z: 0.782} + m_LocalPosition: {x: 0, y: 1.08, z: 0.2} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5509480054821979055} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6927272427928113930 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7530333802941389399} + m_Layer: 0 + m_Name: REye + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7530333802941389399 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6927272427928113930} + serializedVersion: 2 + m_LocalRotation: {x: -0.012887844, y: 0.9782467, z: 0.064031884, w: 0.19689395} + m_LocalPosition: {x: -0.00343, y: 0.01068, z: 0.00492} + m_LocalScale: {x: 0.003, y: 0.003, z: 0.003} + m_ConstrainProportionsScale: 1 + m_Children: + - {fileID: 7167114897184045469} + m_Father: {fileID: 6997694118134333449} + m_LocalEulerAnglesHint: {x: -7.49, y: 157.24, z: 0} +--- !u!1 &7672684144910496027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6997694118134333449} + m_Layer: 0 + m_Name: GooglyEyes + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6997694118134333449 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7672684144910496027} + serializedVersion: 2 + m_LocalRotation: {x: -0.000000029802322, y: 0.0000001340906, z: -0.000000014305113, w: 1} + m_LocalPosition: {x: 0, y: -0.00943, z: 0.00053} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7865933881565626388} + - {fileID: 7530333802941389399} + m_Father: {fileID: 1844852490924264215} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1001 &204170970545706652 PrefabInstance: m_ObjectHideFlags: 0 @@ -536,6 +944,10 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 5509480054821979055} m_Modifications: + - target: {fileID: 161532317931836537, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 679583426243905319, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} propertyPath: m_Layer value: 6 @@ -544,6 +956,10 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 2067265143670408927, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + propertyPath: 'm_Materials.Array.data[1]' + value: + objectReference: {fileID: 6547622731792080273, guid: 37c1dee9f3d1f4927beedd4a20a88cdd, type: 3} - target: {fileID: 2365954155255417741, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} propertyPath: m_Name value: cup_character2 @@ -638,7 +1054,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 6237854308496192687, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} propertyPath: m_IsActive - value: 0 + value: 1 objectReference: {fileID: 0} - target: {fileID: 7102542170524286983, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} propertyPath: m_Layer @@ -660,14 +1076,31 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 9136581557194806458, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + propertyPath: m_RootBone + value: + objectReference: {fileID: 1844852490924264215} m_RemovedComponents: [] m_RemovedGameObjects: [] - m_AddedGameObjects: [] + m_AddedGameObjects: + - targetCorrespondingSourceObject: {fileID: 1967905888112729483, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + insertIndex: -1 + addedObject: {fileID: 6997694118134333449} m_AddedComponents: - targetCorrespondingSourceObject: {fileID: 2365954155255417741, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} insertIndex: -1 addedObject: {fileID: 1626554708956874784} m_SourcePrefab: {fileID: 100100000, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} +--- !u!1 &65509606935249637 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 161532317931836537, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + m_PrefabInstance: {fileID: 204170970545706652} + m_PrefabAsset: {fileID: 0} +--- !u!4 &1844852490924264215 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1967905888112729483, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} + m_PrefabInstance: {fileID: 204170970545706652} + m_PrefabAsset: {fileID: 0} --- !u!1 &2450189844975525137 stripped GameObject: m_CorrespondingSourceObject: {fileID: 2365954155255417741, guid: 606ec4277b7301c47aebecb8920b5d69, type: 3} diff --git a/Assets/Prefabs/WaterImpact.prefab b/Assets/Prefabs/WaterImpact.prefab new file mode 100644 index 0000000..65e1bab --- /dev/null +++ b/Assets/Prefabs/WaterImpact.prefab @@ -0,0 +1,4934 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2200352403879974117 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2807608916548266490} + - component: {fileID: 3765369191624551090} + - component: {fileID: 1067530274352408104} + m_Layer: 0 + m_Name: ParticleEmitter + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2807608916548266490 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200352403879974117} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7825786612702219308} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!198 &3765369191624551090 +ParticleSystem: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200352403879974117} + serializedVersion: 8 + lengthInSec: 0.1 + simulationSpeed: 1 + stopAction: 2 + cullingMode: 0 + ringBufferMode: 0 + ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 1 + looping: 0 + prewarm: 0 + playOnAwake: 1 + useUnscaledTime: 0 + autoRandomSeed: 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: 0 + moveWithCustomTransform: {fileID: 0} + scalingMode: 1 + randomSeed: 0 + InitialModule: + serializedVersion: 3 + enabled: 1 + startLifetime: + serializedVersion: 2 + minMaxState: 0 + scalar: 0.25 + 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 + startSpeed: + serializedVersion: 2 + minMaxState: 0 + scalar: 10 + 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.34901962, g: 0.5529412, b: 0.6117647, 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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 + gravitySource: 0 + maxNumParticles: 1000 + customEmitterVelocity: {x: 0, y: 0, z: 0} + size3D: 0 + rotation3D: 0 + gravityModifier: + serializedVersion: 2 + minMaxState: 0 + scalar: 9 + 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: 1 + type: 4 + 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: 270, 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: 0.31130505 + 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: 40 + 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: 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_BurstCount: 0 + m_Bursts: [] + SizeModule: + 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 + 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: 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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: 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 + 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: 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 + 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: 1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + range: {x: 0, y: 1} + CollisionModule: + enabled: 0 + serializedVersion: 4 + type: 0 + collisionMode: 0 + colliderForce: 0 + multiplyColliderForceByParticleSize: 0 + multiplyColliderForceByParticleSpeed: 0 + multiplyColliderForceByCollisionAngle: 1 + m_Planes: [] + 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 + serializedVersion: 2 + inside: 1 + outside: 0 + enter: 0 + exit: 0 + colliderQueryMode: 0 + radiusScale: 1 + primitives: [] + 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 + textureScale: {x: 1, y: 1} + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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_ColorSpace: -1 + 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 &1067530274352408104 +ParticleSystemRenderer: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200352403879974117} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10301, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_RenderMode: 0 + m_MeshDistribution: 0 + m_SortMode: 0 + m_MinParticleSize: 0.5 + 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_EnableGPUInstancing: 1 + m_ApplyActiveColorSpace: 1 + m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_UseCustomVertexStreams: 0 + m_VertexStreams: 00010304 + m_UseCustomTrailVertexStreams: 0 + m_TrailVertexStreams: 00010304 + m_Mesh: {fileID: 0} + m_Mesh1: {fileID: 0} + m_Mesh2: {fileID: 0} + m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 + m_MaskInteraction: 0 +--- !u!1 &5628419410090017184 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7825786612702219308} + - component: {fileID: 5243339828751498203} + - component: {fileID: 4546538951206509479} + - component: {fileID: 3181034468934405043} + m_Layer: 0 + m_Name: WaterImpact + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7825786612702219308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5628419410090017184} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.2, y: 0.95, z: -1.09} + m_LocalScale: {x: 0.2, y: 0.5, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 2807608916548266490} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &5243339828751498203 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5628419410090017184} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 1 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.4 + m_Height: 0.9 + m_Direction: 1 + m_Center: {x: 0, y: 0.5, z: 0} +--- !u!54 &4546538951206509479 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5628419410090017184} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 1 +--- !u!114 &3181034468934405043 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5628419410090017184} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b4bd85d06e1817846a2024b85e7854b7, type: 3} + m_Name: + m_EditorClassIdentifier: + interactionType: 2 + objectMaterial: {fileID: 2100000, guid: 4ef77fd25306b80419734ea8e58dee4a, type: 2} diff --git a/Assets/Prefabs/WaterImpact.prefab.meta b/Assets/Prefabs/WaterImpact.prefab.meta new file mode 100644 index 0000000..ecbcd15 --- /dev/null +++ b/Assets/Prefabs/WaterImpact.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e46477816b5970441bf93d30a17ec2c4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/WaterProjectile.prefab b/Assets/Prefabs/WaterProjectile.prefab index 469c6d1..989886f 100644 --- a/Assets/Prefabs/WaterProjectile.prefab +++ b/Assets/Prefabs/WaterProjectile.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &5628419410090017184 +--- !u!1 &2200352403879974117 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,50 +8,195 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 7825786612702219308} - - component: {fileID: 1000327931603184041} - - component: {fileID: 1441216113246517803} - - component: {fileID: 5243339828751498203} - - component: {fileID: 3181034468934405043} - - component: {fileID: 4546538951206509479} - - component: {fileID: 4294024587311890563} + - component: {fileID: 2807608916548266490} + - component: {fileID: 8938672924892966578} m_Layer: 0 - m_Name: WaterProjectile + m_Name: Trail m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &7825786612702219308 +--- !u!4 &2807608916548266490 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5628419410090017184} + m_GameObject: {fileID: 2200352403879974117} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 3.2, y: 0.95, z: -1.09} - m_LocalScale: {x: 0.2, y: 0.5, z: 0.2} + m_LocalPosition: {x: 0, y: 0.1, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 7825786612702219308} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!96 &8938672924892966578 +TrailRenderer: + serializedVersion: 3 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2200352403879974117} + m_Enabled: 1 + m_CastShadows: 2 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1de8c6acc74c2974d848c273a62d3559, 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_Time: 0.2 + m_PreviewTimeScale: 1 + m_Parameters: + serializedVersion: 3 + widthMultiplier: 1 + widthCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.15 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: -0.037119858 + outSlope: -0.037119858 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.5180723 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + colorGradient: + 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_ColorSpace: 0 + m_NumColorKeys: 2 + m_NumAlphaKeys: 2 + numCornerVertices: 0 + numCapVertices: 4 + alignment: 0 + textureMode: 4 + textureScale: {x: 1, y: 1} + shadowBias: 0 + generateLightingData: 0 + m_MinVertexDistance: 0.1 + m_MaskInteraction: 0 + m_Autodestruct: 0 + m_Emitting: 1 + m_ApplyActiveColorSpace: 1 +--- !u!1 &4243377070820906452 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1586287516825361340} + - component: {fileID: 3945678267127611779} + - component: {fileID: 2132111717746929338} + m_Layer: 0 + m_Name: Projectile Mesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1586287516825361340 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4243377070820906452} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.5, z: 0} + m_LocalScale: {x: 1, y: 0.5, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 5337855369644832108} + m_Father: {fileID: 7825786612702219308} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1000327931603184041 +--- !u!33 &3945678267127611779 MeshFilter: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5628419410090017184} + m_GameObject: {fileID: 4243377070820906452} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1441216113246517803 +--- !u!23 &2132111717746929338 MeshRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5628419410090017184} + m_GameObject: {fileID: 4243377070820906452} m_Enabled: 1 m_CastShadows: 1 m_ReceiveShadows: 1 @@ -90,6 +235,42 @@ MeshRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &5628419410090017184 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7825786612702219308} + - component: {fileID: 5243339828751498203} + - component: {fileID: 4546538951206509479} + - component: {fileID: 3181034468934405043} + m_Layer: 0 + m_Name: WaterProjectile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7825786612702219308 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5628419410090017184} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.2, y: 0.95, z: -1.09} + m_LocalScale: {x: 0.2, y: 0.5, z: 0.2} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1586287516825361340} + - {fileID: 2807608916548266490} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!136 &5243339828751498203 CapsuleCollider: m_ObjectHideFlags: 0 @@ -109,24 +290,10 @@ CapsuleCollider: m_ProvidesContacts: 0 m_Enabled: 1 serializedVersion: 2 - m_Radius: 0.39566308 - m_Height: 1.9060799 + m_Radius: 0.4 + m_Height: 0.9 m_Direction: 1 - m_Center: {x: 0.000000074505806, y: -0.046960056, z: -0.10433704} ---- !u!114 &3181034468934405043 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5628419410090017184} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: b4bd85d06e1817846a2024b85e7854b7, type: 3} - m_Name: - m_EditorClassIdentifier: - interactionType: 2 - objectMaterial: {fileID: 2100000, guid: 4ef77fd25306b80419734ea8e58dee4a, type: 2} + m_Center: {x: 0, y: 0.5, z: 0} --- !u!54 &4546538951206509479 Rigidbody: m_ObjectHideFlags: 0 @@ -154,7 +321,7 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 1 ---- !u!114 &4294024587311890563 +--- !u!114 &3181034468934405043 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -163,7 +330,94 @@ MonoBehaviour: m_GameObject: {fileID: 5628419410090017184} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: d3ad7131047e44083bdd16c4ca5170fe, type: 3} + m_Script: {fileID: 11500000, guid: b4bd85d06e1817846a2024b85e7854b7, type: 3} m_Name: m_EditorClassIdentifier: - rigid: {fileID: 4546538951206509479} + interactionType: 2 + objectMaterial: {fileID: 2100000, guid: 4ef77fd25306b80419734ea8e58dee4a, type: 2} +--- !u!1 &8911447889675209842 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5337855369644832108} + - component: {fileID: 6272590109928717495} + - component: {fileID: 9174875122482676419} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5337855369644832108 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8911447889675209842} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.999, z: 0} + m_LocalScale: {x: 1, y: 0.53, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1586287516825361340} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6272590109928717495 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8911447889675209842} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &9174875122482676419 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8911447889675209842} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 4ef77fd25306b80419734ea8e58dee4a, 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} diff --git a/Assets/Scenes/Alleyways.unity b/Assets/Scenes/Alleyways.unity index 59fc54e..a641441 100644 --- a/Assets/Scenes/Alleyways.unity +++ b/Assets/Scenes/Alleyways.unity @@ -315,6 +315,22 @@ Transform: m_CorrespondingSourceObject: {fileID: 3739566944422404996, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} m_PrefabInstance: {fileID: 1386021640} m_PrefabAsset: {fileID: 0} +--- !u!114 &216640913 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 4443788516947373372, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} + m_PrefabInstance: {fileID: 928852607} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &216640914 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 479723139148414925, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} + m_PrefabInstance: {fileID: 928852607} + m_PrefabAsset: {fileID: 0} --- !u!114 &333416210 stripped MonoBehaviour: m_CorrespondingSourceObject: {fileID: 7905243041908624474, guid: e0d244083925df641b599032b01c4b3b, type: 3} @@ -595,7 +611,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!64 &880762082 MeshCollider: m_ObjectHideFlags: 0 @@ -1043,19 +1059,19 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1591828210} m_Modifications: - target: {fileID: 479723139148414925, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} propertyPath: m_LocalPosition.x - value: -56.957253 + value: -5.7364693 objectReference: {fileID: 0} - target: {fileID: 479723139148414925, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} propertyPath: m_LocalPosition.y - value: -34.167 + value: -0.1373558 objectReference: {fileID: 0} - target: {fileID: 479723139148414925, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} propertyPath: m_LocalPosition.z - value: 356.13998 + value: 0.038879395 objectReference: {fileID: 0} - target: {fileID: 479723139148414925, guid: bd71036de02d7ad4ebfe9da92fca740b, type: 3} propertyPath: m_LocalRotation.w @@ -1131,6 +1147,11 @@ GameObject: m_CorrespondingSourceObject: {fileID: 6437827671237524125, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} m_PrefabInstance: {fileID: 1386021640} m_PrefabAsset: {fileID: 0} +--- !u!4 &933707863 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + m_PrefabInstance: {fileID: 1386021640} + m_PrefabAsset: {fileID: 0} --- !u!1001 &934373293 PrefabInstance: m_ObjectHideFlags: 0 @@ -1526,8 +1547,20 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 0} + m_TransformParent: {fileID: 1591828210} m_Modifications: + - target: {fileID: 65509606935249637, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 84521252669379707, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 515804675445092484, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 845271472217788859, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 @@ -1552,6 +1585,10 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 2501217583632416967, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 2958942853775824639, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: player value: @@ -1576,10 +1613,18 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 3445240376572383466, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: animationManager + value: + objectReference: {fileID: 1009414136} - target: {fileID: 3499777991421248227, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 3515852557750783830, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 3898351114231953434, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 @@ -1600,21 +1645,25 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 4740720083529029736, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 5014335334898830710, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: animationManager value: objectReference: {fileID: 1009414136} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalPosition.x - value: -50.46 + value: 0.76078415 objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalPosition.y - value: -35.007 + value: -0.97735596 objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalPosition.z - value: 356.34 + value: 0.2388916 objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalRotation.w @@ -1622,7 +1671,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalRotation.y @@ -1630,7 +1679,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -1664,14 +1713,26 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 6927272427928113930, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 6936687001333126811, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: CinemachineCamData + value: + objectReference: {fileID: 216640913} - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: GroundLayers.m_Bits value: 3841 objectReference: {fileID: 0} + - target: {fileID: 7672684144910496027, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 7791575410178190282, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 @@ -1684,6 +1745,10 @@ PrefabInstance: propertyPath: m_Layer value: 6 objectReference: {fileID: 0} + - target: {fileID: 8386211271161363782, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} - target: {fileID: 8587932955633245801, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_Layer value: 6 @@ -1764,6 +1829,40 @@ BoxCollider: serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} +--- !u!1 &1591828209 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1591828210} + m_Layer: 0 + m_Name: CupPlayer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1591828210 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1591828209} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -51.220783, y: -34.029644, z: 356.1011} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1919083064} + - {fileID: 216640914} + - {fileID: 933707863} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &1670043506 PrefabInstance: m_ObjectHideFlags: 0 @@ -2052,12 +2151,12 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1919083059} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: -56.957253, y: -34.167, z: 356.13998} + m_LocalRotation: {x: -0, y: 0.7071068, z: -0, w: 0.7071068} + m_LocalPosition: {x: -5.7364693, y: -0.1373558, z: 0.038879395} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 0} + m_Father: {fileID: 1591828210} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1997100700 GameObject: @@ -2800,7 +2899,6 @@ PrefabInstance: SceneRoots: m_ObjectHideFlags: 0 m_Roots: - - {fileID: 1919083064} - {fileID: 1997100701} - {fileID: 3241588449494060051} - {fileID: 2110952094} @@ -2811,8 +2909,6 @@ SceneRoots: - {fileID: 902299792} - {fileID: 3100474057232332897} - {fileID: 2598252051487025827} - - {fileID: 928852607} - - {fileID: 1386021640} - {fileID: 107762654} - {fileID: 7209330156130651825} - {fileID: 2109900105} @@ -2820,3 +2916,4 @@ SceneRoots: - {fileID: 490876528} - {fileID: 934373293} - {fileID: 1009414134} + - {fileID: 1591828210} diff --git a/Assets/Scenes/JianwenMechanics.unity b/Assets/Scenes/JianwenMechanics.unity index e44e1e6..e681d41 100644 --- a/Assets/Scenes/JianwenMechanics.unity +++ b/Assets/Scenes/JianwenMechanics.unity @@ -5717,6 +5717,163 @@ Transform: m_CorrespondingSourceObject: {fileID: 3239907338104592743, guid: 7bb28bb37d15eab458f9120991d8ea07, type: 3} m_PrefabInstance: {fileID: 5877968282300318701} m_PrefabAsset: {fileID: 0} +--- !u!1001 &1143426831 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1541844891} + m_Modifications: + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalPosition.x + value: 5.052 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalPosition.y + value: 1.0425266 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalPosition.z + value: -0.13632774 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -5754084199372789682, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 6317164471255398929, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + - target: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_Name + value: cup_jetpack + objectReference: {fileID: 0} + - target: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + propertyPath: m_Layer + value: 8 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + insertIndex: -1 + addedObject: {fileID: 1143426836} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + insertIndex: -1 + addedObject: {fileID: 1143426835} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + insertIndex: -1 + addedObject: {fileID: 1143426834} + m_SourcePrefab: {fileID: 100100000, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} +--- !u!4 &1143426832 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + m_PrefabInstance: {fileID: 1143426831} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1143426833 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: b3f0cc9060e21fb459dba5c9de438dbb, type: 3} + m_PrefabInstance: {fileID: 1143426831} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1143426834 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143426833} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3474362238e35754cbfb81ad7e9edc85, type: 3} + m_Name: + m_EditorClassIdentifier: + type: 3 +--- !u!65 &1143426835 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143426833} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 0.93, z: 0.37} + m_Center: {x: 0, y: 0.16, z: 0} +--- !u!54 &1143426836 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1143426833} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1 &1194388844 GameObject: m_ObjectHideFlags: 0 @@ -6033,6 +6190,14 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} + - target: {fileID: 5341116264523840449, guid: d6d430f47142f7745b6786c1691e3294, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6424828069673003653, guid: d6d430f47142f7745b6786c1691e3294, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7487247516688668583, guid: d6d430f47142f7745b6786c1691e3294, type: 3} propertyPath: RespawnPoint value: @@ -6942,6 +7107,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: + - {fileID: 1143426832} - {fileID: 917488422} - {fileID: 270877998} - {fileID: 15865301} @@ -6974,7 +7140,6 @@ Transform: - {fileID: 956094630} - {fileID: 2097888163} - {fileID: 416718900} - - {fileID: 2109565395} - {fileID: 1748027881} - {fileID: 176037199} - {fileID: 1234725410} @@ -8046,18 +8211,6 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 0} m_Modifications: - - target: {fileID: 627451777632920414, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: canPush - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 627451777632920414, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: strength - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 627451777632920414, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: pushLayers.m_Bits - value: 769 - objectReference: {fileID: 0} - target: {fileID: 1044206370189926961, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: animationManager value: @@ -8066,10 +8219,22 @@ PrefabInstance: propertyPath: projectileConfig value: objectReference: {fileID: 1252124463} + - target: {fileID: 3616046827049094926, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: projectileConfig + value: + objectReference: {fileID: 1252124463} - target: {fileID: 5014335334898830710, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: animationManager value: objectReference: {fileID: 1338489537} + - target: {fileID: 5019629367168265698, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: ConsumesWater + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5019629367168265698, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} + propertyPath: projectileConfig + value: + objectReference: {fileID: 1252124463} - target: {fileID: 5509480054821979055, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: m_LocalPosition.x value: 4.19 @@ -8114,54 +8279,10 @@ PrefabInstance: propertyPath: m_Name value: PlayerCapsule objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimSpeed - value: 1.333333 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimRayOffset - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimTransitionTime - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: lookSensitivity.x - value: 3 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: lookSensitivity.y - value: 3 - objectReference: {fileID: 0} - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: CinemachineCamData value: objectReference: {fileID: 1948984364} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderOffset.x - value: 0.45 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderOffset.y - value: 0.1 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderOffset.z - value: 0.6 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderFullPitchOffset.x - value: 0.35 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderFullPitchOffset.y - value: 0.2 - objectReference: {fileID: 0} - - target: {fileID: 7026925414343413259, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} - propertyPath: AimShoulderFullPitchOffset.z - value: 0.85 - objectReference: {fileID: 0} - target: {fileID: 8063871869589066007, guid: b988db11b27b8644bbd3b8d074554ee6, type: 3} propertyPath: animationManager value: @@ -8743,11 +8864,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 8330006639946508016, guid: 73fb1d11ce9fdef4987e4ef1227f9f47, type: 3} m_PrefabInstance: {fileID: 2097888162} m_PrefabAsset: {fileID: 0} ---- !u!4 &2109565395 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - m_PrefabInstance: {fileID: 202079075699895620} - m_PrefabAsset: {fileID: 0} --- !u!1 &2119389235 GameObject: m_ObjectHideFlags: 0 @@ -8931,67 +9047,6 @@ Transform: m_CorrespondingSourceObject: {fileID: 5840044420713898455, guid: a60f5f4b702681b43870b06f5492f798, type: 3} m_PrefabInstance: {fileID: 116917251898372578} m_PrefabAsset: {fileID: 0} ---- !u!1001 &202079075699895620 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1541844891} - m_Modifications: - - target: {fileID: 5628419410090017184, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_Name - value: WaterProjectile - objectReference: {fileID: 0} - - target: {fileID: 5628419410090017184, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_IsActive - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalPosition.x - value: 3.2 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalPosition.y - value: 0.95 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalPosition.z - value: -1.09 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7825786612702219308, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d437432bb6a6c8146b498aeff989a32e, type: 3} --- !u!1001 &4067614091828905240 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/GooglyEyes.cs b/Assets/Scripts/GooglyEyes.cs new file mode 100644 index 0000000..a5d0fed --- /dev/null +++ b/Assets/Scripts/GooglyEyes.cs @@ -0,0 +1,52 @@ +using UnityEngine; + + +public class GooglyEyes : MonoBehaviour { + public float rPupil = 0.5f; + public float rEye = 1f; + + public float speed = 1f; + public float gravMultiplier = 1f; + public float Bounciness = 0.4f; + public float Friction = 0.4f; + + private Vector3 LastForward; + private Vector3 LastPosition; + private Vector3 AppliedVelocity = Vector3.zero; + + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() { + this.LastPosition = this.transform.parent.position; + } + + // Update is called once per frame + void Update() { + float maxDist = rEye - rPupil; + + var CurrentPosition = this.transform.parent.position; + var Gravity = this.transform.InverseTransformDirection(Physics.gravity); + + this.AppliedVelocity += Gravity * this.gravMultiplier * Time.deltaTime; + this.AppliedVelocity += this.transform.InverseTransformDirection(this.LastPosition - CurrentPosition) * 500f * Time.deltaTime; + this.AppliedVelocity.z = 0; + + var EyePos = this.transform.localPosition; + EyePos += this.AppliedVelocity * this.speed * Time.deltaTime; + if (EyePos.magnitude > maxDist) { + var Normal = -EyePos.normalized; + this.AppliedVelocity = Vector3.Reflect(this.AppliedVelocity, Normal); + var normalComponent = Vector3.Project(this.AppliedVelocity, Normal); + var tangetComponent = this.AppliedVelocity - normalComponent; + this.AppliedVelocity = normalComponent * this.Bounciness + tangetComponent * Friction; + EyePos = EyePos.normalized * maxDist; + } + EyePos.z = this.transform.localPosition.z; + this.transform.localPosition = EyePos; + this.LastPosition = this.transform.parent.position; + + + + + + } +} diff --git a/Assets/Scripts/GooglyEyes.cs.meta b/Assets/Scripts/GooglyEyes.cs.meta new file mode 100644 index 0000000..cb8f78d --- /dev/null +++ b/Assets/Scripts/GooglyEyes.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: ca04ba1a5b7877a48b4841d9e983a45e \ No newline at end of file diff --git a/Assets/Scripts/Interactions/Container.cs b/Assets/Scripts/Interactions/Container.cs index 61bb2a2..d9ce20b 100644 --- a/Assets/Scripts/Interactions/Container.cs +++ b/Assets/Scripts/Interactions/Container.cs @@ -95,12 +95,12 @@ private void OnValidate() if (!isActiveAndEnabled) return; if (!Application.isPlaying) { - ApplyInitialContents(); + ApplyInitialContents(fromOnValidate:true); } } #endif - private void ApplyInitialContents() + private void ApplyInitialContents(bool fromOnValidate = false) //fromOnValidate is used only to ensure we are not trying to set game objects active during on validate calls because unity warnings. { if (containerLevels == null) return; @@ -138,7 +138,7 @@ private void ApplyInitialContents() stackedTypes.Add(normalizedType); var level = containerLevels[i]; - ApplyLevelVisual(level, item.material, true); + ApplyLevelVisual(level, item.material, true, fromOnValidate); SetLevelColliderTrigger(level, normalizedType == ScoopableObject.ScoopType.Water); } @@ -155,12 +155,12 @@ private static ScoopableObject.ScoopType NormalizeForContainer(ScoopableObject.S }; } - private void ApplyLevelVisual(GameObject level, Material mat, bool active) - { - if (level == null) return; - var mr = level.GetComponent(); - if (mr != null) mr.material = mat; - level.SetActive(active); + private void ApplyLevelVisual(GameObject level, Material mat, bool active, bool fromOnValidate = false) + { + if (level == null) return; + var mr = level.GetComponent(); + if (mr != null) mr.material = mat; + if (!fromOnValidate) level.SetActive(active); } private void SetLevelColliderTrigger(GameObject level, bool isTrigger) diff --git a/Assets/Scripts/Interactions/CupController.cs b/Assets/Scripts/Interactions/CupController.cs index 2b41260..af70ff8 100644 --- a/Assets/Scripts/Interactions/CupController.cs +++ b/Assets/Scripts/Interactions/CupController.cs @@ -1,161 +1,144 @@ using StarterAssets; using UnityEngine; using UnityEngine.EventSystems; - -public class CupController : MonoBehaviour -{ - [Header("Cup Components")] - public SkinnedMeshRenderer cupBodyRenderer; - - public ThirdPersonController movementController; - public Material defaultMaterial; - public Transform spawnPoint; - public GameObject dirtCupPrefab; - - [Header("Cup Properties")] - public float cooldownDuration = 0.2f; - - [Header("Equipment State")] - [SerializeField] private bool _hasStraw = false; - - [Header("AnimationManager")] - public AnimationManager animationManager; - - // Cup state properties - public bool IsFull { get; private set; } - public bool IsInCooldown => cooldownTimer > 0f; - public bool HasStraw => _hasStraw; - - // Private fields - private ScoopableObject.ScoopType heldType; - private Material heldMaterial; - private GameObject heldObject; - private float cooldownTimer = 0f; - - protected virtual void Awake() - { - // Base initialization - } - - protected virtual void Update() - { - // Handle pause menu - if (Time.timeScale == 0f) return; - if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject()) return; - - // Update cooldown - if (cooldownTimer > 0f) - cooldownTimer -= Time.deltaTime; - - // Handle base interactions - if (Input.GetMouseButtonDown(0) && IsFull && !IsInCooldown) - TryDescoop(); - else if (Input.GetKeyDown(KeyCode.R)) - { - animationManager.Spin(); - } - } - - public virtual void SetStrawEquipped(bool on) - { - _hasStraw = on; - } - - public virtual void Scoop(ScoopableObject.ScoopType type, Material mat, GameObject sourceObject) - { - heldType = type; - heldMaterial = mat; - heldObject = (type == ScoopableObject.ScoopType.Object || type == ScoopableObject.ScoopType.DirtCup) ? sourceObject : null; - - var mats = cupBodyRenderer.materials; - if (mats.Length > 1) - { - mats[1] = mat; - cupBodyRenderer.materials = mats; - } - - if (type != ScoopableObject.ScoopType.PouringWater && IsFull == false) - { - animationManager.Scoop(); - } - - if (heldObject != null) - { - heldObject.SetActive(false); - } - - IsFull = true; - cooldownTimer = cooldownDuration; - } - - protected virtual void TryDescoop() - { - Ray ray = new Ray(transform.position, transform.forward); - if (Physics.Raycast(ray, out var hit, 3f)) - { - var container = hit.collider.GetComponent(); - if (container != null && heldType != ScoopableObject.ScoopType.Object) - { - if (container.TryAdd(heldType, heldMaterial)) - { - if (IsFull) - { - animationManager.Descoop(); - EmptyCup(); - } - cooldownTimer = cooldownDuration; - return; - } - } - } - - // Handle object descooping - if (heldType == ScoopableObject.ScoopType.Object || heldType == ScoopableObject.ScoopType.DirtCup) - { - if (heldObject != null) - { - heldObject.transform.position = spawnPoint.position; - heldObject.SetActive(true); - } - else if (dirtCupPrefab != null) - { - GameObject spawned = GameObject.Instantiate(dirtCupPrefab); - spawned.transform.position = spawnPoint.position; - } - } - else if (heldType == ScoopableObject.ScoopType.Dirt) - { - if (dirtCupPrefab != null) - { - GameObject spawned = GameObject.Instantiate(dirtCupPrefab); - spawned.transform.position = spawnPoint.position; - } - } - - if (IsFull) - { - animationManager.Descoop(); - EmptyCup(); - } - cooldownTimer = cooldownDuration; - } - - public void EmptyCup() - { - var mats = cupBodyRenderer.materials; - if (mats.Length > 1) - { - mats[1] = defaultMaterial; - cupBodyRenderer.materials = mats; - } - - IsFull = false; - heldObject = null; - heldMaterial = null; - } - - // Protected accessors for derived classes - public ScoopableObject.ScoopType HeldType => heldType; - protected Material HeldMaterial => heldMaterial; - protected GameObject HeldObject => heldObject; +using System; + +public class CupController : MonoBehaviour { + [Header("Cup Components")] + public SkinnedMeshRenderer cupBodyRenderer; + + public ThirdPersonController movementController; + public EquipmentManager equipmentManager; + public Material defaultMaterial; + public Transform spawnPoint; + public GameObject dirtCupPrefab; + + [Header("Cup Properties")] + public float cooldownDuration = 0.2f; + + [Header("Equipment State")] + [SerializeField] private bool _hasStraw = false; + + [Header("AnimationManager")] + public AnimationManager animationManager; + + // Cup state properties + public bool IsFull { get; private set; } + public bool IsInCooldown => cooldownTimer > 0f; + public bool HasStraw => _hasStraw; + + // Private fields + private ScoopableObject.ScoopType heldType; + private Material heldMaterial; + private GameObject heldObject; + private float cooldownTimer = 0f; + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + //public event + + // public event Action OnScoop; + + + + + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + protected virtual void Update() { + // Handle pause menu + if (Time.timeScale == 0f) return; + if (EventSystem.current != null && EventSystem.current.IsPointerOverGameObject()) return; + + // Update cooldown + if (IsInCooldown) cooldownTimer -= Time.deltaTime; + //this.animationManager.Walk(this.movementController.CurrentVelocity.magnitude); + // Handle base interactions + if (Input.GetMouseButtonDown(0) && IsFull && !IsInCooldown) + TryDescoop(); + else if (Input.GetKeyDown(KeyCode.R)) { + animationManager.Spin(); + } + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + public virtual void SetStrawEquipped(bool on) { + _hasStraw = on; + } + + public virtual void Scoop(ScoopableObject.ScoopType type, Material mat, GameObject sourceObject) { + heldType = type; + heldMaterial = mat; + heldObject = (type == ScoopableObject.ScoopType.Object || type == ScoopableObject.ScoopType.DirtCup) ? sourceObject : null; + + this.SetMatieral(mat); + + if (type != ScoopableObject.ScoopType.PouringWater && IsFull == false) { + animationManager.Scoop(); + } + if (heldObject != null) heldObject.SetActive(false); + + IsFull = true; + cooldownTimer = cooldownDuration; + } + + protected virtual void TryDescoop() { + //Handles descooping into a container + if (IsFull && heldType is not ScoopableObject.ScoopType.Object) { + if (Physics.Raycast(transform.position, transform.forward, out var hit, 3f)) { + if (hit.collider.TryGetComponent(out var container)) { + if (container.TryAdd(heldType, heldMaterial)) { + animationManager.Descoop(); + EmptyCup(); + cooldownTimer = cooldownDuration; + return; + } + } + } + } + + // Handle object descooping + if (heldType is ScoopableObject.ScoopType.Object && heldObject != null) { + heldObject.transform.position = spawnPoint.position; + heldObject.SetActive(true); + } else if (heldType is ScoopableObject.ScoopType.Dirt || heldType is ScoopableObject.ScoopType.DirtCup) { + if (dirtCupPrefab != null) { + GameObject.Instantiate(dirtCupPrefab).transform.position = spawnPoint.position; + } + } else { + //If we think there should be an object but its null, make dirt to still have something spawn. + if (heldType is ScoopableObject.ScoopType.Object) { + if (dirtCupPrefab != null) { + GameObject.Instantiate(dirtCupPrefab).transform.position = spawnPoint.position; + } + } + } + + if (IsFull) { + animationManager.Descoop(); + EmptyCup(); + } + cooldownTimer = cooldownDuration; + } + + public void EmptyCup() { + this.SetMatieral(defaultMaterial); + + IsFull = false; + heldObject = null; + heldMaterial = null; + } + + // Protected accessors for derived classes + public ScoopableObject.ScoopType HeldType => heldType; + protected Material HeldMaterial => heldMaterial; + protected GameObject HeldObject => heldObject; + + private void SetMatieral(Material mat) { + var mats = cupBodyRenderer.materials; + if (mats.Length > 1) { + mats[1] = mat; + cupBodyRenderer.materials = mats; + } + } } \ No newline at end of file diff --git a/Assets/Scripts/Interactions/EquipmentManager.cs b/Assets/Scripts/Interactions/EquipmentManager.cs index fdb1b15..3ccde6f 100644 --- a/Assets/Scripts/Interactions/EquipmentManager.cs +++ b/Assets/Scripts/Interactions/EquipmentManager.cs @@ -1,6 +1,6 @@ using UnityEngine; -public enum EquipmentType { None, Straw, BucketHandle } +public enum EquipmentType { None, Straw, BucketHandle, JetPack } [DisallowMultipleComponent] public class EquipmentManager : MonoBehaviour @@ -11,6 +11,7 @@ public class EquipmentManager : MonoBehaviour [Header("Cup visuals (inactive by default)")] public GameObject strawVisual; // Child on the cup public GameObject bucketHandleVisual; // Child on the cup + public GameObject jetPackVisual; // Child on the cup [Header("Equipment Properties")] public EquipmentType CurrentType { get; private set; } = EquipmentType.None; @@ -23,17 +24,19 @@ public class EquipmentManager : MonoBehaviour void Awake() { - if (!cup) cup = GetComponentInChildren(); - SetVisuals(false, false); + this.cup ??= GetComponentInChildren(); //"this" is redundant, but good to have to differentiate between local and object vars. Also null coalescing operator ^.^ + this.SetVisuals(EquipmentType.None); } - private void SetVisuals(bool strawOn, bool handleOn) + private void SetVisuals(EquipmentType eqipType) { - if (strawVisual) strawVisual.SetActive(strawOn); - if (bucketHandleVisual) bucketHandleVisual.SetActive(handleOn); - + this.CurrentType = eqipType; //Avoids us needing to set it and call this function. + if (strawVisual) strawVisual.SetActive(eqipType is EquipmentType.Straw); + if (bucketHandleVisual) bucketHandleVisual.SetActive(eqipType is EquipmentType.BucketHandle); + if (jetPackVisual) jetPackVisual.SetActive(eqipType is EquipmentType.JetPack); + // Gate squirting on the cup (expects small helper in CupController) - if (cup) cup.SetStrawEquipped(strawOn); + if (cup) cup.SetStrawEquipped(eqipType is EquipmentType.Straw); } private bool IsZiplining() @@ -56,16 +59,10 @@ public bool TryEquip(EquipmentInteractable pickup) switch (pickup.type) { - case EquipmentType.Straw: - SetVisuals(true, false); - CurrentType = EquipmentType.Straw; - break; - case EquipmentType.BucketHandle: - SetVisuals(false, true); - CurrentType = EquipmentType.BucketHandle; - break; - default: - return false; + case EquipmentType.Straw: SetVisuals(EquipmentType.Straw); break; + case EquipmentType.BucketHandle: SetVisuals(EquipmentType.BucketHandle); break; + case EquipmentType.JetPack: SetVisuals(EquipmentType.JetPack); break; + default: return false; } currentPickup = pickup; @@ -82,18 +79,8 @@ public bool TryEquip(EquipmentInteractable pickup) public bool TryUnequip() { if (!EquippedOn) return false; - - if (IsZiplining()) - { - Debug.LogWarning("[EquipmentManager] Cannot unequip while ziplining."); - return false; - } - - if (!cup || !cup.spawnPoint) - { - Debug.LogWarning("[EquipmentManager] Cup or spawnPoint missing; cannot drop equipment."); - return false; - } + if (IsZiplining()) { Debug.LogWarning("[EquipmentManager] Cannot unequip while ziplining."); return false; } + if (!cup || !cup.spawnPoint) { Debug.LogWarning("[EquipmentManager] Cup or spawnPoint missing; cannot drop equipment."); return false; } if (currentPickup) { @@ -108,8 +95,7 @@ public bool TryUnequip() animationManager.Descoop(); currentPickup = null; - CurrentType = EquipmentType.None; - SetVisuals(false, false); + this.SetVisuals(EquipmentType.None); return true; } diff --git a/Assets/Scripts/Interactions/JetpackMechanic.cs b/Assets/Scripts/Interactions/JetpackMechanic.cs new file mode 100644 index 0000000..b89fcdf --- /dev/null +++ b/Assets/Scripts/Interactions/JetpackMechanic.cs @@ -0,0 +1,73 @@ +using UnityEngine; +using System.Collections.Generic; + +public class JetpackMechanic : MonoBehaviour { + //Public~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + [Header("Squirting Setup")] + public WaterProjectileConfig projectileConfig; + public Transform lNozzle, rNozzle; + //Private~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + private CupController cupController; // Reference to CupController on the same GameObject + private WaterManager waterManager; + private float fireTimer = 0f; + + //################################################################################################### + void Awake() { + if (!this.StrictTryGetComponent(out this.cupController)) this.enabled = false; + if (!this.StrictTryGetComponent(out this.waterManager)) this.enabled = false; + + // Setup projectile layer collision rules + if (this.projectileConfig != null) { + int projLayer = LayerMask.NameToLayer(this.projectileConfig.projectileLayerName); + if (projLayer != -1) Physics.IgnoreLayerCollision(projLayer, projLayer, true); + } + } + + // Start is called once before the first execution of Update after the MonoBehaviour is created + void Start() { + + } + + // Update is called once per frame + void Update() { + + // Handle continuous squirting + if (cupController.equipmentManager.CurrentType is EquipmentType.JetPack && Input.GetKey(KeyCode.Space)) { + this.ProcessSquirting(); + } + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + private void ProcessSquirting() { + if (this.waterManager.ProcessSquirting() is false) return; + if (this.waterManager.ProcessSquirting() is false) return; + if (this.waterManager.ProcessSquirting() is false) return; + // Emit droplets at fire rate + fireTimer += Time.deltaTime; + float interval = 1f / Mathf.Max(1f, projectileConfig.fireRate * 3); + + this.cupController.movementController.SetVerticalVelocity(4f); //TODO: Expose velocity and interpolate + while (fireTimer >= interval) { + fireTimer -= interval; + this.waterManager.SpawnWaterDroplet(this.lNozzle); + this.waterManager.SpawnWaterDroplet(this.rNozzle); + } + } + + + //################################################################################################### + + + // Debug visualization + private void OnDrawGizmosSelected() { + if (this.lNozzle && this.rNozzle) { + Gizmos.color = Color.cyan; + + Gizmos.DrawWireSphere(this.lNozzle.position, 0.02f); + Gizmos.DrawWireSphere(this.rNozzle.position, 0.02f); + + Gizmos.DrawRay(this.lNozzle.position, this.lNozzle.forward * 0.5f); + Gizmos.DrawRay(this.rNozzle.position, this.rNozzle.forward * 0.5f); + } + } +} diff --git a/Assets/Scripts/Interactions/JetpackMechanic.cs.meta b/Assets/Scripts/Interactions/JetpackMechanic.cs.meta new file mode 100644 index 0000000..1eb26bc --- /dev/null +++ b/Assets/Scripts/Interactions/JetpackMechanic.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 8770e2578ee550d4ea13378edd90189a \ No newline at end of file diff --git a/Assets/Scripts/Interactions/SquirtMechanic.cs b/Assets/Scripts/Interactions/SquirtMechanic.cs index e8cb8c4..a5ab982 100644 --- a/Assets/Scripts/Interactions/SquirtMechanic.cs +++ b/Assets/Scripts/Interactions/SquirtMechanic.cs @@ -8,10 +8,11 @@ public class SquirtMechanic : MonoBehaviour // Reference to CupController on the same GameObject private CupController cupController; + private WaterManager waterManager; //Used to spawn water // Squirting-specific state public bool squirtOn = false; - private float currentWater = 0f; + // private float currentWater = 0f; private float fireTimer = 0f; private Collider[] selfColliders; @@ -19,16 +20,9 @@ public class SquirtMechanic : MonoBehaviour public AnimationManager animationManager; void Awake() - { - // Get reference to CupController on the same GameObject - cupController = GetComponent(); - - if (cupController == null) - { - Debug.LogError("SquirtMechanic requires a CupController component on the same GameObject!"); - enabled = false; - return; - } + { + if (!this.StrictTryGetComponent(out this.cupController)) this.enabled = false; + if (!this.StrictTryGetComponent(out this.waterManager)) this.enabled = false; selfColliders = GetComponentsInChildren(); @@ -50,34 +44,20 @@ void Update() if (UnityEngine.EventSystems.EventSystem.current != null && UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()) return; - // Refills if previously empty - if (currentWater == 0 && HasWater()) - { - currentWater = 100f; - } - if (currentWater > 0 && !HasWater()) - { - currentWater = 0; - } - - // Handle squirting input - if (Input.GetKeyDown(KeyCode.Mouse1) && cupController.HasStraw) - { - animationManager.Squirt(); - squirtOn = true; - } - else if (Input.GetKeyUp(KeyCode.Mouse1) && squirtOn == true) - { - animationManager.Unsquirt(); - squirtOn = false; - fireTimer = 0f; - } - - // Handle continuous squirting - if (cupController.HasStraw && Input.GetKey(KeyCode.Mouse1) && currentWater > 0) - { - ProcessSquirting(); - } + // Handle squirting input + if (Input.GetKeyDown(KeyCode.Mouse1) && cupController.HasStraw && waterManager.WaterLevel > 0) + { + animationManager.Squirt(); + squirtOn = true; + } else if (Input.GetKey(KeyCode.Mouse1) && cupController.HasStraw ) + { + ProcessSquirting(); + } else if (Input.GetKeyUp(KeyCode.Mouse1) && squirtOn == true) + { + animationManager.Unsquirt(); + squirtOn = false; + fireTimer = 0f; + } } // This method gets called by CupController when straw equipment changes @@ -92,158 +72,34 @@ public void OnStrawEquipmentChanged(bool hasStraw) } } - // This method gets called by CupController when scooping water - public void OnWaterScooped(ScoopableObject.ScoopType type) - { - // Fill water capacity for water types - if (type == ScoopableObject.ScoopType.Water || type == ScoopableObject.ScoopType.PouringWater) - { - currentWater = projectileConfig != null ? projectileConfig.maxWater : 100f; - } - } - - // This method gets called by CupController when cup is emptied - public void OnCupEmptied() - { - currentWater = 0f; - } - - private bool HasWater() - { - // Access CupController's properties directly - return cupController.IsFull - && (cupController.HeldType == ScoopableObject.ScoopType.Water || - cupController.HeldType == ScoopableObject.ScoopType.PouringWater); - } private void ProcessSquirting() { if (projectileConfig == null) return; - - // Consume water continuously - float consume = projectileConfig.squirtRate * Time.deltaTime; - currentWater = Mathf.Max(0f, currentWater - consume); - - if (currentWater == 0f) - { - // Tell CupController to empty the cup - cupController.EmptyCup(); - return; - } + if (waterManager.ProcessSquirting() is false) return; // Emit droplets at fire rate fireTimer += Time.deltaTime; float interval = 1f / Mathf.Max(1f, projectileConfig.fireRate); - while (fireTimer >= interval && cupController.movementController._isAimingActive) - { - fireTimer -= interval; - SpawnWaterDroplet(); - } + while (fireTimer >= interval && cupController.movementController._isAimingActive) { + fireTimer -= interval; + this.waterManager.SpawnWaterDroplet(this.strawTip); + } + + //Points squitting nozzle towards camera look direction + var tempForward = this.strawTip.forward; + tempForward.y = this.cupController.movementController.CinemachineCameraTarget.transform.forward.y + 0.25f; //Add bias to shoot up + this.strawTip.forward = tempForward; } - private void SpawnWaterDroplet() - { - if (strawTip == null || projectileConfig == null) return; - // Calculate spawn position - const float spawnOffset = 0.06f; - Vector3 spawnPos = strawTip.position + strawTip.forward * spawnOffset; - Quaternion rotation = Quaternion.Euler(cupController.movementController._cinemachineTargetPitch, cupController.movementController._cinemachineTargetYaw, 0f); - - // Multiply the rotation by Vector3.forward to get the resulting forward vector. - Vector3 dir = rotation * Vector3.forward; - - Quaternion spawnRot = Quaternion.FromToRotation(Vector3.up, dir); - - // Create projectile - GameObject go = CreateProjectile(spawnPos, spawnRot); - if (go == null) return; - - // Setup physics - SetupProjectilePhysics(go, dir); - - // Initialize WaterProjectile component - InitializeWaterProjectile(go); - } - - private GameObject CreateProjectile(Vector3 position, Quaternion rotation) - { - GameObject go; - - if (projectileConfig.waterProjectilePrefab != null) - { - go = Instantiate(projectileConfig.waterProjectilePrefab, position, rotation); - } - else - { - // Fallback: create sphere - go = GameObject.CreatePrimitive(PrimitiveType.Sphere); - go.transform.position = position; - go.transform.rotation = rotation; - go.transform.localScale = Vector3.one * 0.1f; - - var mr = go.GetComponent(); - if (mr != null && projectileConfig.waterMaterial != null) - mr.material = projectileConfig.waterMaterial; - } - - // Set layer - int projLayer = LayerMask.NameToLayer(projectileConfig.projectileLayerName); - if (projLayer != -1) go.layer = projLayer; - - return go; - } - - private void SetupProjectilePhysics(GameObject go, Vector3 direction) - { - // Ensure components exist - var col = go.GetComponent(); - if (col == null) col = go.AddComponent(); - col.isTrigger = true; - - var rb = go.GetComponent(); - if (rb == null) rb = go.AddComponent(); - rb.useGravity = true; - rb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; - rb.interpolation = RigidbodyInterpolation.Interpolate; - - // Apply force - rb.AddForce(direction * projectileConfig.muzzleSpeed, ForceMode.VelocityChange); - } - - private void InitializeWaterProjectile(GameObject go) - { - var proj = go.GetComponent(); - if (proj == null) proj = go.AddComponent(); - - // Filter out null/disabled colliders - var validColliders = new System.Collections.Generic.List(); - if (selfColliders != null) - { - foreach (var selfCol in selfColliders) - { - if (selfCol != null && selfCol.enabled) - { - validColliders.Add(selfCol); - } - } - } - - if (validColliders.Count > 0) - { - proj.Init(projectileConfig.damage, projectileConfig.lifetime, validColliders.ToArray()); - } - } - - // Debug visualization - void OnDrawGizmosSelected() - { - if (strawTip) - { - Gizmos.color = Color.cyan; - Gizmos.DrawWireSphere(strawTip.position, 0.02f); - Gizmos.DrawRay(strawTip.position, strawTip.forward * 0.5f); - } - } + // Debug visualization + void OnDrawGizmosSelected() { + if (strawTip != null) { + Gizmos.color = Color.cyan; + Gizmos.DrawWireSphere(strawTip.position, 0.02f); + Gizmos.DrawRay(strawTip.position, strawTip.forward * 0.5f); + } + } } \ No newline at end of file diff --git a/Assets/Scripts/Interactions/WaterManager.cs b/Assets/Scripts/Interactions/WaterManager.cs new file mode 100644 index 0000000..5940ef9 --- /dev/null +++ b/Assets/Scripts/Interactions/WaterManager.cs @@ -0,0 +1,148 @@ +using UnityEngine; +using System.Linq; +using Unity.VisualScripting; + + +//The manager is used by both the straw and the jetpack to produce water droplets and track water consumption +public class WaterManager : MonoBehaviour { + //Public~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + public WaterProjectileConfig projectileConfig; + + //Private~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + [Header("Debugging")] + [SerializeField] + private bool ConsumesWater = true; + [ReadOnly, SerializeField] + private float currentWater = 0f; + public float WaterLevel => this.currentWater; + + private CupController cupController; + private Collider[] selfColliders; + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // public bool HasWater => this.currentWater > 0f; + + private bool HasWater() { + // Access CupController's properties directly + return cupController.IsFull + && (cupController.HeldType == ScoopableObject.ScoopType.Water || + cupController.HeldType == ScoopableObject.ScoopType.PouringWater); + } + + //################################################################################################### + void Awake() { + if (!this.StrictTryGetComponent(out cupController)) this.enabled = false; + + this.selfColliders = GetComponentsInChildren(); + + // Setup projectile layer collision rules + if (this.projectileConfig != null && this.projectileConfig.TryGetProjectileLayer(out int projLayer)) { + Physics.IgnoreLayerCollision(projLayer, projLayer); + } + } + + void Update() { + // Refills if previously empty + if (currentWater == 0 && HasWater()) { + currentWater = 100f; + } + if (currentWater > 0 && !HasWater()) { + currentWater = 0; + } + } + + // This method gets called by the animation state when scooping + public void OnWaterScooped(ScoopableObject.ScoopType type) { + // Fill water capacity for water types + if (type == ScoopableObject.ScoopType.Water || type == ScoopableObject.ScoopType.PouringWater) { + currentWater = projectileConfig != null ? projectileConfig.maxWater : 100f; + } + } + + // This method gets called by the animation state when cup is emptied + public void OnCupEmptied() { + this.currentWater = 0f; + } + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + + //This is called by the Squirt SquirtMechanic and JetpackMechanic scripts to produce water. + //Returns if spawning is successful. TODO: add water consumption + public void SpawnWaterDroplet(Transform spawner) => this.GenerateWaterDroplet(spawner); + public void SpawnWaterDroplet(params Transform[] spawners) { + foreach (var spawner in spawners) this.GenerateWaterDroplet(spawner); + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + public bool ProcessSquirting() { //Returns if there is enough water available to process squirt. + if (projectileConfig == null) return false; + if (this.ConsumesWater is false) return true; + // Consume water continuously + float consume = projectileConfig.squirtRate * Time.deltaTime; + currentWater = Mathf.Max(0f, currentWater - consume); + if (currentWater == 0f) { + this.cupController.EmptyCup(); + return false; + } else return true; + } + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + private void GenerateWaterDroplet(Transform spawner) { + if (spawner == null || this.projectileConfig == null) return; + + // Calculate spawn position and rotation + const float spawnOffset = 0.06f; + Vector3 spawnPos = spawner.position + spawner.forward * spawnOffset; + Quaternion spawnRot = Quaternion.FromToRotation(Vector3.up, spawner.forward); + + // Create projectile + if (CreateProjectile(spawnPos, spawnRot, out GameObject go)) { + SetupProjectilePhysics(go, spawner.forward); // Setup physics + InitializeWaterProjectile(go); // Initialize WaterProjectile component + // ProcessSquirting(); + } + } + + private bool CreateProjectile(Vector3 position, Quaternion rotation, out GameObject go) { + if (projectileConfig.waterProjectilePrefab != null) { + go = Instantiate(projectileConfig.waterProjectilePrefab, position, rotation); + } else { + // Fallback: create sphere + go = GameObject.CreatePrimitive(PrimitiveType.Sphere); + (go.transform.position, go.transform.rotation, go.transform.localScale) = (position, rotation, Vector3.one * 0.1f); + var mr = go.GetComponent(); + if (mr && projectileConfig.waterMaterial) mr.material = projectileConfig.waterMaterial; + } + + // Set layer + if (this.projectileConfig.TryGetProjectileLayer(out int projLayer)) go.layer = projLayer; + return go != null; //This is from original SpawnWaterDroplet function, this needs reworked + } + + private void SetupProjectilePhysics(GameObject go, Vector3 direction) { + var col = go.GetOrAddComponent(); + var rb = go.GetOrAddComponent(); + + col.isTrigger = true; + rb.useGravity = true; + rb.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic; + rb.interpolation = RigidbodyInterpolation.Interpolate; + + // Apply force + // var cupVel = cupController.movementController.CurrentVelocity * 0.75f; + // cupVel.y = 0; + // rb.linearVelocity = cupVel; + rb.AddForce(direction * projectileConfig.muzzleSpeed, ForceMode.VelocityChange); + } + + private void InitializeWaterProjectile(GameObject go) { + var proj = go.GetOrAddComponent(); + // Filter out null/disabled colliders + var validColliders = selfColliders?.Where((col) => col != null && col.enabled).ToArray(); + proj.Init(projectileConfig.damage, projectileConfig.lifetime, validColliders); + } + + //################################################################################################### + //Utility functions + +} diff --git a/Assets/Scripts/Interactions/WaterManager.cs.meta b/Assets/Scripts/Interactions/WaterManager.cs.meta new file mode 100644 index 0000000..7a41513 --- /dev/null +++ b/Assets/Scripts/Interactions/WaterManager.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6c5cf44be52c8ee4db16bed1e29ecead \ No newline at end of file diff --git a/Assets/Scripts/Interactions/WaterProjectile.cs b/Assets/Scripts/Interactions/WaterProjectile.cs index ec513f7..0a43868 100644 --- a/Assets/Scripts/Interactions/WaterProjectile.cs +++ b/Assets/Scripts/Interactions/WaterProjectile.cs @@ -9,6 +9,7 @@ public class WaterProjectile : MonoBehaviour public float life = 3f; private Collider myCol; + private Rigidbody myRid; private readonly List<(Collider a, Collider b)> ignoredPairs = new(); private float timer; @@ -24,8 +25,8 @@ private void InitializeCollider() myCol = GetComponent(); myCol.isTrigger = true; - var rb = GetComponent(); - rb.useGravity = true; + myRid = GetComponent(); + myRid.useGravity = true; } } @@ -49,9 +50,18 @@ public void Init(float dmg, float lifetime, Collider[] ignoreThese) } void Update() - { - timer += Time.deltaTime; - if (timer >= life) Destroy(gameObject); + { + //If it has velocity, make cylinder rotate with the arc. + if (this.myRid.linearVelocity.sqrMagnitude > 1f) + { + this.transform.up = this.myRid.linearVelocity.normalized; + } + + + + timer += Time.deltaTime; + if (timer >= life) Destroy(gameObject); + } void OnTriggerEnter(Collider other) diff --git a/Assets/Scripts/Interactions/WaterProjectileConfig.cs b/Assets/Scripts/Interactions/WaterProjectileConfig.cs index 6e8f5fa..83844fc 100644 --- a/Assets/Scripts/Interactions/WaterProjectileConfig.cs +++ b/Assets/Scripts/Interactions/WaterProjectileConfig.cs @@ -14,8 +14,12 @@ public class WaterProjectileConfig : MonoBehaviour [Header("Visuals")] public Material waterMaterial; - public GameObject waterProjectilePrefab; + public GameObject waterProjectilePrefab; + // public GameObject waterSplashPrefab; - [Header("Layer")] - public string projectileLayerName = "WaterProjectile"; + [Header("Layer")] + public string projectileLayerName = "WaterProjectile"; + + + public bool TryGetProjectileLayer(out int layer) => ((layer = LayerMask.NameToLayer(this.projectileLayerName)) != -1); } \ No newline at end of file diff --git a/Assets/Scripts/ProjectilePitchAdjust.cs b/Assets/Scripts/ProjectilePitchAdjust.cs deleted file mode 100644 index 21a3655..0000000 --- a/Assets/Scripts/ProjectilePitchAdjust.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Unity.VisualScripting; -using UnityEngine; - -public class ProjectilePitchAdjust : MonoBehaviour -{ - public Rigidbody rigid; - - // Update is called once per frame - void Update() - { - if (rigid.linearVelocity.magnitude >= 0.1) - { - transform.rotation = Quaternion.LookRotation(rigid.linearVelocity) * Quaternion.Euler(-90, 0, 0); - } - } -} diff --git a/Assets/Scripts/ProjectilePitchAdjust.cs.meta b/Assets/Scripts/ProjectilePitchAdjust.cs.meta deleted file mode 100644 index 510a77b..0000000 --- a/Assets/Scripts/ProjectilePitchAdjust.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: d3ad7131047e44083bdd16c4ca5170fe \ No newline at end of file diff --git a/Assets/Scripts/Utilities.meta b/Assets/Scripts/Utilities.meta new file mode 100644 index 0000000..7fb8fbd --- /dev/null +++ b/Assets/Scripts/Utilities.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3285b953663adfd408f6806835bc1d55 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Utilities/Extentions.cs b/Assets/Scripts/Utilities/Extentions.cs new file mode 100644 index 0000000..c632daf --- /dev/null +++ b/Assets/Scripts/Utilities/Extentions.cs @@ -0,0 +1,21 @@ +using UnityEngine; + +public static class GameObjectExtentions { + public static bool StrictTryGetComponent(this M self, out T result) where T : Component where M : MonoBehaviour { + if (self.gameObject.TryGetComponent(out result) is false) { + Debug.LogError($"{typeof(M)} requires a {typeof(T)} component on the same GameObject!"); + return false; + } else return true; + } + + + public static T GetOrAddComponent(this MonoBehaviour self) where T : Component where V : T + => self.gameObject.TryGetComponent(out T result) ? result : self.gameObject.AddComponent(); + public static T GetOrAddComponent(this MonoBehaviour self) where T : Component + => self.gameObject.TryGetComponent(out T result) ? result : self.gameObject.AddComponent(); + + + public static T GetOrAddComponent(this GameObject go) where T : Component where V : T + => go.TryGetComponent(out T result) ? result : go.AddComponent(); +} + diff --git a/Assets/Scripts/Utilities/Extentions.cs.meta b/Assets/Scripts/Utilities/Extentions.cs.meta new file mode 100644 index 0000000..be6e626 --- /dev/null +++ b/Assets/Scripts/Utilities/Extentions.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 4de4724e8d1086043bac44f1e8afe91e \ No newline at end of file diff --git a/Assets/Scripts/Utilities/ReadOnlyAttribute.cs b/Assets/Scripts/Utilities/ReadOnlyAttribute.cs new file mode 100644 index 0000000..49c9da4 --- /dev/null +++ b/Assets/Scripts/Utilities/ReadOnlyAttribute.cs @@ -0,0 +1,3 @@ +using UnityEngine; + +public class ReadOnlyAttribute : PropertyAttribute { } \ No newline at end of file diff --git a/Assets/Scripts/Utilities/ReadOnlyAttribute.cs.meta b/Assets/Scripts/Utilities/ReadOnlyAttribute.cs.meta new file mode 100644 index 0000000..ae91609 --- /dev/null +++ b/Assets/Scripts/Utilities/ReadOnlyAttribute.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c66219bf8bb40c840a9b67f31143ea67 \ No newline at end of file diff --git a/Assets/StarterThirdPersonAssets/InputSystem/StarterAssetsInputs.cs b/Assets/StarterThirdPersonAssets/InputSystem/StarterAssetsInputs.cs index 84b92b3..b24d507 100644 --- a/Assets/StarterThirdPersonAssets/InputSystem/StarterAssetsInputs.cs +++ b/Assets/StarterThirdPersonAssets/InputSystem/StarterAssetsInputs.cs @@ -21,9 +21,16 @@ public class StarterAssetsInputs : MonoBehaviour public bool cursorInputForLook = true; [Header("AnimationManager")] - public AnimationManager animationManager; + public AnimationManager animationManager; - private void Update() + private ThirdPersonController controller; + private void Awake() + { + this.controller = this.GetComponent(); + } + + + private void Update() { HandleJumpAnimation(); @@ -32,18 +39,17 @@ private void Update() float speed = new Vector2(horizontal, vertical).magnitude; - if (animationManager != null) + if (this.controller.Grounded && animationManager != null) { animationManager.Walk(speed); - } - else - { + } else { Debug.LogWarning("AnimationManager reference is missing in StarterAssetsInputs."); } } - private void HandleJumpAnimation(){ - if (jump && animationManager != null) + private void HandleJumpAnimation() + { + if (this.controller.Grounded is false && animationManager != null) { // When jumping, set speed to 0 so we don't walk in mid air .-. animationManager.Walk(0f); diff --git a/Assets/StarterThirdPersonAssets/ThirdPersonController/Scripts/ThirdPersonController.cs b/Assets/StarterThirdPersonAssets/ThirdPersonController/Scripts/ThirdPersonController.cs index 74a8769..409e47f 100644 --- a/Assets/StarterThirdPersonAssets/ThirdPersonController/Scripts/ThirdPersonController.cs +++ b/Assets/StarterThirdPersonAssets/ThirdPersonController/Scripts/ThirdPersonController.cs @@ -58,8 +58,10 @@ public class ThirdPersonController : MonoBehaviour [Tooltip("The height the player can jump")] public float JumpHeight = 1.2f; - [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] - public float Gravity = -15.0f; + [Tooltip("The character uses its own gravity value. The engine default is -9.81f")] + public float Gravity = -15.0f; + [Tooltip("If gravity should be applied to the character. Disable to float.")] + public bool ApplyGravity = true; [Space(10)] [Tooltip("Time required to pass before being able to jump again. Set to 0f to instantly jump again")] @@ -255,231 +257,222 @@ private void CameraRotation() CinemachineCameraTarget.transform.rotation = Quaternion.Euler(_cinemachineTargetPitch + CameraAngleOverride, _cinemachineTargetYaw, 0.0f); } + public Vector3 CurrentVelocity => this._controller.velocity; + private void Move() { + _isAiming = Input.GetKey(KeyCode.Mouse1); + + // Handles transition between aiming and not aiming to allow for camera/animation transition + if (_isAiming && !_isAimingActive) { + _aimTransitionTime += Time.deltaTime; + if (_aimTransitionTime >= AimTransitionTime) { + _aimTransitionTime = AimTransitionTime; + _isAimingActive = true; + } + } else if (!_isAiming && _isAimingActive) { + _aimTransitionTime -= Time.deltaTime; + if (_aimTransitionTime <= 0) { + _aimTransitionTime = 0; + _isAimingActive = false; + } + } + + // set target speed based on move speed, sprint speed and if sprint is pressed + + float targetSpeed; + if (_isAimingActive) { + targetSpeed = AimSpeed; + } else { + targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; + } + + Cinemachine3rdPersonFollow personFollow = CinemachineCamData.GetCinemachineComponent(); + + // Adjusts camera based on aim state + float mid = (BottomClamp + TopClamp) / 2; + float midDiff = TopClamp - mid; + float pitchScale = (Mathf.Abs(_cinemachineTargetPitch - mid) / midDiff); + Vector3 trueOffSet; + if (_aimTransitionTime > 0) { + trueOffSet = Vector3.Lerp(AimShoulderOffset, AimShoulderFullPitchOffset, pitchScale); + } else { + trueOffSet = new Vector3(0, 0, 0); + } + personFollow.CameraSide = Mathf.Lerp(0.5f, 0.5f + trueOffSet.x, _aimTransitionTime / AimTransitionTime); + personFollow.ShoulderOffset.y = Mathf.Lerp(0f, 0 + trueOffSet.y, _aimTransitionTime / AimTransitionTime); + personFollow.ShoulderOffset.z = Mathf.Lerp(0f, 0 + trueOffSet.z, _aimTransitionTime / AimTransitionTime); + + // Raycasts from camera to check where to shoot + Vector3 rayHitPoint = new Vector3(); + if (_aimTransitionTime > 0) { + Ray cameraRay = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); + Ray trueRay = new Ray(cameraRay.origin + cameraRay.direction * AimRayOffset, cameraRay.direction); + + RaycastHit cameraHit; + Physics.Raycast(trueRay, out cameraHit); + // Checks middle + if (cameraHit.collider == null) { + rayHitPoint = trueRay.origin + trueRay.direction * 1000; + } else { + rayHitPoint = cameraHit.point; + } + } + + // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon + + // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is no input, set the target speed to 0 + if (_input.move == Vector2.zero) targetSpeed = 0.0f; + + // a reference to the players current horizontal velocity + float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude; + + float speedOffset = 0.1f; + float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; + + // accelerate or decelerate to target speed + if (currentHorizontalSpeed < targetSpeed - speedOffset || + currentHorizontalSpeed > targetSpeed + speedOffset) { + // creates curved result rather than a linear one giving a more organic speed change + // note T in Lerp is clamped, so we don't need to clamp our speed + _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, + Time.deltaTime * SpeedChangeRate); + + // round speed to 3 decimal places + _speed = Mathf.Round(_speed * 1000f) / 1000f; + } else { + _speed = targetSpeed; + } + + _animationBlend = Mathf.Lerp(_animationBlend, targetSpeed, Time.deltaTime * SpeedChangeRate); + if (_animationBlend < 0.01f) _animationBlend = 0f; + + // normalise input direction + Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; + + // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude + // if there is a move input rotate player when the player is moving + if (_input.move != Vector2.zero || _aimTransitionTime > 0) { + _targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg + + _mainCamera.transform.eulerAngles.y; + float rotation; + + // Alters rotation based off of aim transition state + if (_aimTransitionTime <= 0) { + rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity, RotationSmoothTime); + } else { + Vector3 rayDiff = rayHitPoint - gameObject.transform.position; + float resultRot = Mathf.Atan2(rayDiff.x, rayDiff.z) * Mathf.Rad2Deg; + rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, resultRot, ref _rotationVelocity, RotationSmoothTime / 3); + } + + // rotate to face input direction relative to camera position + transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); + } + + + Vector3 targetDirection = Quaternion.Euler(0.0f, _targetRotation, 0.0f) * Vector3.forward; + + // move the player + _controller.Move(targetDirection.normalized * (_speed * Time.deltaTime) + + new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime); + + // update animator if using character + if (_hasAnimator) { + _animator.SetFloat(_animIDSpeed, _animationBlend); + _animator.SetFloat(_animIDMotionSpeed, inputMagnitude); + } + } + - private void Move() - { - _isAiming = Input.GetKey(KeyCode.Mouse1); - // Handles transition between aiming and not aiming to allow for camera/animation transition - if (_isAiming && !_isAimingActive) - { - _aimTransitionTime += Time.deltaTime; - if (_aimTransitionTime >= AimTransitionTime) - { - _aimTransitionTime = AimTransitionTime; - _isAimingActive = true; - } - } - else if (!_isAiming && _isAimingActive) - { - _aimTransitionTime -= Time.deltaTime; - if (_aimTransitionTime <= 0) - { - _aimTransitionTime = 0; - _isAimingActive = false; - } - } - // set target speed based on move speed, sprint speed and if sprint is pressed - float targetSpeed; - if (_isAimingActive) - { - targetSpeed = AimSpeed; - } - else - { - targetSpeed = _input.sprint ? SprintSpeed : MoveSpeed; - } - Cinemachine3rdPersonFollow personFollow = CinemachineCamData.GetCinemachineComponent(); - // Adjusts camera based on aim state - float mid = (BottomClamp + TopClamp) / 2; - float midDiff = TopClamp - mid; - float pitchScale = (Mathf.Abs(_cinemachineTargetPitch - mid) / midDiff); - Vector3 trueOffSet; - if (_aimTransitionTime > 0) - { - trueOffSet = Vector3.Lerp(AimShoulderOffset, AimShoulderFullPitchOffset, pitchScale); - } - else - { - trueOffSet = new Vector3(0, 0, 0); - } - personFollow.CameraSide = Mathf.Lerp(0.5f, 0.5f + trueOffSet.x, _aimTransitionTime / AimTransitionTime); - personFollow.ShoulderOffset.y = Mathf.Lerp(0f, 0 + trueOffSet.y, _aimTransitionTime / AimTransitionTime); - personFollow.ShoulderOffset.z = Mathf.Lerp(0f, 0 + trueOffSet.z , _aimTransitionTime / AimTransitionTime); - // Raycasts from camera to check where to shoot - Vector3 rayHitPoint = new Vector3(); - if (_aimTransitionTime > 0) - { - Ray cameraRay = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); - Ray trueRay = new Ray(cameraRay.origin + cameraRay.direction * AimRayOffset, cameraRay.direction); - - RaycastHit cameraHit; - Physics.Raycast(trueRay, out cameraHit); - // Checks middle - if (cameraHit.collider == null) - { - rayHitPoint = trueRay.origin + trueRay.direction * 1000; - } - else - { - rayHitPoint = cameraHit.point; - } - } + //This is used to implement flying from the jetpack. + public void SetVerticalVelocity(float newVelocity) => this._verticalVelocity = newVelocity; + private void JumpAndGravity() + { + if (Grounded) { + // reset the fall timeout timer + _fallTimeoutDelta = FallTimeout; + + // update animator if using character + if (_hasAnimator) { + _animator.SetBool(_animIDJump, false); + _animator.SetBool(_animIDFreeFall, false); + } + + // stop our velocity dropping infinitely when grounded + if (_verticalVelocity < 0.0f) { + _verticalVelocity = -2f; + } + + // Jump + if (_input.jump && _jumpTimeoutDelta <= 0.0f) { + // the square root of H * -2 * G = how much velocity needed to reach desired height + _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); + + // update animator if using character + if (_hasAnimator) { + _animator.SetBool(_animIDJump, true); + } + } + + // jump timeout + if (_jumpTimeoutDelta >= 0.0f) { + _jumpTimeoutDelta -= Time.deltaTime; + } + } else { + // reset the jump timeout timer + _jumpTimeoutDelta = JumpTimeout; + + // fall timeout + if (_fallTimeoutDelta >= 0.0f) { + _fallTimeoutDelta -= Time.deltaTime; + } else { + // update animator if using character + if (_hasAnimator) { + _animator.SetBool(_animIDFreeFall, true); + } + } + + // if we are not grounded, do not jump + _input.jump = false; + } + + if (ApplyGravity || _verticalVelocity > 0f) { + // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) + if (_verticalVelocity < _terminalVelocity) { + _verticalVelocity += Gravity * Time.deltaTime; + } + } else _verticalVelocity = 0f; - // a simplistic acceleration and deceleration designed to be easy to remove, replace, or iterate upon - // note: Vector2's == operator uses approximation so is not floating point error prone, and is cheaper than magnitude - // if there is no input, set the target speed to 0 - if (_input.move == Vector2.zero) targetSpeed = 0.0f; + } - // a reference to the players current horizontal velocity - float currentHorizontalSpeed = new Vector3(_controller.velocity.x, 0.0f, _controller.velocity.z).magnitude; - float speedOffset = 0.1f; - float inputMagnitude = _input.analogMovement ? _input.move.magnitude : 1f; - // accelerate or decelerate to target speed - if (currentHorizontalSpeed < targetSpeed - speedOffset || - currentHorizontalSpeed > targetSpeed + speedOffset) - { - // creates curved result rather than a linear one giving a more organic speed change - // note T in Lerp is clamped, so we don't need to clamp our speed - _speed = Mathf.Lerp(currentHorizontalSpeed, targetSpeed * inputMagnitude, - Time.deltaTime * SpeedChangeRate); - // round speed to 3 decimal places - _speed = Mathf.Round(_speed * 1000f) / 1000f; - } - else - { - _speed = targetSpeed; - } - _animationBlend = Mathf.Lerp(_animationBlend, targetSpeed, Time.deltaTime * SpeedChangeRate); - if (_animationBlend < 0.01f) _animationBlend = 0f; - // normalise input direction - Vector3 inputDirection = new Vector3(_input.move.x, 0.0f, _input.move.y).normalized; - // note: Vector2's != operator uses approximation so is not floating point error prone, and is cheaper than magnitude - // if there is a move input rotate player when the player is moving - if (_input.move != Vector2.zero || _aimTransitionTime > 0) - { - _targetRotation = Mathf.Atan2(inputDirection.x, inputDirection.z) * Mathf.Rad2Deg + - _mainCamera.transform.eulerAngles.y; - float rotation; - - // Alters rotation based off of aim transition state - if (_aimTransitionTime <= 0) - { - rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, _targetRotation, ref _rotationVelocity, RotationSmoothTime); - } - else - { - Vector3 rayDiff = rayHitPoint - gameObject.transform.position; - float resultRot = Mathf.Atan2(rayDiff.x, rayDiff.z) * Mathf.Rad2Deg; - rotation = Mathf.SmoothDampAngle(transform.eulerAngles.y, resultRot, ref _rotationVelocity, RotationSmoothTime/3); - } - - // rotate to face input direction relative to camera position - transform.rotation = Quaternion.Euler(0.0f, rotation, 0.0f); - } - Vector3 targetDirection = Quaternion.Euler(0.0f, _targetRotation, 0.0f) * Vector3.forward; - // move the player - _controller.Move(targetDirection.normalized * (_speed * Time.deltaTime) + - new Vector3(0.0f, _verticalVelocity, 0.0f) * Time.deltaTime); - // update animator if using character - if (_hasAnimator) - { - _animator.SetFloat(_animIDSpeed, _animationBlend); - _animator.SetFloat(_animIDMotionSpeed, inputMagnitude); - } - } - private void JumpAndGravity() - { - if (Grounded) - { - // reset the fall timeout timer - _fallTimeoutDelta = FallTimeout; - - // update animator if using character - if (_hasAnimator) - { - _animator.SetBool(_animIDJump, false); - _animator.SetBool(_animIDFreeFall, false); - } - - // stop our velocity dropping infinitely when grounded - if (_verticalVelocity < 0.0f) - { - _verticalVelocity = -2f; - } - - // Jump - if (_input.jump && _jumpTimeoutDelta <= 0.0f) - { - // the square root of H * -2 * G = how much velocity needed to reach desired height - _verticalVelocity = Mathf.Sqrt(JumpHeight * -2f * Gravity); - - // update animator if using character - if (_hasAnimator) - { - _animator.SetBool(_animIDJump, true); - } - } - - // jump timeout - if (_jumpTimeoutDelta >= 0.0f) - { - _jumpTimeoutDelta -= Time.deltaTime; - } - } - else - { - // reset the jump timeout timer - _jumpTimeoutDelta = JumpTimeout; - - // fall timeout - if (_fallTimeoutDelta >= 0.0f) - { - _fallTimeoutDelta -= Time.deltaTime; - } - else - { - // update animator if using character - if (_hasAnimator) - { - _animator.SetBool(_animIDFreeFall, true); - } - } - - // if we are not grounded, do not jump - _input.jump = false; - } - // apply gravity over time if under terminal (multiply by delta time twice to linearly speed up over time) - if (_verticalVelocity < _terminalVelocity) - { - _verticalVelocity += Gravity * Time.deltaTime; - } - } - private static float ClampAngle(float lfAngle, float lfMin, float lfMax) - { - if (lfAngle < -360f) lfAngle += 360f; - if (lfAngle > 360f) lfAngle -= 360f; - return Mathf.Clamp(lfAngle, lfMin, lfMax); - } + + + + private static float ClampAngle(float lfAngle, float lfMin, float lfMax) { + if (lfAngle < -360f) lfAngle += 360f; + if (lfAngle > 360f) lfAngle -= 360f; + return Mathf.Clamp(lfAngle, lfMin, lfMax); + } private void OnDrawGizmosSelected() {