particles and fixes, level selection

- добавил частицы при смерти игрока
- Временно включил функцию выбора уровня
This commit is contained in:
Данил Ярош 2025-12-05 17:02:56 +03:00
parent 92bd2d36b9
commit 3fce87edb4
24 changed files with 3555 additions and 765 deletions

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CopilotDiffPersistence">
<option name="pendingDiffs">
<map>
<entry key="$PROJECT_DIR$/Assets/Scripts/Animations/EnemyAnimationEvents.cs">
<value>
<PendingDiffInfo>
<option name="filePath" value="$PROJECT_DIR$/Assets/Scripts/Animations/EnemyAnimationEvents.cs" />
<option name="originalContent" value="using System.Collections;&#10;using UnityEngine;&#10;&#10;using RR.Game2D.Behaviour;&#10;using RR.Game2D.Behaviour.ScriptableObjects;&#10;using RR.Game2D.Core.Managers;&#10;using UnityEngine.VFX;&#10;&#10;namespace RR.Game2D.Animations&#10;{&#10; public class EnemyAnimationEvents : MonoBehaviour, CreatureAnimationEvents&#10; {&#10; [SerializeField] private VisualEffectAsset deathVFX;&#10; &#10; private SFXAsset _stepSounds;&#10; private SFXAsset _hurtSounds;&#10;&#10; private void Awake()&#10; {&#10; // Загружаем и кэшируем звуковые эффекты из контроллера врага&#10; UpdateSFX();&#10; }&#10;&#10; public void UpdateSFX()&#10; {&#10; // Кэшируем ссылки на звуковые эффекты из контроллера врага&#10; EnemyController controller = GetComponent&lt;EnemyController&gt;();&#10; _stepSounds = controller.sfxAsset.stepSounds;&#10; _hurtSounds = controller.sfxAsset.hurtSounds;&#10; }&#10;&#10; public void OnDeath()&#10; {&#10; throw new System.NotImplementedException();&#10; }&#10;&#10; public void OnDeathBegin()&#10; {&#10; // Проигрываем звук получения урона&#10; if (_hurtSounds &amp;&amp; _hurtSounds.soundEffects.Length &gt; 0)&#10; GameManager.Instance.Audio.PlayRandomSfxAt(_hurtSounds.soundEffects, transform.position);&#10;&#10; // Переводим врага на слой &quot;No Collision&quot;&#10; gameObject.layer = LayerMask.NameToLayer(&quot;No Collision&quot;);&#10; &#10; // Получаем компоненты&#10; Rigidbody2D rb = GetComponent&lt;Rigidbody2D&gt;();&#10; Collider2D col = GetComponent&lt;Collider2D&gt;();&#10; EnemyController controller = GetComponent&lt;EnemyController&gt;();&#10; EnemyFireScript fireScript = GetComponent&lt;EnemyFireScript&gt;();&#10; &#10; // Отключаем скрипты и коллайдер&#10; if (controller) controller.enabled = false;&#10; if (fireScript) fireScript.enabled = false;&#10; if (col) col.enabled = false;&#10; if (!rb) return;&#10; &#10; // Останавливаем физику&#10; rb.linearVelocity = Vector2.zero;&#10; rb.bodyType = RigidbodyType2D.Kinematic;&#10; }&#10;&#10; public void OnDeathEnd()&#10; {&#10; // Уничтожаем врага&#10; &#10; // Создаем визуальный эффект смерти&#10; if (deathVFX)&#10; {&#10; Collider2D col = GetComponent&lt;Collider2D&gt;();&#10; GameObject vfx = VFXPool.Instance.Get(deathVFX, new Vector3(transform.position.x, col.bounds.center.y, transform.position.z));&#10; vfx.transform.rotation = transform.rotation;&#10; VisualEffect visualEffect = vfx.GetComponent&lt;VisualEffect&gt;();&#10; // visualEffect.Play();&#10; &#10; VFXPool.Instance.Return(vfx);&#10; }&#10; &#10; Destroy(gameObject);&#10; }&#10;&#10; public void OnStep()&#10; {&#10; // Проигрываем звук шага&#10; if (_stepSounds &amp;&amp; _stepSounds.soundEffects.Length &gt; 0)&#10; GameManager.Instance.Audio.PlayRandomSfxAt(_stepSounds.soundEffects, transform.position);&#10; }&#10;&#10; public void OnJump()&#10; {&#10; throw new System.NotImplementedException();&#10; }&#10; }&#10;}" />
<option name="updatedContent" value="using System.Collections;&#10;using UnityEngine;&#10;&#10;using RR.Game2D.Behaviour;&#10;using RR.Game2D.Behaviour.ScriptableObjects;&#10;using RR.Game2D.Core.Managers;&#10;using UnityEngine.VFX;&#10;&#10;namespace RR.Game2D.Animations&#10;{&#10; public class EnemyAnimationEvents : MonoBehaviour, CreatureAnimationEvents&#10; {&#10; [SerializeField] private VisualEffectAsset deathVFX;&#10; &#10; private SFXAsset _stepSounds;&#10; private SFXAsset _hurtSounds;&#10;&#10; private void Awake()&#10; {&#10; // Загружаем и кэшируем звуковые эффекты из контроллера врага&#10; UpdateSFX();&#10; }&#10;&#10; public void UpdateSFX()&#10; {&#10; // Кэшируем ссылки на звуковые эффекты из контроллера врага&#10; EnemyController controller = GetComponent&lt;EnemyController&gt;();&#10; _stepSounds = controller.sfxAsset.stepSounds;&#10; _hurtSounds = controller.sfxAsset.hurtSounds;&#10; }&#10;&#10; public void OnDeath()&#10; {&#10; throw new System.NotImplementedException();&#10; }&#10;&#10; public void OnDeathBegin()&#10; {&#10; // Проигрываем звук получения урона&#10; if (_hurtSounds &amp;&amp; _hurtSounds.soundEffects.Length &gt; 0)&#10; GameManager.Instance.Audio.PlayRandomSfxAt(_hurtSounds.soundEffects, transform.position);&#10;&#10; // Переводим врага на слой &quot;No Collision&quot;&#10; gameObject.layer = LayerMask.NameToLayer(&quot;No Collision&quot;);&#10; &#10; // Получаем компоненты&#10; Rigidbody2D rb = GetComponent&lt;Rigidbody2D&gt;();&#10; Collider2D col = GetComponent&lt;Collider2D&gt;();&#10; EnemyController controller = GetComponent&lt;EnemyController&gt;();&#10; EnemyFireScript fireScript = GetComponent&lt;EnemyFireScript&gt;();&#10; &#10; // Отключаем скрипты и коллайдер&#10; if (controller) controller.enabled = false;&#10; if (fireScript) fireScript.enabled = false;&#10; if (col) col.enabled = false;&#10; if (!rb) return;&#10; &#10; // Останавливаем физику&#10; rb.linearVelocity = Vector2.zero;&#10; rb.bodyType = RigidbodyType2D.Kinematic;&#10; }&#10;&#10; public void OnDeathEnd()&#10; {&#10; // Уничтожаем врага&#10; &#10; // Создаем визуальный эффект смерти&#10; if (deathVFX)&#10; {&#10; Collider2D col = GetComponent&lt;Collider2D&gt;();&#10; Vector3 pos = new Vector3(transform.position.x, col ? col.bounds.center.y : transform.position.y, transform.position.z);&#10; // Используем Spawn: пул сам реинициализирует, запустит Play() и вернёт объект обратно после таймаута.&#10; GameObject vfx = VFXPool.Instance.Spawn(deathVFX, pos);&#10; if (vfx) vfx.transform.rotation = transform.rotation;&#10; }&#10; &#10; Destroy(gameObject);&#10; }&#10;&#10; public void OnStep()&#10; {&#10; // Проигрываем звук шага&#10; if (_stepSounds &amp;&amp; _stepSounds.soundEffects.Length &gt; 0)&#10; GameManager.Instance.Audio.PlayRandomSfxAt(_stepSounds.soundEffects, transform.position);&#10; }&#10;&#10; public void OnJump()&#10; {&#10; throw new System.NotImplementedException();&#10; }&#10; }&#10;}" />
</PendingDiffInfo>
</value>
</entry>
</map>
</option>
</component>
</project>

