added dialogue system

- Добавил систему диалогов
- Создал классы Sequencer.cs и SequenceAction.cs для воссоздания последовательности действий
- Добавил иеханику последовательности действий в Message.cs и MessageController.cs
This commit is contained in:
Данил Ярош 2025-12-10 08:32:15 +03:00
parent 3fce87edb4
commit 7f14981d8b
62 changed files with 7714 additions and 9003 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -10221,9 +10221,9 @@ Material:
- _OutlineWidth: 0
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 1
- _ScaleRatioB: 1
- _ScaleRatioC: 1
- _ScaleRatioA: 0.8333333
- _ScaleRatioB: 0.6770833
- _ScaleRatioC: 0.6770833
- _ScaleX: 1
- _ScaleY: 1
- _ShaderFlags: 0

View File

@ -67,6 +67,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013883710656
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -112,6 +113,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 16
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 767ae73862a0c7c418959a63daafaae9, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -121,7 +123,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010359452574
GameObject:
@ -157,6 +158,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012800048310
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -202,6 +204,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 4
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 7b78357522a34d64bb8775b962b0deb0, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -211,7 +214,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010438731060
GameObject:
@ -279,6 +281,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012173417188
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -324,6 +327,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: ab59709aadb3a224294b3c3b5c47cc79, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -333,7 +337,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010526244374
GameObject:
@ -471,6 +474,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000010707154482
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -516,6 +520,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 14
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: e4c8d3fb89489fc4684fb809362e237c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -525,7 +530,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011167927196
GameObject:
@ -561,6 +565,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012817293352
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -606,6 +611,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 7
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: add7b98e4870e9d4c8e1dd5e07e3de1c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -615,7 +621,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011205719146
GameObject:
@ -717,6 +722,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013692758196
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -762,6 +768,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: bbec2f9af2fefd4459cd1f041e6850cf, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -771,7 +778,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011360321256
GameObject:
@ -809,6 +815,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000010555298808
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -854,6 +861,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 11
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 7db7af78e8f9c45418a407bdd7958560, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -863,7 +871,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011821036864
GameObject:
@ -1024,6 +1031,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: '::'
deathVFX: {fileID: 8926484042661614526, guid: 6c4fdce0f9a1b184d9c3660014bdfdb5, type: 3}
deathVFXOffset: {x: 0.75, y: 0, z: 0}
--- !u!1 &1000012079282026
GameObject:
m_ObjectHideFlags: 0
@ -1059,6 +1067,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011554329058
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1104,6 +1113,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 3
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 37e05d8dcd5e386498e75d924efbc7c1, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1113,7 +1123,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000012365261774
GameObject:
@ -1251,6 +1260,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -14.135}
--- !u!212 &212000011828188762
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1296,6 +1306,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 15
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 37e05d8dcd5e386498e75d924efbc7c1, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1305,7 +1316,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000012906504238
GameObject:
@ -1341,6 +1351,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013842436390
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1386,6 +1397,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: a366da325a505654e94ff671e63cde89, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1395,7 +1407,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013021596226
GameObject:
@ -1464,6 +1475,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011967012368
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1509,6 +1521,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 1
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: b2bfd98da49248e42b93a78607ac257a, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1518,7 +1531,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013245485730
GameObject:
@ -1554,6 +1566,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000014014538394
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1599,6 +1612,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 8
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: b1babcb6ce4ee78478abc5076a6d1b8d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1608,7 +1622,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013276720916
GameObject:
@ -1644,6 +1657,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012031268398
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1689,6 +1703,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 9
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 250530d3e9754ed418009e3d539275b3, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1698,7 +1713,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013284461806
GameObject:
@ -1734,6 +1748,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011281002544
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1779,6 +1794,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 12
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 20eb058aea3c3a744bb5d47a1610550a, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1788,7 +1804,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013597079808
GameObject:
@ -1824,6 +1839,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011468200164
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1869,6 +1885,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 13
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: fa66f03a93fcebb418b876e0f4731600, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1878,7 +1895,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013699622104
GameObject:
@ -1914,6 +1930,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000010026771710
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1959,6 +1976,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 6
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 40e550cd3b539f14eb98d42b6769b592, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1968,7 +1986,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013971748100
GameObject:
@ -2101,6 +2118,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2879670665526881912
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2146,6 +2164,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 12
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: dcb72940063c94f44abc2366768e713a, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2155,7 +2174,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &2907325659420070026
GameObject:

View File

