Add new prefabs for Lava and Checkpoint; implement particle effects and update player death logic

This commit is contained in:
Данил Ярош 2025-10-22 16:38:07 +03:00
parent 5e7b1c4cdd
commit ab3589f0ad
26 changed files with 117356 additions and 11149 deletions

View File

@ -157,7 +157,8 @@ AnimatorState:
m_Name: Death
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_Transitions:
- {fileID: 1790878236126697555}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@ -366,7 +367,7 @@ AnimatorController:
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
- m_Name: Death
m_Type: 4
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
@ -384,6 +385,28 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1101 &1790878236126697555
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions: []
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.8
m_HasExitTime: 1
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1964106236550896814
AnimatorState:
serializedVersion: 6
@ -513,7 +536,7 @@ AnimatorStateTransition:
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
m_CanTransitionToSelf: 0
--- !u!1102 &4892115860334434523
AnimatorState:
serializedVersion: 6

View File

@ -0,0 +1,189 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2861349915552106200
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6833976487979480668}
- component: {fileID: 7073330757080202051}
m_Layer: 0
m_Name: Signs_Attention
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6833976487979480668
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2861349915552106200}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 1, y: 1.7, z: 0}
m_LocalScale: {x: 0.25, y: 0.25, z: 0.25}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 5491244471745524865}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7073330757080202051
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2861349915552106200}
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_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 6bf6ab5c1534fe44b803733131ceacb9, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 10.24, y: 15.36}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &6994018639452157032
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5491244471745524865}
- component: {fileID: 5574401725797638114}
- component: {fileID: 2823314259245713668}
m_Layer: 0
m_Name: Checkpoint
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5491244471745524865
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6994018639452157032}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6833976487979480668}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!61 &5574401725797638114
BoxCollider2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6994018639452157032}
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ForceSendLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ForceReceiveLayers:
serializedVersion: 2
m_Bits: 4294967295
m_ContactCaptureLayers:
serializedVersion: 2
m_Bits: 4294967295
m_CallbackLayers:
serializedVersion: 2
m_Bits: 4294967295
m_IsTrigger: 1
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 1, y: 1}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
m_Size: {x: 2, y: 2}
m_EdgeRadius: 0
--- !u!114 &2823314259245713668
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6994018639452157032}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8ed83b33a6e095845a73838099cd40fa, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::RR.Game2D.Behaviour.Checkpoint
checkpointId:
spawnForward: {x: 1, y: 0}
playerTag: Player
activateVfx: {fileID: 0}
activateSfx: {fileID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1c7455363049dbc4996e240f0bcdceff
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,119 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1754008902089564202
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8213225719790051476}
- component: {fileID: -5429569644549282381}
- component: {fileID: 6931528425163354462}
m_Layer: 0
m_Name: Checkpoint_Particles
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8213225719790051476
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1754008902089564202}
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: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!2083052967 &-5429569644549282381
VisualEffect:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1754008902089564202}
m_Enabled: 1
m_Asset: {fileID: 8926484042661614526, guid: d3210933b376d454996980c907be3169, type: 3}
m_InitialEventName: OnPlay
m_InitialEventNameOverriden: 0
m_StartSeed: 0
m_ResetSeedOnPlay: 1
m_AllowInstancing: 1
m_ResourceVersion: 1
m_PropertySheet:
m_Float:
m_Array: []
m_Vector2f:
m_Array: []
m_Vector3f:
m_Array: []
m_Vector4f:
m_Array: []
m_Uint:
m_Array: []
m_Int:
m_Array: []
m_Matrix4x4f:
m_Array: []
m_AnimationCurve:
m_Array: []
m_Gradient:
m_Array: []
m_NamedObject:
m_Array: []
m_Bool:
m_Array: []
--- !u!73398921 &6931528425163354462
VFXRenderer:
serializedVersion: 1
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1754008902089564202}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 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_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c95e72e011a10ca43a3cb1bd524cdc19
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -2826,7 +2826,7 @@ MonoBehaviour:
moveSpeed: 9
accel: 100
decel: 30
jumpVelocity: 32
jumpVelocity: 34
jumpCut: 2
groundCheck: {fileID: 5801227406600662915}
groundCheckRadius: 0.1
@ -2880,8 +2880,6 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5f4612beb3ca33c4b9e2a6a2068977ab, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PayerAnimationEvents
callRespawnOnDeathEnd: 1
disableRootMotionDuringDeath: 0
--- !u!1 &6550761235546795891
GameObject:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3c6741449a413a0458b36f049db46c3f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -6,6 +6,7 @@ public class EnemyAnimationEvents : MonoBehaviour
{
public void OnDeathBegin()
{
gameObject.layer = LayerMask.NameToLayer("No Collision");
Rigidbody2D rb = GetComponent<Rigidbody2D>();
Collider2D col = GetComponent<Collider2D>();
EnemyController controller = GetComponent<EnemyController>();

View File

@ -18,6 +18,7 @@ public class PlayerAnimationEvents : MonoBehaviour
Animator animator = GetComponent<Animator>();
animator.ResetTrigger("Death");
gameObject.layer = LayerMask.NameToLayer("Default");
_rb.constraints = RigidbodyConstraints2D.FreezeRotation;
GameManager.Instance.RespawnPlayer();
}
}

View File