View File

@ -67,13 +67,13 @@ AnimatorStateMachine:
m_Position: {x: 670, y: -80, z: 0}
- serializedVersion: 1
m_State: {fileID: 1536571424612025499}
m_Position: {x: 500, y: 50, z: 0}
m_Position: {x: 420, y: 70, z: 0}
- serializedVersion: 1
m_State: {fileID: -1677127065308032807}
m_Position: {x: 560, y: 190, z: 0}
m_Position: {x: 630, y: 250, z: 0}
- serializedVersion: 1
m_State: {fileID: 2146024918338126406}
m_Position: {x: 800, y: 710, z: 0}
m_Position: {x: 880, y: 510, z: 0}
- serializedVersion: 1
m_State: {fileID: -2911048155697096596}
m_Position: {x: 240, y: -70, z: 0}

View File

@ -561,6 +561,28 @@
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "Down",
"id": "3d3f5ff0-2e52-452f-8877-43b884933e82",
"path": "<Keyboard>/s",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Navigate",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "Down",
"id": "41b3b4cc-dac3-4add-acdf-ebbebc9cc0a7",
"path": "<Keyboard>/downArrow",
"interactions": "",
"processors": "",
"groups": "Keyboard&Mouse",
"action": "Navigate",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "",
"id": "4a218453-03f1-411b-a5be-5b483d69d0bb",

View File