@ -99,6 +99,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000010478373412
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -144,6 +145,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 12
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: f7e7bed775fff8347b9e53c67e20875f, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -153,7 +155,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010553929640
GameObject:
@ -189,6 +190,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012868499678
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -234,6 +236,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 4
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 321cb2880c53eb743987a6a94741e4f0, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -243,7 +246,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010598022822
GameObject:
@ -312,6 +314,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013199427962
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -357,6 +360,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 11
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 8e016bdb4d00e70429de56b91135940c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -366,7 +370,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000010719761144
GameObject:
@ -503,6 +506,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012454510536
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -548,6 +552,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 6
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 925993f8892fa474c904d0e9a8f67cee, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -557,7 +562,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011070680066
GameObject:
@ -593,6 +597,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011509138544
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -638,6 +643,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 3
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 0a4a3c212d77eb243aeaac660261fb0f, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -647,7 +653,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011181302222
GameObject:
@ -718,6 +723,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011159538372
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -763,6 +769,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 8
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 27fe921d9d4bdb24eb91cc1e96a04f02, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -772,7 +779,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011322488226
GameObject:
@ -808,6 +814,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012953580840
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -853,6 +860,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 14
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 57e9977661e6a7246b75c2de487e5bb3, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -862,7 +870,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011426925858
GameObject:
@ -931,6 +938,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011292301008
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -976,6 +984,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: ed569bcf23ebe674180d6ae7a5d29495, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -985,7 +994,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011720578768
GameObject:
@ -1021,6 +1029,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013196332682
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1066,6 +1075,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 574bf96e23209b64eb8fa4c82d71564c, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1075,7 +1085,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000011891013244
GameObject:
@ -1176,6 +1185,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011506561884
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1221,6 +1231,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 1
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: a471110b5fe3bcc4caff7ad9ff13d244, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1230,7 +1241,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000012796631114
GameObject:
@ -1298,6 +1308,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000012846217786
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1343,6 +1354,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 16
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 44fa20638679f684891b3b8f8ae65078, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1352,7 +1364,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000012875001774
GameObject:
@ -1388,6 +1399,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011577572412
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1433,6 +1445,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 9
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 90458a12b047bb84ba77cb7ea81ba457, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1442,7 +1455,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000012930206918
GameObject:
@ -1478,6 +1490,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011530224604
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1523,6 +1536,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 10
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: e17e5dd745f21b043bd6d387e5c5a19b, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1532,7 +1546,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013301305156
GameObject:
@ -1693,6 +1706,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::EnemyAnimationEvents
deathVFX: {fileID: 8926484042661614526, guid: 6c4fdce0f9a1b184d9c3660014bdfdb5, type: 3}
deathVFXOffset: {x: 0.75, y: 0, z: 0}
--- !u!1 &1000013442129446
GameObject:
m_ObjectHideFlags: 0
@ -1793,6 +1807,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000013857461406
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1838,6 +1853,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: e1cf0148d2f367e42966b7ce6ee32e73, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1847,7 +1863,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000013857049400
GameObject:
@ -1883,6 +1898,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -14.135}
--- !u!212 &212000013711739522
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1928,6 +1944,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 15
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 0a4a3c212d77eb243aeaac660261fb0f, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1937,7 +1954,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000014063960902
GameObject:
@ -1973,6 +1989,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000014019802266
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2018,6 +2035,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 7
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 6fa8902135d83ff49a376c05761b61d4, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2027,7 +2045,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &1000014142349740
GameObject:
@ -2097,6 +2114,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &212000011200148622
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -2142,6 +2160,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 13
m_MaskInteraction: 0
m_Sprite: {fileID: 21300000, guid: 3a94b1e5121a110479590d1d60ce75f0, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -2151,5 +2170,4 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0

View File

@ -170,6 +170,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2450646575878748971
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -215,6 +216,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 9
m_MaskInteraction: 0
m_Sprite: {fileID: -496149357790221940, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -224,7 +226,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5251213007704444268
MonoBehaviour:
@ -405,6 +406,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::EnemyAnimationEvents
deathVFX: {fileID: 8926484042661614526, guid: 6c4fdce0f9a1b184d9c3660014bdfdb5, type: 3}
deathVFXOffset: {x: 0, y: 2, z: 0}
--- !u!1 &2349200483123940370
GameObject:
m_ObjectHideFlags: 0
@ -472,6 +474,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2170133971379255872
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -517,6 +520,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 5
m_MaskInteraction: 0
m_Sprite: {fileID: -7923478844108239235, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -526,7 +530,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &2420237945491196684
MonoBehaviour:
@ -583,6 +586,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4835297383121224661
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -628,6 +632,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 8
m_MaskInteraction: 0
m_Sprite: {fileID: 468505030424454377, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -637,7 +642,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &6133639702460806063
MonoBehaviour:
@ -726,6 +730,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &2057701810208482389
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -771,6 +776,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 6
m_MaskInteraction: 0
m_Sprite: {fileID: 4424385449078666440, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -780,7 +786,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &6782167461183733794
MonoBehaviour:
@ -837,6 +842,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &434493159673733075
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -882,6 +888,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 7
m_MaskInteraction: 0
m_Sprite: {fileID: -8139441861258636321, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -891,7 +898,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &903476830467460300
MonoBehaviour:
@ -981,6 +987,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4420697988875817209
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1026,6 +1033,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 3
m_MaskInteraction: 0
m_Sprite: {fileID: -1883475777276805490, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1035,7 +1043,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4093603314908067268
MonoBehaviour:
@ -1092,6 +1099,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &6758225786079248470
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1137,6 +1145,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 4
m_MaskInteraction: 0
m_Sprite: {fileID: -4549756866399706420, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1146,7 +1155,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &1137800564795038383
MonoBehaviour:
@ -1203,6 +1211,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &4549404458377259591
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1248,6 +1257,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 2
m_MaskInteraction: 0
m_Sprite: {fileID: -8325520787547854791, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1257,7 +1267,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &4133793441826113759
MonoBehaviour:
@ -1314,6 +1323,7 @@ Transform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &7233086579781174333
SpriteRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -1359,6 +1369,7 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 1
m_MaskInteraction: 0
m_Sprite: {fileID: -2290214309718389277, guid: 4d13a9fe144b2f34da592f2b945105f2, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
@ -1368,7 +1379,6 @@ SpriteRenderer:
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!114 &5956847304014785811
MonoBehaviour:

View File

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

View File

@ -0,0 +1,141 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &230978959095769727
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5386693198774451858}
- component: {fileID: 375150540291514982}
- component: {fileID: 169163029681655830}
- component: {fileID: 3904946843679158469}
- component: {fileID: 5277438490975112713}
- component: {fileID: 956586932604822154}
m_Layer: 5
m_Name: Message Placeholder
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5386693198774451858
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
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}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 2, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!223 &375150540291514982
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 2
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 981438795
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &169163029681655830
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.CanvasScaler
m_UiScaleMode: 0
m_ReferencePixelsPerUnit: 1
m_ScaleFactor: 1
m_ReferenceResolution: {x: 800, y: 600}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 1
--- !u!114 &3904946843679158469
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GraphicRaycaster
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &5277438490975112713
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.GridLayoutGroup
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 7
m_StartCorner: 0
m_StartAxis: 1
m_CellSize: {x: 2, y: 1}
m_Spacing: {x: 0, y: 0.05}
m_Constraint: 1
m_ConstraintCount: 1
--- !u!114 &956586932604822154
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 230978959095769727}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 25a4cc37b1e5b534cb6375b69dc25808, type: 3}
m_Name:
m_EditorClassIdentifier: '::'

View File

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

View File

@ -0,0 +1,295 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4011995222962286647
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2735431105283990082}
- component: {fileID: 3905633718102506837}
m_Layer: 5
m_Name: MessageBubble
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2735431105283990082
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4011995222962286647}
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: 3400129395157306382}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &3905633718102506837
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4011995222962286647}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe746195c25446c69428c4a4ae730170, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Behaviour.Message
actions:
- rid: 1880696163501342721
- rid: 1880696163501342722
- rid: 1880696163501342723
- rid: 1880696163501342724
messageText: {fileID: 5534531474294439652}
bubbleRectTransform: {fileID: 3400129395157306382}
maxWidth: 0
references:
version: 2
RefIds:
- rid: 1880696163501342721
type: {class: MessageAppearAction, ns: RR.Common.Behaviour, asm: Assembly-CSharp}
data:
startScale: 0
endScale: 1
transitionSpeed: 10
- rid: 1880696163501342722
type: {class: WaitAction, ns: RR.Common.Behaviour, asm: Assembly-CSharp}
data:
duration: 1
- rid: 1880696163501342723
type: {class: MessageDisappearAction, ns: RR.Common.Behaviour, asm: Assembly-CSharp}
data:
startScale: 1
endScale: 0
transitionSpeed: 10
- rid: 1880696163501342724
type: {class: DeleteGameObjectAction, ns: RR.Common.Behaviour, asm: Assembly-CSharp}
data:
targetObject: {fileID: 4011995222962286647}
--- !u!1 &7064759615442894017
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3400129395157306382}
- component: {fileID: 3318325516404832205}
- component: {fileID: 354667662558077875}
m_Layer: 5
m_Name: Bubble
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3400129395157306382
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7064759615442894017}
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: 4110742772746779756}
m_Father: {fileID: 2735431105283990082}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 1, y: -0.5}
m_SizeDelta: {x: 2, y: 1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3318325516404832205
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7064759615442894017}
m_CullTransparentMesh: 1
--- !u!114 &354667662558077875
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7064759615442894017}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: -5177388603050735206, guid: 8884154dfe85442a3a3578be807dbcdf, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &7973367020047960009
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4110742772746779756}
- component: {fileID: 8816387387326177619}
- component: {fileID: 5534531474294439652}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4110742772746779756
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973367020047960009}
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: 3400129395157306382}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8816387387326177619
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973367020047960009}
m_CullTransparentMesh: 1
--- !u!114 &5534531474294439652
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7973367020047960009}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u0422\u0435\u043A\u0441\u0442"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: ed4ac746fc6d4524bb302464d125dbdd, type: 2}
m_sharedMaterial: {fileID: 4357810502652220510, guid: ed4ac746fc6d4524bb302464d125dbdd, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4278190080
m_fontColor: {r: 0, g: 0, b: 0, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 0.75
m_fontSizeBase: 0.5
m_fontWeight: 400
m_enableAutoSizing: 1
m_fontSizeMin: 0.01
m_fontSizeMax: 1
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}

View File

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

View File

@ -1883,6 +1883,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::RR.Game2D.Animations.PlayerAnimationEvents
deathVFX: {fileID: 8926484042661614526, guid: 6c4fdce0f9a1b184d9c3660014bdfdb5, type: 3}
deathVFXOffset: {x: 0.2, y: -0.25, z: 0}
--- !u!1 &3858368938151547924
GameObject:
m_ObjectHideFlags: 0

View File

@ -651,6 +651,7 @@ Tilemap:
e33: 1
--- !u!483693784 &1787233964609707394
TilemapRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -696,6 +697,7 @@ TilemapRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_ChunkSize: {x: 32, y: 32, z: 32}
m_ChunkCullingBounds: {x: 0, y: 0, z: 0}
m_MaxChunkCount: 16
@ -703,7 +705,6 @@ TilemapRenderer:
m_SortOrder: 0
m_Mode: 0
m_DetectChunkCullingBounds: 0
m_MaskInteraction: 0
--- !u!1 &4099418334012634453
GameObject:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

View File

@ -291,6 +291,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -427,6 +428,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -547,6 +549,7 @@ VFXRenderer:
m_SortingLayerID: 981438795
m_SortingLayer: 2
m_SortingOrder: 0
m_MaskInteraction: 0
--- !u!2083052967 &118788914
VisualEffect:
m_ObjectHideFlags: 0
@ -680,6 +683,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -816,6 +820,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -1031,6 +1036,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -1261,6 +1267,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -1459,6 +1466,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -1670,6 +1678,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -2003,6 +2012,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -2510,6 +2520,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -2880,6 +2891,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -3016,6 +3028,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -3531,6 +3544,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -4037,6 +4051,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
@ -4633,6 +4648,7 @@ MonoBehaviour:
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1650,7 +1650,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.085, y: 0.17039008}
m_AnchorMax: {x: 0.9127319, y: 0.83626276}
m_AnchoredPosition: {x: 0.23046875, y: -3.0000305}
m_AnchoredPosition: {x: 0.23046875, y: -3}
m_SizeDelta: {x: -0.42, y: -14}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &265801314
@ -2295,10 +2295,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 545548130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -473.16882}
m_SizeDelta: {x: 600, y: 100}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &430243133
MonoBehaviour:
@ -4016,10 +4016,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 545548130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -623.1688}
m_SizeDelta: {x: 600, y: 100}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &674695656
MonoBehaviour:
@ -4158,7 +4158,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.34800002, y: 0.017585823}
m_AnchorMax: {x: 0.6518958, y: 0.18448228}
m_AnchoredPosition: {x: 0, y: -0.49993896}
m_AnchoredPosition: {x: 0, y: -0.5}
m_SizeDelta: {x: 0, y: -1}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &683903128
@ -4374,7 +4374,7 @@ MonoBehaviour:
m_HandleRect: {fileID: 1078381204}
m_Direction: 2
m_Value: 1
m_Size: 0.8907827
m_Size: 0.86301625
m_NumberOfSteps: 0
m_OnValueChanged:
m_PersistentCalls:
@ -4623,10 +4623,10 @@ RectTransform:
- {fileID: 1631191833}
m_Father: {fileID: 519510896}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -298.16888}
m_SizeDelta: {x: 400, y: 150}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &780569109
GameObject:
@ -4888,10 +4888,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 545548130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -323.16882}
m_SizeDelta: {x: 600, y: 100}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &783722930
MonoBehaviour:
@ -5029,9 +5029,9 @@ RectTransform:
m_Father: {fileID: 265801313}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -17, y: 20}
m_SizeDelta: {x: 0, y: 20}
m_Pivot: {x: 0, y: 0}
--- !u!114 &787002084
MonoBehaviour:
@ -5302,10 +5302,10 @@ RectTransform:
- {fileID: 457224350}
m_Father: {fileID: 519510896}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -498.16888}
m_SizeDelta: {x: 400, y: 150}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &817313575
GameObject:
@ -5476,10 +5476,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 545548130}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 238.57596, y: -173.16882}
m_SizeDelta: {x: 600, y: 100}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &820785317
MonoBehaviour:
@ -6248,7 +6248,7 @@ RectTransform:
m_Father: {fileID: 38989454}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -6670,8 +6670,8 @@ Transform:
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_LocalScale: {x: 100, y: 100, z: 100}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 700047462}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -6982,8 +6982,8 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1819180688}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.109217286}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -7355,7 +7355,7 @@ RectTransform:
m_Father: {fileID: 96234448}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -7430,7 +7430,7 @@ RectTransform:
m_Father: {fileID: 47570575}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -7675,7 +7675,7 @@ RectTransform:
m_Father: {fileID: 837630039}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@ -9131,7 +9131,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &1460883867
RectTransform:
m_ObjectHideFlags: 0
@ -9280,9 +9280,9 @@ RectTransform:
m_Father: {fileID: 265801313}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -17, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1461740380
MonoBehaviour:
@ -9368,7 +9368,7 @@ RectTransform:
m_Father: {fileID: 462618672}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -9480,7 +9480,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.132, y: 0.5}
m_AnchorMax: {x: 0.846, y: 0.77500004}
m_AnchoredPosition: {x: -54.500008, y: 5}
m_AnchoredPosition: {x: -54.50001, y: 5}
m_SizeDelta: {x: -107, y: -10}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1474919456
@ -9616,7 +9616,7 @@ RectTransform:
m_Father: {fileID: 244828024}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -11939,7 +11939,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -0.00006484985}
m_AnchoredPosition: {x: 0, y: -0.000019041576}
m_SizeDelta: {x: 0, y: 300}
m_Pivot: {x: 0, y: 1}
--- !u!114 &1792218764
@ -13094,7 +13094,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &1932206569
RectTransform:
m_ObjectHideFlags: 0
@ -13317,7 +13317,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.132, y: 0.21750003}
m_AnchorMax: {x: 0.846, y: 0.5}
m_AnchoredPosition: {x: -54.500008, y: -79}
m_AnchoredPosition: {x: -54.50001, y: -79}
m_SizeDelta: {x: -107, y: -63}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1959311160
@ -14073,7 +14073,7 @@ RectTransform:
m_Father: {fileID: 1638546234}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -14148,7 +14148,7 @@ RectTransform:
m_Father: {fileID: 2055356562}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -14360,7 +14360,7 @@ RectTransform:
m_Father: {fileID: 1411940924}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 40, y: 0}
m_Pivot: {x: 0.5, y: 0.5}