@ -1,5 +1,7 @@
using System;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.VFX;
namespace RR.Game2D.Entities
{
@ -14,20 +16,17 @@ namespace RR.Game2D.Entities
[SerializeField, Tooltip("Тег объекта игрока, который активирует чекпоинт")] private string playerTag = "Player";
[Header("FX (необязательно)")] public GameObject activateVfx;
[Header("FX (необязательно)")]
public GameObject activateVfx;
public AudioClip activateSfx;
bool _activated;
void Reset()
{
var col = GetComponent<Collider2D>();
col.isTrigger = true;
}
private bool _activated;
private Collider2D _col;
void Awake()
{
_col = GetComponent<Collider2D>();
_col.isTrigger = true;
if (String.IsNullOrWhiteSpace(checkpointId))
checkpointId = gameObject.name;
}
@ -44,7 +43,11 @@ namespace RR.Game2D.Entities
if (CheckpointSystem.Instance)
CheckpointSystem.Instance.SetActive(this);
if (activateVfx) Instantiate(activateVfx, transform.position, Quaternion.identity);
if (activateVfx)
{
activateVfx.transform.position = _col.bounds.center;
activateSfx.GetComponent<VisualEffect>().Play();
}
if (activateSfx) AudioSource.PlayClipAtPoint(activateSfx, transform.position);
}

View File

@ -180,6 +180,7 @@ namespace RR.Game2D.Behaviour
public void Die()
{
gameObject.layer = LayerMask.NameToLayer("No Collision");
rb.constraints = RigidbodyConstraints2D.FreezeAll;
animator.SetTrigger(Death);
}

View File

@ -35,6 +35,9 @@
},
{
"m_Id": "bbcf46dd565846249cf883eb5306af06"
},
{
"m_Id": "552bf026c10b4eefa182f28822bb4906"
}
],
"m_Keywords": [],
@ -1456,7 +1459,11 @@
"m_Type": "UnityEditor.ShaderGraph.CategoryData",
"m_ObjectId": "132150d23f2c49a2a9b866e35f8ce5af",
"m_Name": "",
"m_ChildObjectList": []
"m_ChildObjectList": [
{
"m_Id": "552bf026c10b4eefa182f28822bb4906"
}
]
}
{
@ -1637,7 +1644,7 @@
"m_ObjectId": "1e24b790fd9f4174b1904806e2e5dcf3",
"m_Title": "Noises",
"m_Position": {
"x": -2341.0,
"x": -2351.999755859375,
"y": -586.0
}
}
@ -2048,8 +2055,8 @@
"m_ObjectId": "32c7ee6507bc42d19d23630a9cb644c5",
"m_Title": "Outline",
"m_Position": {
"x": -1029.0,
"y": 278.0
"x": -1028.9998779296875,
"y": 277.9998779296875
}
}
@ -2522,6 +2529,46 @@
}
}
{
"m_SGVersion": 1,
"m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty",
"m_ObjectId": "552bf026c10b4eefa182f28822bb4906",
"m_Guid": {
"m_GuidSerialized": "cff4d50c-7d47-452e-895e-6d49f041f714"
},
"m_Name": "WaveSpeed",
"m_DefaultRefNameVersion": 1,
"m_RefNameGeneratedByDisplayName": "WaveSpeed",
"m_DefaultReferenceName": "_WaveSpeed",
"m_OverrideReferenceName": "",
"m_GeneratePropertyBlock": true,
"m_UseCustomSlotLabel": false,
"m_CustomSlotLabel": "",
"m_DismissedVersion": 0,
"m_Precision": 0,
"overrideHLSLDeclaration": false,
"hlslDeclarationOverride": 0,
"m_Hidden": false,
"m_PerRendererData": false,
"m_customAttributes": [],
"m_Value": 0.05000000074505806,
"m_FloatType": 0,
"m_RangeValues": {
"x": 0.0,
"y": 1.0
},
"m_SliderType": 0,
"m_SliderPower": 3.0,
"m_EnumType": 0,
"m_CSharpEnumString": "",
"m_EnumNames": [
"Default"
],
"m_EnumValues": [
0
]
}
{
"m_SGVersion": 0,
"m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot",
@ -5632,9 +5679,9 @@
"m_Expanded": false,
"m_Position": {
"serializedVersion": "2",
"x": -2316.0,
"y": -69.9999771118164,
"width": 136.0,
"x": -2327.0,
"y": -69.99999237060547,
"width": 165.0,
"height": 34.0
}
},

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: d3210933b376d454996980c907be3169
VisualEffectImporter:
externalObjects: {}
serializedVersion: 1
template:
name:
category:
description:
icon: {instanceID: 0}
thumbnail: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -14,17 +14,17 @@ EditorBuildSettings:
- enabled: 1
path: Assets/Scenes/Levels/1-1.unity
guid: 8c9cfa26abfee488c85f1582747f6a02
- enabled: 1
path: Assets/Scenes/Levels/1-2.unity
- enabled: 0
path: Assets/Scenes/Levels/Old/1-2.unity
guid: 9336a368292b6644db1e12e6521b3734
- enabled: 1
path: Assets/Scenes/Levels/1-3.unity
- enabled: 0
path: Assets/Scenes/Levels/Old/1-3.unity
guid: 13f288a85e56621419724a0daded8d3e
- enabled: 1
path: Assets/Scenes/Levels/1-4.unity
- enabled: 0
path: Assets/Scenes/Levels/Old/1-4.unity
guid: 5dc1a66b71546534a9c307ab82bf0ffd
- enabled: 1
path: Assets/Scenes/Levels/1-5.unity
- enabled: 0
path: Assets/Scenes/Levels/Old/1-5.unity
guid: b63c94138b89518459c618e66e063850
- enabled: 1
path: Assets/Scenes/Levels/2-1.unity