@ -35,6 +35,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1133257887109764966
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -80,6 +81,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 130
m_MaskInteraction: 0
m_Sprite: {fileID: -7314516758093373832, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -89,7 +91,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5819565067167270430
MonoBehaviour:
@ -148,6 +149,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5436917139438059050
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -193,6 +195,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 110
m_MaskInteraction: 0
m_Sprite: {fileID: -164839347033225330, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -202,7 +205,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &3747696034629447903
MonoBehaviour:
@ -357,6 +359,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4669458512290179642
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -402,6 +405,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 270
m_MaskInteraction: 0
m_Sprite: {fileID: 6693202138295152104, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -411,7 +415,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5764483773902041625
MonoBehaviour:
@ -532,6 +535,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2446344901039448829
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -577,6 +581,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 50
m_MaskInteraction: 0
m_Sprite: {fileID: -5661695156105813953, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -586,7 +591,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1947195343389515869
MonoBehaviour:
@ -782,6 +786,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3991232924784692875
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -827,6 +832,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 70
m_MaskInteraction: 0
m_Sprite: {fileID: 9202984404932711791, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -836,7 +842,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &3107742843363612687
MonoBehaviour:
@ -924,6 +929,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3172262957484507976
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -969,6 +975,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 150
m_MaskInteraction: 0
m_Sprite: {fileID: 4013115251250039491, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -978,7 +985,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1878424657212141546
MonoBehaviour:
@ -1036,6 +1042,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2473197855946395771
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1081,6 +1088,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 100
m_MaskInteraction: 0
m_Sprite: {fileID: -962209174622309214, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1090,7 +1098,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4763932388167406736
MonoBehaviour:
@ -1180,6 +1187,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3163855793201979701
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1225,6 +1233,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 30
m_MaskInteraction: 0
m_Sprite: {fileID: 4915747386952914504, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1234,7 +1243,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &7644101565027642233
MonoBehaviour:
@ -1293,6 +1301,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1075285657873848445
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1338,6 +1347,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 170
m_MaskInteraction: 0
m_Sprite: {fileID: 5546884723567340426, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1347,7 +1357,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5178467373885802560
MonoBehaviour:
@ -1406,6 +1415,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7055789998206242112
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1451,6 +1461,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 60
m_MaskInteraction: 0
m_Sprite: {fileID: 5688498731606456266, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1460,7 +1471,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4668121268774542557
MonoBehaviour:
@ -1582,6 +1592,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4227087476350532626
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1627,6 +1638,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 300
m_MaskInteraction: 0
m_Sprite: {fileID: -5122409871508779338, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1636,7 +1648,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &782111862095932160
MonoBehaviour:
@ -1871,6 +1882,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5f4612beb3ca33c4b9e2a6a2068977ab, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::RR.Game2D.Animations.PlayerAnimationEvents
deathVFX: {fileID: 8926484042661614526, guid: 6c4fdce0f9a1b184d9c3660014bdfdb5, type: 3}
--- !u!1 &3858368938151547924
GameObject:
m_ObjectHideFlags: 0
@ -1906,6 +1918,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6992428489189129384
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1951,6 +1964,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 290
m_MaskInteraction: 0
m_Sprite: {fileID: 150988668789867834, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1960,7 +1974,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4355992800417324442
MonoBehaviour:
@ -2048,6 +2061,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2956458819214872322
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2093,6 +2107,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 200
m_MaskInteraction: 0
m_Sprite: {fileID: -1549096108764380935, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2102,7 +2117,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &8936930196156110543
MonoBehaviour:
@ -2287,6 +2301,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3727856667959506277
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2332,6 +2347,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 260
m_MaskInteraction: 0
m_Sprite: {fileID: 3129511523439360540, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2341,7 +2357,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4388477844039393885
MonoBehaviour:
@ -2398,6 +2413,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &407837471103598002
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2443,6 +2459,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 240
m_MaskInteraction: 0
m_Sprite: {fileID: -921071596155124139, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2452,7 +2469,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5224024033447921719
MonoBehaviour:
@ -2542,6 +2558,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8762826485504666580
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2587,6 +2604,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 280
m_MaskInteraction: 0
m_Sprite: {fileID: -3144633359940803573, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2596,7 +2614,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &6319071781394642763
MonoBehaviour:
@ -2730,6 +2747,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2708351444364118182
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2775,6 +2793,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 180
m_MaskInteraction: 0
m_Sprite: {fileID: 4343387480515338132, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2784,7 +2803,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &724132775351553400
MonoBehaviour:
@ -2845,6 +2863,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8775680882091656417
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2890,6 +2909,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 190
m_MaskInteraction: 0
m_Sprite: {fileID: -1334230109140272425, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2899,7 +2919,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &6420817679046791518
MonoBehaviour:
@ -3023,6 +3042,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &1103591093376970971
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3068,6 +3088,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 310
m_MaskInteraction: 0
m_Sprite: {fileID: 1727280087122091534, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3077,7 +3098,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1440421346537189561
MonoBehaviour:
@ -3166,6 +3186,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6072898421432656622
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3211,6 +3232,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 320
m_MaskInteraction: 0
m_Sprite: {fileID: -6961950492574641117, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3220,7 +3242,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &7970123990525414566
MonoBehaviour:
@ -3277,6 +3298,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7793429301943295648
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3322,6 +3344,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 20
m_MaskInteraction: 0
m_Sprite: {fileID: -8320496513077812493, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3331,7 +3354,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &8267879841289530745
MonoBehaviour:
@ -3392,6 +3414,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7528092986052362387
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3437,6 +3460,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 140
m_MaskInteraction: 0
m_Sprite: {fileID: 6783752571112214151, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3446,7 +3470,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1420227002522630036
MonoBehaviour:
@ -3535,6 +3558,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7371383706498570418
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3580,6 +3604,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 230
m_MaskInteraction: 0
m_Sprite: {fileID: -4410586660626731876, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3589,7 +3614,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4281301768409661974
MonoBehaviour:
@ -3743,6 +3767,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &5215110486840039249
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3788,6 +3813,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 210
m_MaskInteraction: 0
m_Sprite: {fileID: 3753856189432605465, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3797,7 +3823,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &8509141133489858123
MonoBehaviour:
@ -3890,6 +3915,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &8612889157297109209
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -3935,6 +3961,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 90
m_MaskInteraction: 0
m_Sprite: {fileID: 3846603968152241411, guid: c0941254ff0f017419c681f7d6d44584, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -3944,7 +3971,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5540414210825427641
MonoBehaviour:

File diff suppressed because it is too large Load Diff

View File

@ -29,10 +29,7 @@ namespace RR.Game2D.Animations
_hurtSounds = controller.sfxAsset.hurtSounds;
}
public void OnDeath()
{
throw new System.NotImplementedException();
}
public void OnDeath() {}
public void OnDeathBegin()
{
@ -62,19 +59,12 @@ namespace RR.Game2D.Animations
public void OnDeathEnd()
{
// Уничтожаем врага
// Создаем визуальный эффект смерти
if (deathVFX)
{
Collider2D col = GetComponent<Collider2D>();
Vector3 pos = new Vector3(transform.position.x, col ? col.bounds.center.y : transform.position.y, transform.position.z);
// Используем Spawn: пул сам реинициализирует, запустит Play() и вернёт объект обратно после таймаута.
GameObject vfx = VFXPool.Instance.Spawn(deathVFX, pos);
if (vfx) vfx.transform.rotation = transform.rotation;
}
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, transform.position, 1f);
// if (vfx) vfx.transform.rotation = transform.rotation;
Destroy(gameObject);
// Уничтожаем врага
// Destroy(gameObject);
}
public void OnStep()

View File

@ -4,11 +4,14 @@ using RR.Common.Audio;
using RR.Game2D.Core.Managers;
using RR.Game2D.Behaviour;
using RR.Game2D.Behaviour.ScriptableObjects;
using UnityEngine.VFX;
namespace RR.Game2D.Animations
{
public class PlayerAnimationEvents : MonoBehaviour, CreatureAnimationEvents
{
[SerializeField] private VisualEffectAsset deathVFX;
private SFXAsset _stepSounds;
private SFXAsset _hurtSounds;
private SFXAsset _jumpSounds;
@ -35,10 +38,7 @@ namespace RR.Game2D.Animations
_jumpSounds = controller.jumpSounds;
}
public void OnDeath()
{
throw new System.NotImplementedException();
}
public void OnDeath() {}
public void OnDeathBegin()
{
@ -48,8 +48,7 @@ namespace RR.Game2D.Animations
public void OnDeathEnd()
{
Animator animator = GetComponent<Animator>();
// animator.ResetTrigger("Death");
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, transform.position, 1f);
gameObject.layer = LayerMask.NameToLayer("Default");
_rb.constraints = RigidbodyConstraints2D.FreezeRotation;
GameManager.Instance.RespawnPlayer();

View File

@ -58,7 +58,7 @@ namespace RR.Game2D.Behaviour
/// </summary>
/// <param name="vfxAsset">Ассет визуального эффекта для применения</param>
/// <returns>GameObject с компонентом VisualEffect или null, если не удалось получить</returns>
public GameObject Get(VisualEffectAsset vfxAsset)
private GameObject Get(VisualEffectAsset vfxAsset)
{
GameObject vfxInstance;
@ -121,14 +121,22 @@ namespace RR.Game2D.Behaviour
return vfxInstance;
}
public GameObject Spawn(VisualEffectAsset vfxAsset, Transform newParentTransform, float? lifetime = null)
{
GameObject vfxInstance = Spawn(vfxAsset, newParentTransform.position, lifetime);
vfxInstance.transform.SetParent(newParentTransform);
return vfxInstance;
}
private IEnumerator ReturnAfterCoroutine(GameObject vfxInstance, float seconds)
{
// Ждём указанное время. Можно заменить на более точный механизм при наличии событий от VFXGraph.
yield return new WaitForSeconds(seconds);
// Перед возвратом уверенно останавливаем эффект
var ve = vfxInstance.GetComponent<VisualEffect>();
if (ve) ve.Stop();
VisualEffect visualEffect = vfxInstance.GetComponent<VisualEffect>();
if (visualEffect) visualEffect.Stop();
// Возвращаем в пул
Return(vfxInstance);
@ -138,10 +146,13 @@ namespace RR.Game2D.Behaviour
/// Вернуть VFX объект обратно в пул для повторного использования
/// </summary>
/// <param name="vfxInstance">VFX объект для возврата в пул</param>
public void Return(GameObject vfxInstance)
private void Return(GameObject vfxInstance)
{
if (vfxInstance == null) return;
// Явно устанавливаем родителем пул, чтобы избежать захламления сцены
vfxInstance.transform.SetParent(this.transform);
VisualEffect visualEffect = vfxInstance.GetComponent<VisualEffect>();
if (visualEffect) visualEffect.Stop();

View File

@ -161,7 +161,6 @@ namespace RR.Common.Controls
public static bool Pay(int amount = 1)
{
// блок проверки оплаты
// TODO: Сделать свою систему для проверки оплаты и бесплатной игры
// if (SettingsManager.instance.GetSettingValue("Бесплатная игра") == "Вкл")
// {
// //Счетчики пробега

View File

@ -8,37 +8,64 @@ namespace RR.Common.UI
{
public class LevelButton : MonoBehaviour
{
[SerializeField] TextMeshProUGUI title;
[SerializeField] Button btn;
[SerializeField] private TextMeshProUGUI title;
[SerializeField] private Button button;
private int _world;
private int _stage;
public void Setup(string levelSceneName, int levelWorld, int levelStage)
public void Setup(
string levelSceneName,
int levelWorld,
int levelStage,
Selectable onUp = null,
Selectable onDown = null,
Selectable onLeft = null,
Selectable onRight = null
)
{
_world = levelWorld;
_stage = levelStage;
if (title) title.text = levelSceneName; // "1-3, 1-1 и т.д."
if (btn) { btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(OnClick); }
if (!button)
{
button = GetComponentInChildren<Button>();
if (!button)
{
Debug.LogError($"[LevelButton] Button component is missing on {gameObject.name}!");
return;
}
}
button.interactable = true;
button.onClick.RemoveAllListeners();
button.onClick.AddListener(OnClick);
// Настройка навигации, если передан хотя бы один параметр
if (onUp == null && onDown == null && onLeft == null && onRight == null) return;
Navigation nav = button.navigation;
nav.mode = Navigation.Mode.Explicit;
if (onUp != null) nav.selectOnUp = onUp;
if (onDown != null) nav.selectOnDown = onDown;
if (onLeft != null) nav.selectOnLeft = onLeft;
if (onRight != null) nav.selectOnRight = onRight;
button.navigation = nav;
}
public void SetColor(Color newColor)
{
ColorBlock newColors = btn.colors;
newColors.normalColor = newColor;
ColorBlock newColors = button.colors;
newColors.normalColor = Darken(newColor, 0.65f);
newColors.highlightedColor = Darken(newColor, 0.90f);
newColors.selectedColor = Darken(newColor, 0.85f);
newColors.selectedColor = newColor;
newColors.pressedColor = Darken(newColor, 0.80f);
btn.colors = newColors;
button.colors = newColors;
}
void OnClick()
private void OnClick()
{
// через GameManager (предпочтительно)
GameManager.Instance.LoadLevel(_world, _stage);
// Фоллбэк, если нужно:
// UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName);
}
private static Color Darken(Color c, float factor)

View File

@ -22,7 +22,7 @@ namespace RR.Common.UI
private readonly List<LevelButton> _levelsPool = new();
void Awake()
private void Awake()
{
if (closeButton) closeButton.onClick.AddListener(Close);
gameObject.SetActive(false);
@ -53,27 +53,79 @@ namespace RR.Common.UI
/// <summary>
/// Метод для сборки кнопок уровней
/// </summary>
void BuildIfNeeded()
private void BuildIfNeeded()
{
// Очистим/пересоберём
foreach (var b in _levelsPool) if (b) Destroy(b.gameObject);
foreach (LevelButton b in _levelsPool.Where(b => b))
{
Destroy(b.gameObject);
}
_levelsPool.Clear();
var levels = EnumerateLevelScenesInBuild()
List<LevelEntry> levels = EnumerateLevelScenesInBuild()
.OrderBy(e => e.world)
.ThenBy(e => e.stage)
.ToList();
foreach (var lv in levels)
foreach (LevelButton btn in levels.Select(lv => Instantiate(levelButtonPrefab, content)))
{
var btn = Instantiate(levelButtonPrefab, content);
btn.Setup(lv.name, lv.world, lv.stage);
if (lv.world == 1) btn.SetColor(Color.green);
else if (lv.world == 2) btn.SetColor(Color.blue);
_levelsPool.Add(btn);
}
for (int index = 0; index < _levelsPool.Count; index++)
{
LevelButton btn = _levelsPool[index];
// if (index == 0) btn.Setup(
// $"{levels[index].world}-{levels[index].stage}",
// levels[index].world,
// levels[index].stage,
// onDown: closeButton,
// onUp: closeButton,
// onLeft: closeButton,
// onRight: _levelsPool.Count > 1 ? _levelsPool[1].GetComponent<Button>() : closeButton
// );
// else if (index == _levelsPool.Count - 1) btn.Setup(
// $"{levels[index].world}-{levels[index].stage}",
// levels[index].world,
// levels[index].stage,
// onDown: closeButton,
// onUp: closeButton,
// onLeft: _levelsPool.Count > 1 ? _levelsPool[index - 1].GetComponent<Button>() : closeButton,
// onRight: closeButton
// );
// else btn.Setup(
// $"{levels[index].world}-{levels[index].stage}",
// levels[index].world,
// levels[index].stage,
// onUp: closeButton,
// onDown: closeButton,
// onLeft: _levelsPool[index - 1].GetComponent<Button>(),
// onRight: _levelsPool[index + 1].GetComponent<Button>()
// );
btn.Setup(
$"{levels[index].world}-{levels[index].stage}",
levels[index].world,
levels[index].stage);
switch (levels[index].world)
{
case 1:
btn.SetColor(Color.green);
break;
case 2:
btn.SetColor(Color.blue);
break;
}
}
if (_levelsPool.Count <= 0) return;
// Navigation closeNav = closeButton.navigation;
// closeNav.mode = Navigation.Mode.Explicit;
// closeNav.selectOnUp = _levelsPool.First().GetComponent<Button>();
// closeNav.selectOnDown = _levelsPool.First().GetComponent<Button>();
// closeButton.navigation = closeNav;
}
private struct LevelEntry { public string name; public int world; public int stage; }
@ -91,7 +143,7 @@ namespace RR.Common.UI
string buttonName = System.IO.Path.GetFileNameWithoutExtension(path);
// фильтр "только уровни" по формату имени W-S:
var parts = buttonName.Split('-');
string[] parts = buttonName.Split('-');
if (parts.Length != 2) continue;
if (!int.TryParse(parts[0], out int world)) continue;
if (!int.TryParse(parts[1], out int stage)) continue;
@ -124,6 +176,7 @@ namespace RR.Common.UI
yield return null;
}
canvasGroup.alpha = to;
canvasGroup.interactable = to > 0.99f;
canvasGroup.blocksRaycasts = to > 0.99f;
onDone?.Invoke();
}

View File

@ -306,7 +306,7 @@ namespace RR.Common.Utility
"================================================================================");
_writer.Flush();
_writer.Close();
_writer.Dispose();
// _writer.Dispose();
_writer = null;
}
catch (Exception ex)

View File

@ -12,8 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: UniversalRP
m_EditorClassIdentifier:
k_AssetVersion: 12
k_AssetPreviousVersion: 12
k_AssetVersion: 13
k_AssetPreviousVersion: 13
m_RendererType: 1
m_RendererData: {fileID: 0}
m_RendererDataList:
@ -128,9 +128,11 @@ MonoBehaviour:
m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterScreenSpaceIrradiance: 1
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 1
m_PrefilterReflectionProbeRotation: 1
m_PrefilterReflectionProbeBlending: 1
m_PrefilterReflectionProbeBoxProjection: 1
m_PrefilterReflectionProbeAtlas: 1

View File

@ -62,6 +62,9 @@ MonoBehaviour:
- rid: 4931727606779215872
- rid: 4931727606779215873
- rid: 4931727606779215874
- rid: 1880696068032167936
- rid: 1880696068032167937
- rid: 1880696068032167938
m_RuntimeSettings:
m_List:
- rid: 7752762179098771456
@ -76,7 +79,7 @@ MonoBehaviour:
- rid: 7752762179098771476
- rid: 4931727606779215873
- rid: 4931727606779215874
m_AssetVersion: 8
m_AssetVersion: 9
m_ObsoleteDefaultVolumeProfile: {fileID: 0}
m_RenderingLayerNames:
- Default
@ -99,6 +102,29 @@ MonoBehaviour:
references:
version: 2
RefIds:
- rid: 1880696068032167936
type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime}
data:
m_Version: 1
m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3}
m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3}
m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3}
m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3}
m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3}
m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3}
m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3}
m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3}
m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3}
- rid: 1880696068032167937
type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime}
data:
version: 1
useReflectionProbeRotation: 0
- rid: 1880696068032167938
type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
m_Version: 0
m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3}
- rid: 3114554863623077888
type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:
@ -243,11 +269,11 @@ MonoBehaviour:
m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3}
m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3}
m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3}
m_FallOffLookup: {fileID: 2800000, guid: 5688ab254e4c0634f8d6c8e0792331ca, type: 3}
m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2}
m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2}
m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2}
- rid: 7752762179098771458
type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime}
data:

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,25 @@
{
"dependencies": {
"com.github-glitchenzo.nugetforunity": "https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity",
"com.unity.2d.enhancers": "1.0.0",
"com.unity.ai.assistant": "1.0.0-pre.12",
"com.unity.ai.generators": "1.0.0-pre.20",
"com.unity.ai.inference": "2.4.1",
"com.unity.cinemachine": "3.1.4",
"com.unity.collab-proxy": "2.9.3",
"com.unity.feature.2d": "2.0.1",
"com.unity.collab-proxy": "2.10.2",
"com.unity.feature.2d": "2.0.2",
"com.unity.ide.rider": "3.0.38",
"com.unity.ide.visualstudio": "2.0.25",
"com.unity.inputsystem": "1.14.2",
"com.unity.multiplayer.center": "1.0.0",
"com.unity.render-pipelines.universal": "17.2.0",
"com.unity.inputsystem": "1.16.0",
"com.unity.multiplayer.center": "1.0.1",
"com.unity.render-pipelines.universal": "17.3.0",
"com.unity.test-framework": "1.6.0",
"com.unity.timeline": "1.8.9",
"com.unity.ugui": "2.0.0",
"com.unity.visualeffectgraph": "17.2.0",
"com.unity.visualscripting": "1.9.8",
"com.unity.visualeffectgraph": "17.3.0",
"com.unity.visualscripting": "1.9.9",
"com.unity.modules.accessibility": "1.0.0",
"com.unity.modules.adaptiveperformance": "1.0.0",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.animation": "1.0.0",
@ -41,6 +46,7 @@
"com.unity.modules.unitywebrequestaudio": "1.0.0",
"com.unity.modules.unitywebrequesttexture": "1.0.0",
"com.unity.modules.unitywebrequestwww": "1.0.0",
"com.unity.modules.vectorgraphics": "1.0.0",
"com.unity.modules.vehicles": "1.0.0",
"com.unity.modules.video": "1.0.0",
"com.unity.modules.vr": "1.0.0",

View File

@ -8,24 +8,24 @@
"hash": "34432703a177c97631a4eb1d908f086037c67969"
},
"com.unity.2d.animation": {
"version": "12.0.2",
"version": "13.0.2",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "11.0.1",
"com.unity.2d.common": "12.0.1",
"com.unity.2d.sprite": "1.0.0",
"com.unity.collections": "1.2.4",
"com.unity.collections": "2.4.3",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.uielements": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.2d.aseprite": {
"version": "2.0.2",
"version": "3.0.1",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "11.0.1",
"com.unity.2d.common": "12.0.1",
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0",
"com.unity.mathematics": "1.2.6",
@ -34,20 +34,34 @@
"url": "https://packages.unity.com"
},
"com.unity.2d.common": {
"version": "11.0.1",
"depth": 2,
"version": "12.0.1",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.burst": "1.8.4",
"com.unity.2d.sprite": "1.0.0",
"com.unity.collections": "2.4.3",
"com.unity.mathematics": "1.1.0",
"com.unity.modules.animation": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.2d.enhancers": {
"version": "1.0.0",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "11.0.1",
"com.unity.ai.generators": "1.0.0-pre.12",
"com.unity.settings-manager": "2.0.1",
"com.unity.modules.uielements": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.2d.pixel-perfect": {
"version": "5.1.0",
"version": "5.1.1",
"depth": 1,
"source": "registry",
"dependencies": {
@ -56,11 +70,11 @@
"url": "https://packages.unity.com"
},
"com.unity.2d.psdimporter": {
"version": "11.0.1",
"version": "12.0.1",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "11.0.1",
"com.unity.2d.common": "12.0.1",
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.tilemap": "1.0.0"
},
@ -73,11 +87,11 @@
"dependencies": {}
},
"com.unity.2d.spriteshape": {
"version": "12.0.1",
"version": "13.0.0",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "11.0.1",
"com.unity.2d.common": "12.0.0",
"com.unity.mathematics": "1.1.0",
"com.unity.modules.physics2d": "1.0.0"
},
@ -93,7 +107,7 @@
}
},
"com.unity.2d.tilemap.extras": {
"version": "5.0.1",
"version": "6.0.1",
"depth": 1,
"source": "registry",
"dependencies": {
@ -103,9 +117,64 @@
},
"url": "https://packages.unity.com"
},
"com.unity.2d.tooling": {
"version": "1.0.0",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.2d.common": "12.0.1",
"com.unity.modules.uielements": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ai.assistant": {
"version": "1.0.0-pre.12",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ai.toolkit": "1.0.0-pre.18",
"com.unity.serialization": "3.1.1",
"com.unity.nuget.newtonsoft-json": "3.2.1",
"com.unity.modules.unitywebrequest": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ai.generators": {
"version": "1.0.0-pre.20",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.ai.toolkit": "1.0.0-pre.20",
"com.unity.mathematics": "1.3.2",
"com.unity.nuget.newtonsoft-json": "3.2.1"
},
"url": "https://packages.unity.com"
},
"com.unity.ai.inference": {
"version": "2.4.1",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.burst": "1.8.17",
"com.unity.dt.app-ui": "1.3.1",
"com.unity.collections": "2.4.3",
"com.unity.nuget.newtonsoft-json": "3.2.1",
"com.unity.modules.imageconversion": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ai.toolkit": {
"version": "1.0.0-pre.20",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.nuget.newtonsoft-json": "3.2.1"
},
"url": "https://packages.unity.com"
},
"com.unity.burst": {
"version": "1.8.25",
"depth": 2,
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.mathematics": "1.2.1",
@ -124,18 +193,18 @@
"url": "https://packages.unity.com"
},
"com.unity.collab-proxy": {
"version": "2.9.3",
"version": "2.10.2",
"depth": 0,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.collections": {
"version": "2.5.7",
"depth": 2,
"version": "2.6.2",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.burst": "1.8.19",
"com.unity.burst": "1.8.23",
"com.unity.mathematics": "1.3.2",
"com.unity.test-framework": "1.4.6",
"com.unity.nuget.mono-cecil": "1.11.5",
@ -143,6 +212,18 @@
},
"url": "https://packages.unity.com"
},
"com.unity.dt.app-ui": {
"version": "2.1.1",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.androidjni": "1.0.0",
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.screencapture": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.ext.nunit": {
"version": "2.0.5",
"depth": 1,
@ -150,18 +231,19 @@
"dependencies": {}
},
"com.unity.feature.2d": {
"version": "2.0.1",
"version": "2.0.2",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.2d.animation": "12.0.2",
"com.unity.2d.pixel-perfect": "5.1.0",
"com.unity.2d.psdimporter": "11.0.1",
"com.unity.2d.animation": "13.0.2",
"com.unity.2d.pixel-perfect": "5.1.1",
"com.unity.2d.psdimporter": "12.0.1",
"com.unity.2d.sprite": "1.0.0",
"com.unity.2d.spriteshape": "12.0.1",
"com.unity.2d.spriteshape": "13.0.0",
"com.unity.2d.tilemap": "1.0.0",
"com.unity.2d.tilemap.extras": "5.0.1",
"com.unity.2d.aseprite": "2.0.2"
"com.unity.2d.tilemap.extras": "6.0.1",
"com.unity.2d.aseprite": "3.0.1",
"com.unity.2d.tooling": "1.0.0"
}
},
"com.unity.ide.rider": {
@ -183,7 +265,7 @@
"url": "https://packages.unity.com"
},
"com.unity.inputsystem": {
"version": "1.14.2",
"version": "1.16.0",
"depth": 0,
"source": "registry",
"dependencies": {
@ -192,14 +274,14 @@
"url": "https://packages.unity.com"
},
"com.unity.mathematics": {
"version": "1.3.2",
"depth": 2,
"version": "1.3.3",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.multiplayer.center": {
"version": "1.0.0",
"version": "1.0.1",
"depth": 0,
"source": "builtin",
"dependencies": {
@ -207,14 +289,21 @@
}
},
"com.unity.nuget.mono-cecil": {
"version": "1.11.5",
"depth": 3,
"version": "1.11.6",
"depth": 2,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.nuget.newtonsoft-json": {
"version": "3.2.2",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.render-pipelines.core": {
"version": "17.2.0",
"version": "17.3.0",
"depth": 1,
"source": "builtin",
"dependencies": {
@ -224,17 +313,16 @@
"com.unity.collections": "2.4.3",
"com.unity.modules.physics": "1.0.0",
"com.unity.modules.terrain": "1.0.0",
"com.unity.modules.jsonserialize": "1.0.0",
"com.unity.rendering.light-transport": "1.0.1"
"com.unity.modules.jsonserialize": "1.0.0"
}
},
"com.unity.render-pipelines.universal": {
"version": "17.2.0",
"version": "17.3.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.render-pipelines.core": "17.2.0",
"com.unity.shadergraph": "17.2.0",
"com.unity.render-pipelines.core": "17.3.0",
"com.unity.shadergraph": "17.3.0",
"com.unity.render-pipelines.universal-config": "17.0.3"
}
},
@ -246,36 +334,36 @@
"com.unity.render-pipelines.core": "17.0.3"
}
},
"com.unity.rendering.light-transport": {
"version": "1.0.1",
"depth": 2,
"source": "builtin",
"dependencies": {
"com.unity.collections": "2.2.0",
"com.unity.mathematics": "1.2.4",
"com.unity.modules.terrain": "1.0.0"
}
},
"com.unity.searcher": {
"version": "4.9.3",
"version": "4.9.4",
"depth": 2,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.serialization": {
"version": "3.1.3",
"depth": 1,
"source": "registry",
"dependencies": {
"com.unity.burst": "1.7.2",
"com.unity.collections": "2.4.2"
},
"url": "https://packages.unity.com"
},
"com.unity.settings-manager": {
"version": "2.1.0",
"depth": 2,
"version": "2.1.1",
"depth": 1,
"source": "registry",
"dependencies": {},
"url": "https://packages.unity.com"
},
"com.unity.shadergraph": {
"version": "17.2.0",
"version": "17.3.0",
"depth": 1,
"source": "builtin",
"dependencies": {
"com.unity.render-pipelines.core": "17.2.0",
"com.unity.render-pipelines.core": "17.3.0",
"com.unity.searcher": "4.9.3"
}
},
@ -302,7 +390,7 @@
},
"com.unity.test-framework.performance": {
"version": "3.2.0",
"depth": 3,
"depth": 2,
"source": "registry",
"dependencies": {
"com.unity.test-framework": "1.1.33",
@ -332,16 +420,16 @@
}
},
"com.unity.visualeffectgraph": {
"version": "17.2.0",
"version": "17.3.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.shadergraph": "17.2.0",
"com.unity.render-pipelines.core": "17.2.0"
"com.unity.shadergraph": "17.3.0",
"com.unity.render-pipelines.core": "17.3.0"
}
},
"com.unity.visualscripting": {
"version": "1.9.8",
"version": "1.9.9",
"depth": 0,
"source": "registry",
"dependencies": {
@ -356,6 +444,14 @@
"source": "builtin",
"dependencies": {}
},
"com.unity.modules.adaptiveperformance": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.subsystems": "1.0.0"
}
},
"com.unity.modules.ai": {
"version": "1.0.0",
"depth": 0,
@ -563,6 +659,16 @@
"com.unity.modules.imageconversion": "1.0.0"
}
},
"com.unity.modules.vectorgraphics": {
"version": "1.0.0",
"depth": 0,
"source": "builtin",
"dependencies": {
"com.unity.modules.uielements": "1.0.0",
"com.unity.modules.imageconversion": "1.0.0",
"com.unity.modules.imgui": "1.0.0"
}
},
"com.unity.modules.vehicles": {
"version": "1.0.0",
"depth": 0,

View File

@ -34,6 +34,7 @@ EditorBuildSettings:
guid: 970503f52fc318443aa802884a95f012
m_configObjects:
com.unity.addressableassets: {fileID: 11400000, guid: 40a4d2dfb24d5af4d8277c2c4cdffcc3, type: 2}
com.unity.dt.app-ui: {fileID: 11400000, guid: 1b1c20d82303e4b5781c3ef50ac1449f, type: 2}
com.unity.input.settings: {fileID: 11400000, guid: bf6b6fd5471a43d40b76a4625c2f3b62, type: 2}
com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
m_UseUCBPForAssetBundles: 0

View File

@ -59,6 +59,8 @@ GraphicsSettings:
m_AlbedoSwatchInfos: []
m_RenderPipelineGlobalSettingsMap:
UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 93b439a37f63240aca3dd4e01d978a9f, type: 2}
m_ShaderBuildSettings:
keywordDeclarationOverrides: []
m_LightsUseLinearIntensity: 1
m_LightsUseColorTemperature: 1
m_LogWhenShaderIsCompiled: 0