View File

@ -2,11 +2,38 @@ namespace RR.Game2D.Animations
{
public interface CreatureAnimationEvents
{
/// <summary>
/// Метод для обновления звуковых эффектов существа.
/// Обновляет SFXAsset ссылки из соответствующего контроллера существа.
/// </summary>
void UpdateSFX();
/// <summary>
/// Метод для обработки событий, связанных со смертью существа.
/// Это общий метод, если не надо отдельно обрабатывать начало и конец смерти.
/// </summary>
void OnDeath();
/// <summary>
/// Метод для обработки событий при начале анимации смерти существа.
/// </summary>
void OnDeathBegin();
/// <summary>
/// Метод для обработки событий при завершении анимации смерти существа.
/// </summary>
void OnDeathEnd();
/// <summary>
/// Метод для обработки событий шага существа.
/// Можно как воспроизводить звуки шагов, так и создавать эффекты пыли и т.д.
/// </summary>
void OnStep();
/// <summary>
/// Метод для обработки событий прыжка существа.
/// Можно воспроизводить звуки прыжка, запускать эффекты частиц и т.д.
/// </summary>
void OnJump();
}
}

View File

@ -11,14 +11,20 @@ namespace RR.Game2D.Animations
public class EnemyAnimationEvents : MonoBehaviour, CreatureAnimationEvents
{
[SerializeField] private VisualEffectAsset deathVFX;
[SerializeField] private Vector3 deathVFXOffset = Vector3.zero;
private SFXAsset _stepSounds;
private SFXAsset _hurtSounds;
private Vector3 _vfxSpawnPoint;
private void Awake()
{
// Загружаем и кэшируем звуковые эффекты из контроллера врага
UpdateSFX();
Collider2D col = GetComponent<Collider2D>();
// Учитываем поворот объекта при вычислении смещения
Vector3 rotatedOffset = transform.rotation * deathVFXOffset;
_vfxSpawnPoint = (col ? col.bounds.center : transform.position) + rotatedOffset;
}
public void UpdateSFX()
@ -30,6 +36,8 @@ namespace RR.Game2D.Animations
}
public void OnDeath() {}
public void OnJump() {}
public void OnDeathBegin()
{
@ -49,7 +57,13 @@ namespace RR.Game2D.Animations
// Отключаем скрипты и коллайдер
if (controller) controller.enabled = false;
if (fireScript) fireScript.enabled = false;
if (col) col.enabled = false;
if (col)
{
col.enabled = false;
// Учитываем поворот объекта при вычислении смещения
Vector3 rotatedOffset = transform.rotation * deathVFXOffset;
_vfxSpawnPoint = col.bounds.center + rotatedOffset;
}
if (!rb) return;
// Останавливаем физику
@ -60,11 +74,10 @@ namespace RR.Game2D.Animations
public void OnDeathEnd()
{
// Создаем визуальный эффект смерти
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, transform.position, 1f);
// if (vfx) vfx.transform.rotation = transform.rotation;
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, _vfxSpawnPoint, 1f);
// Уничтожаем врага
// Destroy(gameObject);
Destroy(gameObject);
}
public void OnStep()
@ -73,10 +86,5 @@ namespace RR.Game2D.Animations
if (_stepSounds && _stepSounds.soundEffects.Length > 0)
GameManager.Instance.Audio.PlayRandomSfxAt(_stepSounds.soundEffects, transform.position);
}
public void OnJump()
{
throw new System.NotImplementedException();
}
}
}

View File

@ -11,11 +11,13 @@ namespace RR.Game2D.Animations
public class PlayerAnimationEvents : MonoBehaviour, CreatureAnimationEvents
{
[SerializeField] private VisualEffectAsset deathVFX;
[SerializeField] private Vector3 deathVFXOffset = Vector3.zero;
private SFXAsset _stepSounds;
private SFXAsset _hurtSounds;
private SFXAsset _jumpSounds;
private Rigidbody2D _rb;
private Vector3 _vfxSpawnPoint;
private void OnEnable() => LevelPlayerSFX.Instance.SFXChanged += UpdateSFX;
@ -28,6 +30,10 @@ namespace RR.Game2D.Animations
UpdateSFX();
_rb = GetComponent<Rigidbody2D>();
Collider2D col = GetComponent<Collider2D>();
// Учитываем поворот объекта при вычислении смещения
Vector3 rotatedOffset = transform.rotation * deathVFXOffset;
_vfxSpawnPoint = (col ? col.bounds.center : transform.position) + rotatedOffset;
}
public void UpdateSFX()
@ -44,13 +50,25 @@ namespace RR.Game2D.Animations
{
if (_hurtSounds && _hurtSounds.soundEffects.Length > 0)
GameManager.Instance.Audio.PlayRandomSfxAt(_hurtSounds.soundEffects, transform.position);
PlayerFireScript fireScript = GetComponent<PlayerFireScript>();
if (fireScript.enableFire) fireScript.enableFire = false;
}
public void OnDeathEnd()
{
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, transform.position, 1f);
Collider2D col = GetComponent<Collider2D>();
Vector3 rotatedOffset = transform.rotation * deathVFXOffset;
_vfxSpawnPoint = col ? col.bounds.center : transform.position + rotatedOffset;
if (deathVFX) VFXPool.Instance.Spawn(deathVFX, _vfxSpawnPoint, 1f);
gameObject.layer = LayerMask.NameToLayer("Default");
_rb.constraints = RigidbodyConstraints2D.FreezeRotation;
PlayerFireScript fireScript = GetComponent<PlayerFireScript>();
if (!fireScript.enableFire) fireScript.enableFire = true;
GameManager.Instance.RespawnPlayer();
}