View File

@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 53
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: 15023, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier: UnityEditor.MultiplayerModule.dll::UnityEditor.Multiplayer.Internal.MultiplayerRolesSettings
m_MultiplayerRoleForClassicProfile:
m_Keys: []
m_Values:

View File

@ -72,6 +72,7 @@ PlayerSettings:
androidStartInFullscreen: 1
androidRenderOutsideSafeArea: 1
androidUseSwappy: 1
androidDisplayOptions: 1
androidBlitType: 0
androidResizeableActivity: 1
androidDefaultWindowWidth: 1920
@ -177,9 +178,10 @@ PlayerSettings:
tvOS: 0
overrideDefaultApplicationIdentifier: 1
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 23
AndroidMinSdkVersion: 25
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
AndroidPreferredDataLocation: 1
aotOptions:
stripEngineCode: 1
iPhoneStrippingLevel: 0
@ -194,11 +196,11 @@ PlayerSettings:
VertexChannelCompressionMask: 4054
iPhoneSdkVersion: 988
iOSSimulatorArchitecture: 0
iOSTargetOSVersionString: 13.0
iOSTargetOSVersionString: 15.0
tvOSSdkVersion: 0
tvOSSimulatorArchitecture: 0
tvOSRequireExtendedGameController: 0
tvOSTargetOSVersionString: 13.0
tvOSTargetOSVersionString: 15.0
VisionOSSdkVersion: 0
VisionOSTargetOSVersionString: 1.0
uIPrerenderedIcon: 0
@ -268,6 +270,7 @@ PlayerSettings:
useCustomGradleSettingsTemplate: 0
useCustomProguardFile: 0
AndroidTargetArchitectures: 2
AndroidAllowedArchitectures: -1
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName:
@ -339,7 +342,7 @@ PlayerSettings:
locationUsageDescription:
microphoneUsageDescription:
bluetoothUsageDescription:
macOSTargetOSVersion: 11.0
macOSTargetOSVersion: 12.0
switchNMETAOverride:
switchNetLibKey:
switchSocketMemoryPoolSize: 6144
@ -593,7 +596,8 @@ PlayerSettings:
webGLCloseOnQuit: 0
webWasm2023: 0
webEnableSubmoduleStrippingCompatibility: 0
scriptingDefineSymbols: {}
scriptingDefineSymbols:
Standalone: APP_UI_EDITOR_ONLY
additionalCompilerArguments: {}
platformArchitecture: {}
scriptingBackend:
@ -708,3 +712,4 @@ PlayerSettings:
androidVulkanAllowFilterList: []
androidVulkanDeviceFilterListAsset: {fileID: 0}
d3d12DeviceFilterListAsset: {fileID: 0}
allowedHttpConnections: 3

View File

@ -1,2 +1,2 @@
m_EditorVersion: 6000.2.7f2
m_EditorVersionWithRevision: 6000.2.7f2 (2b518236b676)
m_EditorVersion: 6000.3.0f1
m_EditorVersionWithRevision: 6000.3.0f1 (d1870ce95baf)

View File

@ -15,6 +15,6 @@ VFXManager:
m_MaxScrubTime: 30
m_MaxCapacity: 100000000
m_CompiledVersion: 7
m_RuntimeVersion: 38
m_RuntimeVersion: 39
m_RuntimeResources: {fileID: 11400000, guid: bc10b42afe3813544bffd38ae2cd893d, type: 2}
m_BatchEmptyLifetime: 300