View File

@ -0,0 +1,53 @@
using UnityEngine;
using TMPro;
namespace RR.Common.Behaviour
{
public class Message : Sequencer
{
[SerializeField] private TextMeshProUGUI messageText;
[SerializeField] private RectTransform bubbleRectTransform;
[SerializeField] private int maxWidth;
private string _text;
public void Initialize(string text)
{
_text = text;
if (_text != null)
{
float width = Mathf.Ceil(_text.Length * 1.2f / 5f);
if (maxWidth > 0 && width > maxWidth)
{
width = maxWidth;
messageText.textWrappingMode = TextWrappingModes.Normal;
}
else
{
messageText.textWrappingMode = TextWrappingModes.NoWrap;
}
bubbleRectTransform.sizeDelta = new Vector2(width, bubbleRectTransform.sizeDelta.y);
messageText.text = _text;
}
if (actions.Count == 0)
{
SetDefaultActions();
}
InitializeSequence();
}
private void SetDefaultActions()
{
actions.Add(new MessageAppearAction()
{
startScale = 0f,
endScale = 1f,
transitionSpeed = 3f
});
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: fe746195c25446c69428c4a4ae730170
timeCreated: 1765268093

View File

@ -0,0 +1,47 @@
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
public class MessageController : Sequencer
{
[SerializeField] private GameObject messagePlaceholderPrefab;
[SerializeField] private GameObject messageBubblePrefab;
private void OnTriggerEnter2D(Collider2D other)
{
if (!IsExecuting && other.CompareTag("Player"))
{
StartCoroutine(ExecuteSequence(other.gameObject));
}
}
public void Add(GameObject targetObject, string text)
{
// Ищем объект "Message Placeholder" среди дочерних объектов
Transform placeholder = targetObject.transform.Find("Message Placeholder");
// Если placeholder не найден, создаем его
if (!placeholder)
{
GameObject placeholderInstance = Instantiate(messagePlaceholderPrefab, targetObject.transform);
if (targetObject.transform.localScale != Vector3.one)
{
placeholderInstance.transform.localScale = Vector3.one / targetObject.transform.localScale.x;
}
placeholderInstance.name = "Message Placeholder";
placeholder = placeholderInstance.transform;
}
// Создаем Message и добавляем его в placeholder
GameObject messageInstance = Instantiate(messageBubblePrefab, placeholder);
Message message = messageInstance.GetComponent<Message>();
if (message)
{
message.Initialize(text);
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: e5ca6e2129584eef861ab7fe88c8cf1c
timeCreated: 1765259064

View File

@ -0,0 +1,35 @@
using UnityEngine;
namespace RR.Common.Behaviour
{
public class MessagePlaceholder : MonoBehaviour
{
private Transform _parentTransform;
private Quaternion _lastParentRotation;
private void Awake()
{
_parentTransform = transform.parent;
if (_parentTransform != null)
{
_lastParentRotation = _parentTransform.rotation;
}
}
private void Update()
{
// Компенсируем поворот только если родитель изменил rotation
if (_parentTransform != null && _parentTransform.rotation != _lastParentRotation)
{
_lastParentRotation = _parentTransform.rotation;
transform.rotation = Quaternion.identity;
}
// Используем childCount вместо GetComponentsInChildren — намного быстрее
if (transform.childCount == 0)
{
Destroy(gameObject);
}
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 25a4cc37b1e5b534cb6375b69dc25808

View File

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

View File

@ -0,0 +1,27 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Действие добавления сообщения
/// </summary>
[Serializable]
public class AddMessageAction : SequenceAction
{
[SerializeField] public string text;
[SerializeField] public GameObject target;
public override IEnumerator Execute(Sequencer sequencer, GameObject targetGO)
{
if (sequencer is MessageController messageController)
{
GameObject actualTarget = target ? target : targetGO;
messageController.Add(actualTarget, text);
}
yield return null;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 6035425443aa4ccd865743d0478872ae
timeCreated: 1765275700

View File

@ -0,0 +1,26 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Действие удаления игрового объекта
/// </summary>
[Serializable]
public class DeleteGameObjectAction : SequenceAction
{
[SerializeField] public GameObject targetObject;
public override IEnumerator Execute(Sequencer sequencer, GameObject target)
{
GameObject objectToDelete = targetObject != null ? targetObject : target;
if (objectToDelete != null)
{
UnityEngine.Object.Destroy(objectToDelete);
}
yield return null;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f0e6ed364d504d5c9ee29e12ea32f5ce
timeCreated: 1765275707

View File

@ -0,0 +1,36 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Действие появления сообщения (масштабирование от startScale до endScale)
/// </summary>
[Serializable]
public class MessageAppearAction : SequenceAction
{
[SerializeField] public float startScale = 0f;
[SerializeField] public float endScale = 1f;
[SerializeField] public float transitionSpeed = 1f;
public override IEnumerator Execute(Sequencer sequencer, GameObject target)
{
if (!target) yield break;
target.transform.localScale = new Vector3(startScale, startScale, startScale);
while (target.transform.localScale.x < endScale)
{
target.transform.localScale = Vector3.MoveTowards(
target.transform.localScale,
new Vector3(endScale, endScale, endScale),
Time.deltaTime * transitionSpeed
);
yield return null;
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: df6ce657b67c4770a563fcc30821f2d8
timeCreated: 1765276054

View File

@ -0,0 +1,36 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Действие исчезновения сообщения (масштабирование от startScale до endScale)
/// </summary>
[Serializable]
public class MessageDisappearAction : SequenceAction
{
[SerializeField] public float startScale = 1f;
[SerializeField] public float endScale = 0f;
[SerializeField] public float transitionSpeed = 1f;
public override IEnumerator Execute(Sequencer sequencer, GameObject target)
{
if (!target) yield break;
target.transform.localScale = new Vector3(startScale, startScale, startScale);
while (target.transform.localScale.x > endScale)
{
target.transform.localScale = Vector3.MoveTowards(
target.transform.localScale,
new Vector3(endScale, endScale, endScale),
Time.deltaTime * transitionSpeed
);
yield return null;
}
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: f25d3255413940618ba132c1ac40b564
timeCreated: 1765276063

View File

@ -0,0 +1,16 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Базовый класс для действий в последовательности
/// </summary>
[Serializable]
public abstract class SequenceAction
{
public abstract IEnumerator Execute(Sequencer sequencer, GameObject target);
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 7f42191955e3487a9b61d66c3ae6f58c
timeCreated: 1765275685

View File

@ -0,0 +1,37 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace RR.Common.Behaviour
{
public class Sequencer : MonoBehaviour
{
[Header("Последовательность действий")]
[SerializeReference] public List<SequenceAction> actions = new();
protected bool IsExecuting;
public void InitializeSequence()
{
StartCoroutine(ExecuteSequence(gameObject));
}
public void InitializeSequence(GameObject target)
{
StartCoroutine(ExecuteSequence(target));
}
protected virtual IEnumerator ExecuteSequence(GameObject target)
{
IsExecuting = true;
foreach (SequenceAction action in actions.Where(action => action != null))
{
yield return StartCoroutine(action.Execute(this, target));
}
IsExecuting = false;
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 76364f07b904710408227e6ea487f928

View File

@ -0,0 +1,21 @@
using System;
using System.Collections;
using UnityEngine;
namespace RR.Common.Behaviour
{
/// <summary>
/// Действие задержки
/// </summary>
[Serializable]
public class WaitAction : SequenceAction
{
[SerializeField] public float duration = 1f;
public override IEnumerator Execute(Sequencer sequencer, GameObject target)
{
yield return new WaitForSeconds(duration);
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 23ffb239587349b893d0634c9ddf4e39
timeCreated: 1765275690

View File

@ -27,26 +27,30 @@ namespace RR.Game2D.Behaviour
[Header("FX")]
[SerializeField] private SFXAsset throwSounds;
// Включение/отключение возможности броска
[HideInInspector] public bool enableFire = true;
private PickableProjectile _pickableProjectile;
private Collider2D _col;
void Awake()
private void Awake()
{
if (!attachPoint)
Debug.LogWarning("PlayerFireScript: attachPoint не задан. Будет использован корень игрока.");
_col = GetComponent<Collider2D>();
fireButton.action.started += ThrowProjectile;
fireButton.action.performed += ThrowProjectile;
}
private void OnDisable()
{
fireButton.action.started -= ThrowProjectile;
fireButton.action.performed -= ThrowProjectile;
}
private void ThrowProjectile(InputAction.CallbackContext obj)
{
//if (!Input.GetButtonDown("Fire1")) return;
if (!fireButton.action.WasPressedThisFrame()) return;
// if (!fireButton.action.WasPressedThisFrame()) return;
if (!enableFire) return;
if (_pickableProjectile == null)
_pickableProjectile = PickableProjectile.Instance;

View File

@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.VFX;
using RR.Common.Utility;
namespace RR.Game2D.Behaviour
{
@ -14,6 +15,7 @@ namespace RR.Game2D.Behaviour
[SerializeField] private int poolSize = 32;
[SerializeField] private float defaultLifetime = 2f; // время жизни эффекта по умолчанию (сек)
[SerializeField] private SortingLayerPicker defaultSortingLayer;
private Queue<GameObject> _pool;
@ -37,6 +39,10 @@ namespace RR.Game2D.Behaviour
{
GameObject vfxGameObject = new GameObject($"VFX_{i}");
vfxGameObject.AddComponent<VisualEffect>();
// Устанавливаем Sorting Layer для рендерера VFX
ApplySortingLayer(vfxGameObject);
// Созданные объекты сразу не активны в пуле
vfxGameObject.SetActive(false);
vfxGameObject.transform.SetParent(transform);
@ -53,6 +59,18 @@ namespace RR.Game2D.Behaviour
}
}
/// <summary>
/// Применяет Sorting Layer к рендереру VFX объекта
/// </summary>
private void ApplySortingLayer(GameObject vfxGameObject)
{
Renderer vfxRenderer = vfxGameObject.GetComponent<Renderer>();
if (vfxRenderer != null)
{
vfxRenderer.sortingLayerID = defaultSortingLayer.id;
}
}
/// <summary>
/// Получить VFX объект из пула (без автоматического запуска)
/// </summary>
@ -83,6 +101,10 @@ namespace RR.Game2D.Behaviour
vfxInstance = new GameObject($"VFX_{_pool.Count}");
VisualEffect vfx = vfxInstance.AddComponent<VisualEffect>();
vfx.visualEffectAsset = vfxAsset;
// Устанавливаем Sorting Layer для рендерера VFX
ApplySortingLayer(vfxInstance);
vfxInstance.transform.SetParent(transform);
vfxInstance.SetActive(true);
}
@ -134,7 +156,7 @@ namespace RR.Game2D.Behaviour
// Ждём указанное время. Можно заменить на более точный механизм при наличии событий от VFXGraph.
yield return new WaitForSeconds(seconds);
// Перед возвратом уверенно останавливаем эффект
// Перед возвратом явно останавливаем эффект
VisualEffect visualEffect = vfxInstance.GetComponent<VisualEffect>();
if (visualEffect) visualEffect.Stop();

View File

@ -3,19 +3,22 @@ using UnityEngine.UIElements;
using RR.Common.Controllers;
[CustomEditor(typeof(MusicController))]
public class MusicController_Inspector : Editor
namespace RR.Common.InspectorOverrides
{
public VisualTreeAsset m_InspectorUXML;
public override VisualElement CreateInspectorGUI()
[CustomEditor(typeof(MusicController))]
public class MusicController_Inspector : Editor
{
VisualElement customInspector = new VisualElement();
public VisualTreeAsset m_InspectorUXML;
if (m_InspectorUXML == null) return customInspector;
VisualElement uxmlContent = m_InspectorUXML.CloneTree();
customInspector.Add(uxmlContent);
public override VisualElement CreateInspectorGUI()
{
VisualElement customInspector = new VisualElement();
return customInspector;
if (m_InspectorUXML == null) return customInspector;
VisualElement uxmlContent = m_InspectorUXML.CloneTree();
customInspector.Add(uxmlContent);
return customInspector;
}
}
}

View File

@ -0,0 +1,109 @@
using System;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;
using RR.Common.Behaviour;
namespace RR.Common.InspectorOverrides
{
[CustomPropertyDrawer(typeof(SequenceAction), true)]
public class SequenceActionDrawer : PropertyDrawer
{
private static readonly Dictionary<string, Type> ActionTypes = new()
{
{ "Задержка", typeof(WaitAction) },
{ "Добавить сообщение", typeof(AddMessageAction) },
{ "Появление сообщения", typeof(MessageAppearAction) },
{ "Исчезновение сообщения", typeof(MessageDisappearAction) },
{ "Удалить объект", typeof(DeleteGameObjectAction) }
};
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
EditorGUI.BeginProperty(position, label, property);
// Получаем текущий тип
string currentTypeName = property.managedReferenceValue?.GetType().Name ?? "None";
// Кнопка для выбора типа
Rect buttonRect = new(position.x, position.y, position.width, EditorGUIUtility.singleLineHeight);
if (GUI.Button(buttonRect, $"Тип: {currentTypeName}"))
{
ShowTypeMenu(property);
}
// Отображаем поля выбранного типа
if (property.managedReferenceValue != null)
{
EditorGUI.indentLevel++;
Rect fieldsRect = new(position.x, position.y + EditorGUIUtility.singleLineHeight + 2,
position.width, position.height - EditorGUIUtility.singleLineHeight - 2);
SerializedProperty iterator = property.Copy();
SerializedProperty endProperty = property.GetEndProperty();
bool enterChildren = true;
float yOffset = 0;
while (iterator.NextVisible(enterChildren) && !SerializedProperty.EqualContents(iterator, endProperty))
{
enterChildren = false;
Rect fieldRect = new(fieldsRect.x, fieldsRect.y + yOffset,
fieldsRect.width, EditorGUIUtility.singleLineHeight);
EditorGUI.PropertyField(fieldRect, iterator, true);
yOffset += EditorGUIUtility.singleLineHeight + 2;
}
EditorGUI.indentLevel--;
}
EditorGUI.EndProperty();
}
public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
{
float height = EditorGUIUtility.singleLineHeight;
if (property.managedReferenceValue != null)
{
SerializedProperty iterator = property.Copy();
SerializedProperty endProperty = property.GetEndProperty();
bool enterChildren = true;
while (iterator.NextVisible(enterChildren) && !SerializedProperty.EqualContents(iterator, endProperty))
{
enterChildren = false;
height += EditorGUIUtility.singleLineHeight + 2;
}
}
return height + 4;
}
private static void ShowTypeMenu(SerializedProperty property)
{
GenericMenu menu = new();
menu.AddItem(new GUIContent("None (Пусто)"), false, () =>
{
property.managedReferenceValue = null;
property.serializedObject.ApplyModifiedProperties();
});
menu.AddSeparator("");
foreach ((string key, Type type) in ActionTypes)
{
menu.AddItem(new GUIContent(key), false, () =>
{
property.managedReferenceValue = Activator.CreateInstance(type);
property.serializedObject.ApplyModifiedProperties();
});
}
menu.ShowAsContext();
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3b765a27e8c34de5af712acc90851cdf
timeCreated: 1765274686

View File

@ -0,0 +1,25 @@
using System.Linq;
using RR.Common.Utility;
using UnityEditor;
using UnityEngine;
namespace RR.Common.InspectorOverrides
{
[CustomPropertyDrawer(typeof(SortingLayerPicker))]
public class SortingLayer_Inspector : PropertyDrawer
{
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
{
SerializedProperty id = property.FindPropertyRelative("id");
string[] layers = SortingLayer.layers.Select(layer => layer.name).ToArray();
int index = SortingLayer.GetLayerValueFromID(id.intValue) -
SortingLayer.GetLayerValueFromID(SortingLayer.layers[0].id);
index = Mathf.Clamp(index, 0, layers.Length - 1);
index = EditorGUI.Popup(position, label.text, index, layers);
id.intValue = SortingLayer.layers[index].id;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: ccec4b9d75b04f77af77cdf64f0fbe2b
timeCreated: 1765182303

View File

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

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 9ca898a7ee70440499365a7191e0cd75, type: 3}
m_Name: Delete Game Object
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.Behaviour.ScriptableObjects.SequencerActionDeleteGameObject

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ec019e2643daa8f41a374f8901ebc3e0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 24dadfc6193c43689452ac59122ba5bf, type: 3}
m_Name: Message Appear
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.Behaviour.ScriptableObjects.SequencerActionMessageAppear
message: Hello, World!
startScale: 0
endScale: 1
transitionSpeed: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 932313562fdf2384b99f182cd216061e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,17 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 581e98d76ff948dab2cd9c4d13e06b33, type: 3}
m_Name: Message Disappear
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.Behaviour.SequencerActionMessageDisappear
startScale: 1
endScale: 0
transitionSpeed: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 68cca327ddf1e71449e6dddc188bf968
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: f24b948007734c2c8f83b29d0e687188, type: 3}
m_Name: Wait 1 Second
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.Behaviour.ScriptableObjects.SequencerActionWait
waitTime: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a85cfec5ea0175644a14f0cc9a11701f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,15 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: f24b948007734c2c8f83b29d0e687188, type: 3}
m_Name: Wait 2 Seconds
m_EditorClassIdentifier: Assembly-CSharp::RR.Common.Behaviour.ScriptableObjects.SequencerActionWait
waitTime: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5c059f8f488efc643b14d0aa2a4e59ba
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
using System;
using UnityEngine;
namespace RR.Common.Utility
{
[Serializable]
public struct SortingLayerPicker
{
public int id;
public string Name => SortingLayer.IDToName(id);
public static implicit operator int(SortingLayerPicker layerPicker)
{
return layerPicker.id;
}
}
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5163e06070364aeb8aa67e5413aacdad
timeCreated: 1765183223