Lots of fixes and changes

This commit is contained in:
Данил Ярош 2025-09-23 17:08:43 +03:00
parent 8495175ac1
commit dade82f5d1
243 changed files with 209378 additions and 58323 deletions

View File

@ -0,0 +1,38 @@
%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: c46f07b5ed07e4e92aa78254188d3d10, type: 3}
m_Name: InputSystem.inputsettings
m_EditorClassIdentifier:
m_SupportedDevices: []
m_UpdateMode: 1
m_ScrollDeltaBehavior: 0
m_MaxEventBytesPerUpdate: 5242880
m_MaxQueuedEventsPerUpdate: 1000
m_CompensateForScreenOrientation: 1
m_BackgroundBehavior: 0
m_EditorInputBehaviorInPlayMode: 0
m_InputActionPropertyDrawerMode: 0
m_DefaultDeadzoneMin: 0.125
m_DefaultDeadzoneMax: 0.925
m_DefaultButtonPressPoint: 0.5
m_ButtonReleaseThreshold: 0.75
m_DefaultTapTime: 0.2
m_DefaultSlowTapTime: 0.5
m_DefaultHoldTime: 0.4
m_TapRadius: 5
m_MultiTapDelayTime: 0.75
m_DisableRedundantEventsMerging: 0
m_ShortcutKeysConsumeInputs: 0
m_iOSSettings:
m_MotionUsage:
m_Enabled: 0
m_Description:

View File

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

View File

@ -120,28 +120,6 @@
"isComposite": true,
"isPartOfComposite": false
},
{
"name": "up",
"id": "e2062cb9-1b15-46a2-838c-2f8d72a0bdd9",
"path": "<Keyboard>/w",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "up",
"id": "8180e8bd-4097-4f4e-ab88-4523101a6ce9",
"path": "<Keyboard>/upArrow",
"interactions": "",
"processors": "",
"groups": "",
"action": "Move",
"isComposite": false,
"isPartOfComposite": true
},
{
"name": "down",
"id": "320bffee-a40b-4347-ac70-c210eb8bc73a",
@ -544,7 +522,7 @@
"name": "Cancel",
"type": "Button",
"id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef",
"expectedControlType": "Button",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
@ -611,6 +589,15 @@
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "Fullscreen",
"type": "Button",
"id": "79689455-6cf3-48f0-b2c6-66e0ff5f27a8",
"expectedControlType": "",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
@ -1031,6 +1018,17 @@
"action": "TrackedDeviceOrientation",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "ebb2a970-4934-4c83-bb43-9b2bd076199b",
"path": "<Keyboard>/f11",
"interactions": "",
"processors": "",
"groups": ";Keyboard&Mouse",
"action": "Fullscreen",
"isComposite": false,
"isPartOfComposite": false
}
]
}

View File

@ -1,5 +1,31 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-5973356747398055219
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Death
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: d387094ed7eb19d47bc8eadd5993185e, type: 2}
m_Tag:
m_SpeedParameter: Speed
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter: Speed
--- !u!1107 &-3338463078668509953
AnimatorStateMachine:
serializedVersion: 6
@ -15,6 +41,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 2494664430871487251}
m_Position: {x: 30, y: 240, z: 0}
- serializedVersion: 1
m_State: {fileID: -5973356747398055219}
m_Position: {x: 350, y: 180, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []

View File

@ -1354,7 +1354,7 @@ AnimationClip:
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0

View File

@ -132,6 +132,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: -234086058997577863}
m_Position: {x: 520, y: 60, z: 0}
- serializedVersion: 1
m_State: {fileID: -4551320674845357304}
m_Position: {x: 419.02585, y: 157.82312, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions:
- {fileID: -4357743603330148193}
@ -143,6 +146,32 @@ AnimatorStateMachine:
m_ExitPosition: {x: 540, y: -120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 3687052423515968881}
--- !u!1102 &-4551320674845357304
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Death
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 8b334f6c4d259f540b51f5714750248e, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-4524273695638566384
AnimatorStateTransition:
m_ObjectHideFlags: 1
@ -282,7 +311,7 @@ AnimatorState:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Jump Landing
m_Speed: 3
m_Speed: 5
m_CycleOffset: 0
m_Transitions:
- {fileID: -4524273695638566384}

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!62 &6200000
PhysicsMaterial2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NoFrictionNoBounciness
serializedVersion: 2
friction: 0
bounciness: 0
m_FrictionCombine: 1
m_BounceCombine: 3

View File

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

View File

@ -81,7 +81,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: f005ea36a25360f448c5209ca82941b5, type: 3}
m_Name:
m_EditorClassIdentifier:
projectilePrefab: {fileID: -4497857136159010500, guid: 6aec5580e6fdb3444ac411544f10714d, type: 3}
projectilePrefab: {fileID: -7989557871638947772, guid: 6aec5580e6fdb3444ac411544f10714d, type: 3}
projectileLifetime: 1
throwCooldown: 3
throwSpeed: 20
throwSpeed: 10

View File

@ -2603,7 +2603,7 @@ Rigidbody2D:
m_LinearDamping: 0
m_AngularDamping: 0.05
m_GravityScale: 10
m_Material: {fileID: 6200000, guid: be34b14ed2876354d9864a6e677e5d67, type: 2}
m_Material: {fileID: 6200000, guid: ef73745564211ee48acbe78dd6b6d123, type: 2}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
@ -2624,7 +2624,7 @@ CapsuleCollider2D:
m_Enabled: 1
serializedVersion: 3
m_Density: 1
m_Material: {fileID: 6200000, guid: be34b14ed2876354d9864a6e677e5d67, type: 2}
m_Material: {fileID: 6200000, guid: ef73745564211ee48acbe78dd6b6d123, type: 2}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
@ -2663,6 +2663,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 0bc7d3e0d74d74448be804ed4f109e23, type: 3}
m_Name:
m_EditorClassIdentifier:
moveAction: {fileID: -1680190386980627800, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
jumpAction: {fileID: -2099379676528639254, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
moveSpeed: 9
accel: 100
decel: 30
@ -2683,7 +2685,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 4e22b17be0e015040bb8efb0e96fa590, type: 3}
m_Name:
m_EditorClassIdentifier:
projectilePrefab: {fileID: 0}
fireButton: {fileID: 5543754354036874770, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
projectilePrefab: {fileID: 4169089013277977673, guid: 7fd3a37dc702ece42b51e5867473f0ff, type: 3}
spawnIfMissing: 0
throwSpeed: 20
attachPoint: {fileID: 6550761234593413718}

View File

@ -11,9 +11,9 @@ GameObject:
- component: {fileID: 8204021653063603523}
- component: {fileID: 5039366343268462424}
- component: {fileID: 3223988708429247924}
- component: {fileID: -4497857136159010500}
- component: {fileID: -7989557871638947772}
m_Layer: 0
m_Name: BasicProjectile_Knife
m_Name: EnemyBasicProjectile
m_TagString: EnemyProjectile
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -96,10 +96,10 @@ CapsuleCollider2D:
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0.66, y: 0}
m_Size: {x: 3.1, y: 0.65}
m_Offset: {x: 0.55, y: 0}
m_Size: {x: 2.8, y: 0.65}
m_Direction: 1
--- !u!114 &-4497857136159010500
--- !u!114 &-7989557871638947772
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -108,23 +108,9 @@ MonoBehaviour:
m_GameObject: {fileID: 6300779947181808680}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dd23834261ccea64f9dee185aec1c335, type: 3}
m_Script: {fileID: 11500000, guid: 735a1449e587f5043b0f7dba39b14c86, type: 3}
m_Name:
m_EditorClassIdentifier:
initialSpeed: 15
maxLifetime: 5
hitLayers:
serializedVersion: 2
m_Bits: 4294967295
maxPierce: 0
useGravity: 0
gravityScale: 1
hitVfxPrefab: {fileID: 0}
hitSfx: {fileID: 0}
sfxVolume: 1
alignRotationToVelocity: 1
knockback: 0
owner: {fileID: 0}
--- !u!1 &8420934987544802596
GameObject:
m_ObjectHideFlags: 0

View File

@ -27,7 +27,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_LocalScale: {x: 0.3, y: 0.3, z: 0.3}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 545129323297949019}
@ -96,9 +96,9 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 545129323297949019}
- component: {fileID: 6653117729701884941}
- component: {fileID: -5514699390522382162}
- component: {fileID: 2578964165629714180}
- component: {fileID: 6653117729701884941}
m_Layer: 0
m_Name: RotatingAxe
m_TagString: Untagged
@ -122,33 +122,6 @@ Transform:
- {fileID: 7385878452865319771}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &-5514699390522382162
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8684604728942303326}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c9bf14759f50fe840881e3893e823b55, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2578964165629714180
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8684604728942303326}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bb46007bd79608e4587a7ecfbcc3b237, type: 3}
m_Name:
m_EditorClassIdentifier:
angleX: 0
angleY: 0
angleZ: 2.5
--- !u!70 &6653117729701884941
CapsuleCollider2D:
m_ObjectHideFlags: 0
@ -186,3 +159,30 @@ CapsuleCollider2D:
m_Offset: {x: 0, y: 0}
m_Size: {x: 4.4, y: 1.4}
m_Direction: 1
--- !u!114 &-5514699390522382162
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8684604728942303326}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c9bf14759f50fe840881e3893e823b55, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2578964165629714180
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8684604728942303326}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bb46007bd79608e4587a7ecfbcc3b237, type: 3}
m_Name:
m_EditorClassIdentifier:
angleX: 0
angleY: 0
angleZ: 2.5

View File

@ -69,8 +69,8 @@ CapsuleCollider2D:
m_UsedByEffector: 0
m_CompositeOperation: 0
m_CompositeOrder: 0
m_Offset: {x: 0, y: -1.27}
m_Size: {x: 2, y: 3.2}
m_Offset: {x: 0, y: -1.29}
m_Size: {x: 2, y: 3.17}
m_Direction: 0
--- !u!114 &3064008371871130008
MonoBehaviour:
@ -130,7 +130,7 @@ Transform:
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: -1.275, z: 0}
m_LocalScale: {x: 2, y: 2, z: 2}
m_LocalScale: {x: 0.21, y: 0.21, z: 0.21}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 5436562580517533349}

View File

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

View File

@ -0,0 +1,319 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1758083603916175787
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7082477975537308933}
- component: {fileID: 6418208233271057322}
- component: {fileID: -2647512120749192222}
m_Layer: 0
m_Name: LevelButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7082477975537308933
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1758083603916175787}
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: 4651342010868548259}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6418208233271057322
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1758083603916175787}
m_CullTransparentMesh: 1
--- !u!114 &-2647512120749192222
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1758083603916175787}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1946d57c5f8c8f44f95566482d38dfb3, type: 3}
m_Name:
m_EditorClassIdentifier:
title: {fileID: 2985328858931436486}
btn: {fileID: 7403115420713256969}
--- !u!1 &2307937535396352836
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7969020585539137307}
- component: {fileID: 2544164544592874034}
- component: {fileID: 2985328858931436486}
m_Layer: 0
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7969020585539137307
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2307937535396352836}
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: 4651342010868548259}
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 &2544164544592874034
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2307937535396352836}
m_CullTransparentMesh: 1
--- !u!114 &2985328858931436486
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2307937535396352836}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
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: 1-1
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 5302535af1044152a457ed104f1f4b91, type: 2}
m_sharedMaterial: {fileID: 2164040, guid: 5302535af1044152a457ed104f1f4b91, 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: 48
m_fontSizeBase: 48
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
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}
--- !u!1 &7033118707232536323
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4651342010868548259}
- component: {fileID: 739767321169741777}
- component: {fileID: 4558843671109735324}
- component: {fileID: 7403115420713256969}
m_Layer: 0
m_Name: Button
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4651342010868548259
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7033118707232536323}
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: 7969020585539137307}
m_Father: {fileID: 7082477975537308933}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &739767321169741777
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7033118707232536323}
m_CullTransparentMesh: 1
--- !u!114 &4558843671109735324
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7033118707232536323}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
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: -8111322212487550922, guid: 31b2877e77610584cac3a41c46e85320, 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!114 &7403115420713256969
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7033118707232536323}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 4558843671109735324}
m_OnClick:
m_PersistentCalls:
m_Calls: []

View File

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

View File

@ -665,7 +665,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_FirstSelected: {fileID: 1065887709}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &188101337
@ -1308,7 +1308,7 @@ MonoBehaviour:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_SelectedColor: {r: 0.7764706, g: 0.7764706, b: 0.7764706, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1565,7 +1565,7 @@ MonoBehaviour:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_SelectedColor: {r: 0.7764706, g: 0.7764706, b: 0.7764706, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
@ -1635,6 +1635,8 @@ GameObject:
- component: {fileID: 1388854596}
- component: {fileID: 1388854595}
- component: {fileID: 1388854594}
- component: {fileID: 1388854599}
- component: {fileID: 1388854598}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
@ -1726,6 +1728,40 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &1388854598
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388854593}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 55d821bd8bf8bb14c857f497ec6f2a0d, type: 3}
m_Name:
m_EditorClassIdentifier:
close: {fileID: 7727032971491509709, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
panel: {fileID: 1946308725}
resumeButton: {fileID: 1065887711}
quitButton: {fileID: 1294478665}
--- !u!114 &1388854599
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1388854593}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1dbf0fd3a12f9564d9e8c9d2008d2e8f, type: 3}
m_Name:
m_EditorClassIdentifier:
livesCount: 0
coinsCount: 0
levelNumber:
livesText: {fileID: 250473979}
coinsText: {fileID: 122148826}
levelText: {fileID: 1162184471}
--- !u!1 &1527626192
GameObject:
m_ObjectHideFlags: 0
@ -1940,7 +1976,6 @@ GameObject:
- component: {fileID: 1946308721}
- component: {fileID: 1946308723}
- component: {fileID: 1946308722}
- component: {fileID: 1946308724}
- component: {fileID: 1946308725}
m_Layer: 5
m_Name: PausePanel
@ -2007,21 +2042,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1946308720}
m_CullTransparentMesh: 1
--- !u!114 &1946308724
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1946308720}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 55d821bd8bf8bb14c857f497ec6f2a0d, type: 3}
m_Name:
m_EditorClassIdentifier:
panel: {fileID: 1946308725}
resumeButton: {fileID: 1065887711}
quitButton: {fileID: 1294478665}
--- !u!225 &1946308725
CanvasGroup:
m_ObjectHideFlags: 0
@ -2046,7 +2066,6 @@ GameObject:
- component: {fileID: 2068040776}
- component: {fileID: 2068040775}
- component: {fileID: 2068040774}
- component: {fileID: 2068040777}
m_Layer: 5
m_Name: TopPanel
m_TagString: Untagged
@ -2139,24 +2158,6 @@ Canvas:
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &2068040777
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2068040772}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1dbf0fd3a12f9564d9e8c9d2008d2e8f, type: 3}
m_Name:
m_EditorClassIdentifier:
livesCount: 0
coinsCount: 0
levelNumber:
livesText: {fileID: 250473979}
coinsText: {fileID: 122148826}
levelText: {fileID: 1162184471}
--- !u!1 &2082762285
GameObject:
m_ObjectHideFlags: 0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,218 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 1
m_PVRFilteringGaussRadiusAO: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &1317173644
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1317173647}
- component: {fileID: 1317173646}
- component: {fileID: 1317173645}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &1317173645
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1317173644}
m_Enabled: 1
--- !u!20 &1317173646
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1317173644}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &1317173647
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1317173644}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 1317173647}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 86bb899abf617614ea731dfb70ed822e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,6 @@
using UnityEngine;
public interface IBouncy
{
public bool TryBounce(Collision2D collision);
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 847009d73357dff4b9eecc3544331c9a

View File

@ -0,0 +1,12 @@
using UnityEngine;
public interface ILauchable
{
/// <summary>
/// Метод для запуска объекта как снаряд
/// </summary>
/// <param name="direction">Направление запуска</param>
/// <param name="speed">Скорость запуска</param>
/// <param name="owner">Владелец</param>
public void Launch(Vector2 direction, float speed, GameObject owner);
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 81cf0790d7ea99d42808e924b32bf042

View File

@ -0,0 +1,6 @@
using UnityEngine;
public interface IPickable
{
public bool TryPickup(GameObject newOwner, Transform attachPoint = null);
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0dcc6d4619228494fac3da9f768fb2cb

View File

@ -0,0 +1,4 @@
public interface IRecallable
{
public void Recall();
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: cf6adbb036b554543bbd9c373ce32a67

View File

@ -6,12 +6,12 @@ namespace RR.Game2D.Core
public class CameraFollow2D : MonoBehaviour
{
[Header("Follow")]
public float damping = 1.5f;
public Vector2 offset = new(2f, 1f);
public bool faceLeft;
[SerializeField, Min(0)] private float damping = 1.5f;
[SerializeField] private Vector2 offset = new(2f, 1f);
[SerializeField] private bool faceLeft;
[Header("Behaviour")]
public bool snapOnFound = true;
[SerializeField] private bool snapOnFound = true;
private Transform player;
private float lastX;
@ -33,8 +33,9 @@ namespace RR.Game2D.Core
if (!player) return; // ждём появления
float currentX = player.position.x;
if (currentX > lastX + 0.01f) faceLeft = false;
else if (currentX < lastX - 0.01f) faceLeft = true;
//if (currentX > lastX + 0.01f) faceLeft = false;
//else if (currentX < lastX - 0.01f) faceLeft = true;
faceLeft = Mathf.Abs(player.localEulerAngles.y) >= 180 ? true : false;
lastX = currentX;
Vector3 target = player.position;

View File

@ -1,10 +1,14 @@
using UnityEngine;
using UnityEngine.InputSystem;
using RR.Game2D.Entities.Projectiles;
namespace RR.Game2D.Behaviour
{
public class PlayerFireScript : MonoBehaviour
{
[Header("Управление")]
[SerializeField] private InputActionReference fireButton;
[Header("Снаряд")]
[SerializeField] private PickableProjectile projectilePrefab;
public bool spawnIfMissing = false;
@ -23,7 +27,8 @@ namespace RR.Game2D.Behaviour
void Update()
{
if (!Input.GetButtonDown("Fire1")) return;
//if (!Input.GetButtonDown("Fire1")) return;
if (!fireButton.action.WasPressedThisFrame()) return;
if (pickableProjectile == null)
pickableProjectile = PickableProjectile.Instance;
@ -51,8 +56,7 @@ namespace RR.Game2D.Behaviour
/// </summary>
private void Throw()
{
float scaleX = transform.localScale.x;
float facing = Mathf.Sign(scaleX == 0 ? 1 : scaleX);
float facing = Mathf.Abs(transform.localEulerAngles.y) >= 180 ? -1 : 1;
Vector2 direction = facing > 0 ? Vector2.right : Vector2.left;
Vector2 launchPos = (Vector2)transform.position + new Vector2(1.4f * facing, 0);

View File

@ -118,6 +118,7 @@ namespace RR.Game2D.Behaviour
public void Die()
{
//animator.Play("Death", 0); // TODO: Анимация смерти, потом смерть
Destroy(gameObject);
}

View File

@ -1,43 +0,0 @@
using UnityEngine;
using UnityEngine.InputSystem;
public class GlobalFullscreenHotkey : MonoBehaviour
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
static void Bootstrap()
{
var go = new GameObject("GlobalFullscreenHotkey");
go.AddComponent<GlobalFullscreenHotkey>();
Object.DontDestroyOnLoad(go);
}
void Update()
{
var kb = Keyboard.current;
if (kb == null) return;
bool f11 = kb.f11Key.wasPressedThisFrame;
bool altEnter = kb.enterKey.wasPressedThisFrame && (kb.leftAltKey.isPressed || kb.rightAltKey.isPressed);
if (f11 || altEnter) Toggle();
}
static void Toggle()
{
bool fs = !Screen.fullScreen;
Screen.fullScreenMode = fs ? FullScreenMode.FullScreenWindow : FullScreenMode.Windowed;
if (fs)
{
Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, true);
Screen.fullScreen = true;
}
else
{
int w = Mathf.RoundToInt(Display.main.systemWidth * 0.5f);
int h = Mathf.RoundToInt(Display.main.systemHeight * 0.5f);
Screen.fullScreen = false;
Screen.SetResolution(w, h, false);
}
}
}

View File

@ -14,6 +14,9 @@ namespace RR.Game2D.Core
public bool IsPaused { get; private set; }
public event Action<bool> PauseStateChanged;
[Header("Базовые настройки игры")]
[SerializeField] private int maxLives = 3;
[Header("Информация для игры")]
public int World { get; private set; } = 1;
public int Stage { get; private set; } = 1;
@ -107,7 +110,7 @@ namespace RR.Game2D.Core
/// </summary>
public void NewGame()
{
Lives = 3;
Lives = maxLives;
Coins = 0;
CoinsChanged?.Invoke(Coins);
LoadLevel(1, 1);
@ -118,7 +121,11 @@ namespace RR.Game2D.Core
/// Окончание игры.
/// Загружает сцену главного меню
/// </summary>
public void GameOver() => LoadScene("MainMenu", false);
public void GameOver() // => LoadScene("MainMenu", false);
{
LoadScene("MainMenu", false);
Lives = maxLives;
}
// --
/// <summary>

View File

@ -1,5 +1,6 @@
using UnityEngine;
using RR.Game2D.Core;
using RR.Game2D.Core;
using UnityEngine;
using UnityEngine.InputSystem;
namespace RR.Game2D.Behaviour
{
@ -9,6 +10,9 @@ namespace RR.Game2D.Behaviour
typeof(Animator))]
public class PlayerController : MonoBehaviour
{
[Header("Управление")]
[SerializeField] private InputActionReference moveAction; // Value(Vector2), например "Move" (A/D, ←/→, stick)
[SerializeField] private InputActionReference jumpAction;
[Header("Горизонтальное движение")]
[SerializeField] private float moveSpeed = 8f;
@ -21,8 +25,6 @@ namespace RR.Game2D.Behaviour
[SerializeField] private float jumpBuffer = 0.1f;
[SerializeField, Range(0f, 1f)] private float jumpCut = 0.5f;
private float spriteScale = 0.35f;
private Rigidbody2D rb;
private Collider2D col;
@ -35,6 +37,18 @@ namespace RR.Game2D.Behaviour
[Header("Аниматор [Опционально]")]
[SerializeField] private Animator animator; // оставить в инспекторе на всякий случай
void OnEnable()
{
moveAction?.action.Enable();
jumpAction?.action.Enable();
}
void OnDisable()
{
moveAction?.action.Disable();
jumpAction?.action.Disable();
}
void Awake()
{
rb = GetComponent<Rigidbody2D>();
@ -54,20 +68,29 @@ namespace RR.Game2D.Behaviour
void Update()
{
// Передвижение
inputX = Input.GetAxisRaw("Horizontal");
//// Передвижение
//inputX = Input.GetAxisRaw("Horizontal");
//if (Input.GetButtonDown("Jump"))
////if (Input.GetButtonDown("Jump"))
//// lastJumpPressedTime = Time.time;
//if (Input.GetButton("Jump"))
// lastJumpPressedTime = Time.time;
if (Input.GetButton("Jump"))
//if (Input.GetButtonUp("Jump")) // && rb.linearVelocity.y > 0f)
// rb.linearVelocity = new Vector2(rb.linearVelocity.x, rb.linearVelocity.y * jumpCut);
Vector2 move = moveAction ? moveAction.action.ReadValue<Vector2>() : Vector2.zero;
inputX = Mathf.Abs(move.x) > 0.01f ? Mathf.Sign(move.x) : 0f;
if (jumpAction && jumpAction.action.IsPressed())
lastJumpPressedTime = Time.time;
if (Input.GetButtonUp("Jump")) // && rb.linearVelocity.y > 0f)
if (jumpAction && jumpAction.action.WasReleasedThisFrame())
rb.linearVelocity = new Vector2(rb.linearVelocity.x, rb.linearVelocity.y * jumpCut);
if (inputX != 0f)
transform.localScale = new Vector3(Mathf.Sign(inputX) * spriteScale, spriteScale, spriteScale);
transform.localEulerAngles = Mathf.Sign(inputX) > 0 ? Vector3.zero : new Vector3(0, 180f, 0);
if (IsGrounded) lastGroundedTime = Time.time;
@ -139,7 +162,7 @@ namespace RR.Game2D.Behaviour
bool Grounded()
{
RaycastHit2D hit = Physics2D.CircleCast(new Vector2(col.bounds.center.x, col.bounds.min.y), 0.01f, Vector2.down, 0.1f);
bool isGrounded = hit.collider != null;
bool isGrounded = hit.collider != null && hit.collider.CompareTag("Ground");
animator.SetBool("Jump", !isGrounded);

View File

@ -1,39 +1,30 @@
using UnityEngine;
using RR.Game2D.Core;
using RR.Game2D.Behaviour;
namespace RR.Game2D.Entities.Projectiles
{
public class BasicProjectile : Projectile2D
{
protected override void OnHit(Collision2D target, Vector2 point, Vector2 relativeVelocity)
protected override void Awake()
{
//var health = target.GetComponentInParent<Health>();
//if (health != null)
//{
// health.ApplyDamage(damage);
base.Awake();
// if (knockback > 0f)
// {
// var targetRb = target.attachedRigidbody;
// if (targetRb != null)
// {
// var dir = relativeVelocity.sqrMagnitude > 0.0001f
// ? relativeVelocity.normalized
// : (Vector2)(target.transform.position - transform.position).normalized;
// targetRb.AddForce(dir * knockback, ForceMode2D.Impulse);
// }
// }
//}
var player = GameManager.Instance.PlayerObj;
if (target.collider.CompareTag("Player"))
player.GetComponent<PlayerController>().Die();
else if (target.collider.CompareTag("Projectile") || target.collider.CompareTag("Enemy"))
Despawn();
base.OnHit(target, point, relativeVelocity);
rb.bodyType = RigidbodyType2D.Kinematic;
col.isTrigger = false;
}
//protected override void OnHit(Collision2D target, Vector2 point, Vector2 relativeVelocity)
//{
//var player = GameManager.Instance.PlayerObj;
//if (target.collider.CompareTag("Player"))
// player.GetComponent<PlayerController>().Die();
//else if (target.collider.CompareTag("Projectile") || target.collider.CompareTag("Enemy"))
// Despawn();
// if (!target.collider.CompareTag(owner.tag))
// Despawn();
// base.OnHit(target, point, relativeVelocity);
//}
}
}

View File

@ -0,0 +1,32 @@
using UnityEngine;
using RR.Game2D.Core;
using RR.Game2D.Behaviour;
namespace RR.Game2D.Entities.Projectiles
{
public class EnemyBasicProjectile : BasicProjectile
{
protected override void Awake()
{
base.Awake();
rb.bodyType = RigidbodyType2D.Dynamic;
rb.gravityScale = 0;
}
protected override void OnHit(Collision2D target, Vector2 point, Vector2 relativeVelocity)
{
var player = GameManager.Instance.PlayerObj;
Debug.Log("EnemyProjectile collision");
if (target.collider.CompareTag("Player"))
{
Debug.Log("Collision is Player");
player.GetComponent<PlayerController>().Die();
}
else if (target.collider.CompareTag("Projectile") || target.collider.CompareTag("Enemy"))
Despawn();
base.OnHit(target, point, relativeVelocity);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 735a1449e587f5043b0f7dba39b14c86

View File

@ -4,14 +4,20 @@ namespace RR.Game2D.Entities.Projectiles
{
public class PhysicsProjectile : BasicProjectile
{
protected override void OnEnable()
//protected override void OnEnable()
//{
// remainingPierce = maxPierce;
// if (maxLifetime > 0f)
// Invoke(nameof(Despawn), maxLifetime);
//}
protected override void Awake()
{
remainingPierce = maxPierce;
if (maxLifetime > 0f)
Invoke(nameof(Despawn), maxLifetime);
base.Awake();
rb.bodyType = RigidbodyType2D.Dynamic;
}
public override void Launch(Vector2 direction, float speed = -1f, GameObject owner = null, float ignoreOwnerTime = 0.1f)
public override void Launch(Vector2 direction, float speed = -1f, GameObject owner = null)
{
this.owner = owner;
launched = true;

View File

@ -7,7 +7,7 @@ namespace RR.Game2D.Entities.Projectiles
[DisallowMultipleComponent]
[RequireComponent(typeof(Rigidbody2D),
typeof(Collider2D))]
public class PickableProjectile : Projectile2D
public class PickableProjectile : PhysicsProjectile, IPickable, IBouncy, IRecallable
{
public static PickableProjectile Instance { get; private set; }
@ -18,19 +18,17 @@ namespace RR.Game2D.Entities.Projectiles
[SerializeField] private Vector3 heldLocalOffset = new(0.25f, 0.1f, 0f);
[SerializeField] private float heldScale = 1.5f;
[SerializeField] private float ignoreOwnerTimeOnThrow = 0.1f;
[SerializeField] private string attachPointChildName = "HandPoint";
[Header("Приземление")]
[SerializeField] private float groundVelocity = 0.05f;
[SerializeField] private float groundVelocity = 0.1f;
[SerializeField] private bool lockWhenLanded = true;
[Header("Отскоки")]
[SerializeField] private int maxBounces = 3;
[SerializeField] private float minBounceSpeed = 0.8f;
[SerializeField, Range(0f, 1f)] private float restitution = 0.6f;
[SerializeField, Range(0f, 1f)] private float tangentDamping = 0.85f;
[SerializeField] private float stickDelayAfterImpact = 0.03f;
[Header("Возврат")]
[Tooltip("Старт возврата, если дальше этой дистанции от точки руки.")]
[SerializeField] private float recallStartDistance = 8f;
[Tooltip("На этой дистанции от руки считаем, что прилетел и подбираем.")]
@ -39,7 +37,7 @@ namespace RR.Game2D.Entities.Projectiles
[Header("Gizmos")]
[SerializeField] private bool drawGizmos;
[SerializeField] private Color gizmoColor = new Color(0.2f, 0.8f, 1f, 0.35f);
[SerializeField] private Color gizmoColor = new (0.2f, 0.8f, 1f, 0.35f);
private Transform holderAttachPoint;
private int bounceCounter = 0;
@ -49,6 +47,10 @@ namespace RR.Game2D.Entities.Projectiles
private bool hadBeenHeld = false;
private GameObject lastKnownHolder;
// -------------------------------------------
// Методы Unity
//
//---------------------------
// Singleton
//---------------------------
@ -79,7 +81,7 @@ namespace RR.Game2D.Entities.Projectiles
col.isTrigger = false;
if (CurrentState != State.Held)
BecomeGrounded(null);
BecomeGrounded();
}
//private void Update()
@ -94,19 +96,43 @@ namespace RR.Game2D.Entities.Projectiles
if (!lockWhenLanded && CurrentState == State.Airborne)
{
if (rb.linearVelocity.sqrMagnitude < (groundVelocity * groundVelocity))
BecomeGrounded(null);
BecomeGrounded();
}
if ((CurrentState == State.Airborne || CurrentState == State.Returning) && rb.linearVelocity.sqrMagnitude > 0.0001f)
transform.up = rb.linearVelocity.normalized;
if (CurrentState == State.Airborne && rb.linearVelocity.magnitude < 0.1f)
BecomeGrounded(null);
if (CurrentState == State.Airborne && rb.linearVelocity.magnitude < groundVelocity)
BecomeGrounded();
if (hadBeenHeld && CurrentState != State.Held)
HandleRecallToPlayer();
Recall();
}
//protected override void OnCollisionEnter2D(Collision2D collision)
//{
// var otherRb = collision.rigidbody ? collision.rigidbody : collision.otherRigidbody;
// var otherGO = (collision.collider ? collision.collider.attachedRigidbody?.gameObject : null)
// ?? otherRb?.gameObject
// ?? collision.gameObject;
// if (otherGO && otherGO.CompareTag("Player") && CurrentState != State.Held)
// {
// if (TryPickup(otherGO)) return;
// }
// base.OnCollisionEnter2D(collision);
// if (CurrentState == State.Airborne)
// {
// if (TryBounce(collision))
// lastImpactTime = Time.time;
// else
// BecomeGrounded(collision);
// }
//}
protected override void OnCollisionEnter2D(Collision2D collision)
{
var otherRb = collision.rigidbody ? collision.rigidbody : collision.otherRigidbody;
@ -124,13 +150,57 @@ namespace RR.Game2D.Entities.Projectiles
if (CurrentState == State.Airborne)
{
if (TryBounce(collision))
{
lastImpactTime = Time.time;
else
BecomeGrounded(collision);
return;
}
BecomeGrounded();
}
}
//
//
// -------------------------------------------
// -------------------------------------------
// Переопределенные методы родителей
//
protected override void OnHit(Collision2D collision, Vector2 point, Vector2 relativeVelocity)
{
TryDealDamage(collision.collider, point, relativeVelocity);
PlayFX(point);
//if (remainingPierce > 0)
//{
// remainingPierce--;
// return;
//}
OnImpactFinal(collision);
}
protected override void OnImpactFinal(Collision2D collision)
{
if (!TryBounce(collision))
BecomeGrounded();
}
protected override void OnImpactFinal(Collider2D other)
{
if (Time.time - lastImpactTime > stickDelayAfterImpact)
BecomeGrounded();
}
//
//
// -------------------------------------------
// -------------------------------------------
// Подбор
//
/// <summary>
/// Метод для подбора снаряда игроком.
/// Привязывает снаряд к точке привязки на игроке.
@ -178,8 +248,8 @@ namespace RR.Game2D.Entities.Projectiles
/// </summary>
/// <param name="holder">Игрок, который держит снаряд</param>
/// <param name="preferred">Опциональная точка привязки. При передаче, снаряд будет привязан на нее</param>
/// <returns>Transform attachPoint - точкка привязки</returns>
private Transform ResolveAttachPoint(GameObject holder, Transform preferred = null)
/// <returns>Transform attachPoint - точка привязки</returns>
private Transform FindAttachPoint(GameObject holder, Transform preferred = null)
{
if (preferred) return preferred;
@ -189,7 +259,52 @@ namespace RR.Game2D.Entities.Projectiles
return holder.transform;
}
public void Launch(Vector2 direction, float speed, GameObject throwOwner = null)
//
//
// -------------------------------------------
// -------------------------------------------
// Отскок
//
/// <summary>
/// Метод для просчета отскоков.
/// </summary>
/// <param name="collision">Коллизия, с которой столкнулся снаряд</param>
/// <returns>bool isBounced - произошел ли отскок</returns>
public bool TryBounce(Collision2D collision)
{
Debug.Log("TryBounce");
if (Time.time - lastImpactTime < stickDelayAfterImpact) return true;
if (bounceCounter > maxBounces) return false;
Vector2 velocityIn = rb.linearVelocity;
float speed = velocityIn.magnitude;
if (speed < minBounceSpeed) return false;
Vector2 direction = Vector2.Reflect(velocityIn, collision.contacts[0].normal);
rb.linearVelocity = col.sharedMaterial.bounciness * direction;
if (collision.collider.CompareTag("Ground") || collision.collider.CompareTag("Trap"))
bounceCounter++;
return true;
}
//
//
// -------------------------------------------
// -------------------------------------------
// Запуск
//
public override void Launch(Vector2 direction, float speed, GameObject throwOwner = null)
{
if (CurrentState == State.Held)
transform.SetParent(null);//, worldPositionStays: true);
@ -220,150 +335,15 @@ namespace RR.Game2D.Entities.Projectiles
bounceCounter = 0;
}
//
//
// -------------------------------------------
protected override void OnImpactFinal(Collision2D collision)
{
if (!TryBounce(collision))
BecomeGrounded(collision);
}
// -------------------------------------------
// Возвращение
//
protected override void OnImpactFinal(Collider2D other)
{
if (Time.time - lastImpactTime > stickDelayAfterImpact)
BecomeGrounded(null);
}
/// <summary>
/// Метод для просчета отскоков.
/// </summary>
/// <param name="collision">Коллизия, с которой столкнулся снаряд</param>
/// <returns>bool isBounced - произошел ли отскок</returns>
private bool TryBounce(Collision2D collision)
{
if (Time.time - lastImpactTime < stickDelayAfterImpact)
return true;
Vector2 velocityIn = rb.linearVelocity;
float speed = velocityIn.magnitude;
if (speed < minBounceSpeed) return false;
Vector2 normal;
float impulseSum = 0f;
float minSeparation = float.PositiveInfinity;
if (collision.contactCount > 0)
{
Vector2 sum = Vector2.zero;
for (int i = 0; i < collision.contactCount; i++)
{
ContactPoint2D contactPoint = collision.GetContact(i);
float impulse = Mathf.Max(0.0001f, Mathf.Abs(contactPoint.normalImpulse));
sum += contactPoint.normal * impulse;
impulseSum += impulse;
if (contactPoint.separation < minSeparation) minSeparation = contactPoint.separation;
}
normal = (impulseSum > 0f ? sum / impulseSum : sum);
if (normal.sqrMagnitude < 1e-6f) normal = Vector2.up;
else normal.Normalize();
}
else
{
normal = Vector2.up;
minSeparation = 0f;
}
if (Vector2.Dot(velocityIn, normal) > 0f) normal = -normal;
float matBounciness = restitution;
float frictionA = 0f, frictionB = 0f;
var projectileColMat = col ? col.sharedMaterial : null;
if (projectileColMat)
{
matBounciness = Mathf.Max(matBounciness, projectileColMat.bounciness);
frictionA = Mathf.Clamp01(projectileColMat.friction);
}
var otherCol = collision.collider;
if (otherCol)
{
var otherMat = otherCol.sharedMaterial;
if (otherMat)
{
matBounciness = Mathf.Max(matBounciness, otherMat.bounciness);
frictionB = Mathf.Clamp01(otherMat.friction);
}
}
float tangentFactor = (1f - frictionA) * (1f - frictionB) * Mathf.Clamp01(tangentDamping);
Vector2 velocityNormal = Vector2.Dot(velocityIn, normal) * normal;
Vector2 velocityTangent = velocityIn - velocityNormal;
Vector2 velocityOut = (-velocityNormal) * matBounciness + velocityTangent * tangentFactor;
rb.linearVelocity = velocityOut;
float pushOut = 0.005f;
if (minSeparation < 0f) pushOut = Mathf.Max(pushOut, -minSeparation + 0.001f);
rb.position += normal * pushOut;
if (velocityOut.sqrMagnitude > 1e-6f)
transform.up = velocityOut.normalized;
if (otherCol.CompareTag("Ground") || otherCol.CompareTag("Trap")) bounceCounter++;
if (bounceCounter >= maxBounces)
return false;
CurrentState = State.Airborne;
return true;
}
/// <summary>
/// Метод для заморозки снаряда на земле.
/// </summary>
/// <param name="collision">Коллизия, с которой столкнулся снаряд</param>
private void BecomeGrounded(Collision2D collision)
{
launched = false;
CurrentState = State.Grounded;
if (lockWhenLanded)
{
rb.linearVelocity = Vector2.zero;
rb.angularVelocity = 0f;
rb.bodyType = RigidbodyType2D.Kinematic;
}
else
{
rb.bodyType = RigidbodyType2D.Dynamic;
}
col.enabled = true;
transform.SetParent(null, true);
bounceCounter = 0;
}
/// <summary>
/// Метод для поиска точки привязки на игроке.
/// </summary>
/// <param name="owner">Объект игрока</param>
/// <returns>Transform attachPoint - точка привязки</returns>
private Transform FindAttachPoint(GameObject owner)
{
if (string.IsNullOrWhiteSpace(attachPointChildName)) return null;
var ownerTransform = owner.transform.Find(attachPointChildName);
return ownerTransform;
}
/// <summary>
/// Метод для обработки возвращения снаряда к игроку.
/// При возвращении снаряд игнорирует любые коллизии.
/// </summary>
private void HandleRecallToPlayer()
public void Recall()
{
GameObject playerGo = lastKnownHolder;
@ -374,7 +354,7 @@ namespace RR.Game2D.Entities.Projectiles
if (!playerGo) return;
var attachPoint = ResolveAttachPoint(playerGo);
var attachPoint = FindAttachPoint(playerGo);
bool isVisible = false;
var mainCamera = Camera.main;
@ -421,6 +401,43 @@ namespace RR.Game2D.Entities.Projectiles
TryPickup(playerGo);
}
//
//
// -------------------------------------------
// -------------------------------------------
// Собственные незаисимые методы
//
/// <summary>
/// Метод для заморозки снаряда на земле.
/// </summary>
/// <param name="collision">Коллизия, с которой столкнулся снаряд</param>
private void BecomeGrounded()
{
launched = false;
CurrentState = State.Grounded;
if (lockWhenLanded)
{
rb.linearVelocity = Vector2.zero;
rb.angularVelocity = 0f;
rb.bodyType = RigidbodyType2D.Kinematic;
}
else
{
rb.bodyType = RigidbodyType2D.Dynamic;
}
col.enabled = true;
transform.SetParent(null, true);
bounceCounter = 0;
}
//
//
// -------------------------------------------
#if UNITY_EDITOR
private void OnDrawGizmosSelected()
{

View File

@ -1,25 +1,23 @@
// Projectile2D.cs
using System.Collections;
using System.Collections;
using UnityEngine;
namespace RR.Game2D.Entities.Projectiles
{
[RequireComponent(typeof(Rigidbody2D), typeof(Collider2D))]
public abstract class Projectile2D : MonoBehaviour
public abstract class Projectile2D : MonoBehaviour, ILauchable
{
[Header("Скорость")]
public float initialSpeed = 15f;
[Header("Скорость")]
[Header("Базовые настройки")]
[SerializeField] protected float initialSpeed = 15f;
[SerializeField] protected float ignoreOwnerTime = 0.1f;
public float maxLifetime = 5f;
[Header("Столкновения/пробивания")]
public LayerMask hitLayers = ~0;
public int maxPierce = 0;
[SerializeField] protected LayerMask hitLayers = ~0;
[SerializeField] protected int maxPierce = 0;
[Header("Гравитация/физика")]
public bool useGravity = false;
public float gravityScale = 1f;
//[Header("Гравитация/физика")]
//[SerializeField] protected bool useGravity = false;
//[SerializeField] protected float gravityScale = 1f;
[Header("FX")]
[SerializeField] protected GameObject hitVfxPrefab;
@ -27,9 +25,9 @@ namespace RR.Game2D.Entities.Projectiles
[SerializeField] protected float sfxVolume = 1f;
[Header("Другое")]
public bool alignRotationToVelocity = true;
protected float damage = 10f;
public float knockback = 0f;
[SerializeField] private bool alignRotationToVelocity = true;
//[SerializeField] float damage = 10f;
//[SerializeField] float knockback = 0f;
protected Rigidbody2D rb;
protected Collider2D col;
@ -43,11 +41,11 @@ namespace RR.Game2D.Entities.Projectiles
rb = GetComponent<Rigidbody2D>();
col = GetComponent<Collider2D>();
// Базовые настройки физики
rb.bodyType = RigidbodyType2D.Dynamic;
rb.gravityScale = useGravity ? gravityScale : 0f;
rb.collisionDetectionMode = CollisionDetectionMode2D.Continuous;
col.isTrigger = false;
//// Базовые настройки физики
//rb.bodyType = RigidbodyType2D.Dynamic;
////rb.gravityScale = useGravity ? gravityScale : 0f;
//rb.collisionDetectionMode = CollisionDetectionMode2D.Continuous;
//col.isTrigger = false;
}
protected virtual void OnEnable()
@ -70,11 +68,9 @@ namespace RR.Game2D.Entities.Projectiles
protected virtual void OnCollisionEnter2D(Collision2D collision)
{
Collider2D other = collision.collider;
if (!IsInHitLayer(other.gameObject.layer)) return;
if (!IsInHitLayer(collision.collider.gameObject.layer)) return;
Vector2 point = collision.GetContact(0).point;
HandleHit(other, point, collision.relativeVelocity, isTriggerEvent: false, collision);
OnHit(collision, point, collision.relativeVelocity);
}
protected virtual void OnTriggerEnter2D(Collider2D other)
@ -83,17 +79,10 @@ namespace RR.Game2D.Entities.Projectiles
if (!IsInHitLayer(other.gameObject.layer)) return;
Vector2 point = other.ClosestPoint(transform.position);
HandleHit(other, point, rb.linearVelocity, isTriggerEvent: true, collision: null);
OnHit(other, point, rb.linearVelocity);
}
/// <summary>
///
/// </summary>
/// <param name="direction"></param>
/// <param name="speed"></param>
/// <param name="owner"></param>
/// <param name="ignoreOwnerTime"></param>
public virtual void Launch(Vector2 direction, float speed = -1f, GameObject owner = null, float ignoreOwnerTime = 0.1f)
public virtual void Launch(Vector2 direction, float speed = -1f, GameObject owner = null)
{
this.owner = owner;
launched = true;
@ -132,30 +121,6 @@ namespace RR.Game2D.Entities.Projectiles
return ((1 << layer) & hitLayers.value) != 0;
}
/// <summary>
///
/// </summary>
/// <param name="target"></param>
/// <param name="point"></param>
/// <param name="relativeVelocity"></param>
/// <param name="isTriggerEvent"></param>
/// <param name="collision"></param>
protected void HandleHit(Collider2D target, Vector2 point, Vector2 relativeVelocity, bool isTriggerEvent, Collision2D collision)
{
TryDealDamage(target, point, relativeVelocity);
OnHit(collision, point, relativeVelocity);
if (remainingPierce > 0)
{
remainingPierce--;
return;
}
if (isTriggerEvent) OnImpactFinal(target);
else OnImpactFinal(collision);
}
/// <summary>
///
/// </summary>
@ -181,6 +146,42 @@ namespace RR.Game2D.Entities.Projectiles
/// <param name="point"></param>
/// <param name="relativeVelocity"></param>
protected virtual void OnHit(Collision2D collision, Vector2 point, Vector2 relativeVelocity)
{
TryDealDamage(collision.collider, point, relativeVelocity);
PlayFX(point);
if (remainingPierce > 0)
{
remainingPierce--;
return;
}
OnImpactFinal(collision);
}
/// <summary>
///
/// </summary>
/// <param name="collider"></param>
/// <param name="point"></param>
/// <param name="relativeVelocity"></param>
protected virtual void OnHit(Collider2D collider, Vector2 point, Vector2 relativeVelocity)
{
Debug.Log("Projectile2D collision");
TryDealDamage(collider, point, relativeVelocity);
PlayFX(point);
if (remainingPierce > 0)
{
remainingPierce--;
return;
}
OnImpactFinal(collider);
}
protected virtual void PlayFX(Vector2 point)
{
if (hitVfxPrefab != null)
{

View File

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

View File

@ -0,0 +1,59 @@
using UnityEngine;
using UnityEngine.InputSystem;
public class FullscreenToggle : MonoBehaviour
{
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.AfterSceneLoad)]
static void Bootstrap()
{
var go = new GameObject("FullscreenToggle");
go.AddComponent<FullscreenToggle>();
DontDestroyOnLoad(go);
}
public void OnFullscreen(InputValue value)
{
if (Application.platform != RuntimePlatform.WebGLPlayer)
{
if (value.isPressed) // Проверяем нажатие кнопки
{
Toggle();
}
}
}
//void Update()
//{
// if (Application.platform != RuntimePlatform.WebGLPlayer)
// {
// var kb = Keyboard.current;
// if (kb == null) return;
// bool f11 = kb.f11Key.wasPressedThisFrame;
// bool altEnter = kb.enterKey.wasPressedThisFrame && (kb.leftAltKey.isPressed || kb.rightAltKey.isPressed);
// if (f11 || altEnter) Toggle();
// //if (Input.GetButtonDown("Fullscreen")) Toggle();
// }
//}
static void Toggle()
{
bool fs = !Screen.fullScreen;
Screen.fullScreenMode = fs ? FullScreenMode.FullScreenWindow : FullScreenMode.Windowed;
if (fs)
{
Screen.SetResolution(Display.main.systemWidth, Display.main.systemHeight, true);
Screen.fullScreen = true;
}
else
{
int w = Mathf.RoundToInt(Display.main.systemWidth * 0.5f);
int h = Mathf.RoundToInt(Display.main.systemHeight * 0.5f);
Screen.fullScreen = false;
Screen.SetResolution(w, h, false);
}
}
}

View File

@ -0,0 +1,43 @@
using UnityEngine;
using UnityEngine.UI;
using TMPro;
using RR.Game2D.Core;
public class LevelButton : MonoBehaviour
{
[SerializeField] TextMeshProUGUI title;
[SerializeField] Button btn;
private int world;
private int stage;
public void Setup(string levelSceneName, int levelWorld, int levelStage)
{
world = levelWorld;
stage = levelStage;
if (title) title.text = levelSceneName; // "1-3, 1-1 и т.д."
if (btn) { btn.onClick.RemoveAllListeners(); btn.onClick.AddListener(OnClick); }
}
public void SetColor(Color newColor)
{
ColorBlock newColors = btn.colors;
newColors.normalColor = newColor;
newColors.highlightedColor = Darken(newColor, 0.90f);
newColors.selectedColor = Darken(newColor, 0.85f);
newColors.pressedColor = Darken(newColor, 0.80f);
btn.colors = newColors;
}
void OnClick()
{
// через GameManager (предпочтительно)
GameManager.Instance.LoadLevel(world, stage);
// Фоллбэк, если нужно:
// UnityEngine.SceneManagement.SceneManager.LoadScene(sceneName);
}
private static Color Darken(Color c, float factor)
=> new Color(c.r * factor, c.g * factor, c.b * factor, c.a);
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 1946d57c5f8c8f44f95566482d38dfb3

View File

@ -0,0 +1,111 @@
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using UnityEngine.InputSystem;
public class LevelSelectModal : MonoBehaviour
{
[Header("Управление")]
[SerializeField] private InputActionReference close;
[Header("UI")]
[SerializeField] private CanvasGroup canvasGroup;
[SerializeField] private Transform content; // Grid parent
[SerializeField] private LevelButton levelButtonPrefab;
[SerializeField] private Button closeButton;
[SerializeField] private float fadeDuration = 0.15f;
readonly List<LevelButton> levelsPool = new();
void Awake()
{
if (closeButton) closeButton.onClick.AddListener(Close);
gameObject.SetActive(false);
}
// ==== ПУБЛИЧНЫЙ API ====
public void Open()
{
BuildIfNeeded();
gameObject.SetActive(true);
StopAllCoroutines();
StartCoroutine(Fade(0f, 1f, fadeDuration));
}
public void Close()
{
StopAllCoroutines();
StartCoroutine(Fade(1f, 0f, fadeDuration, () => gameObject.SetActive(false)));
}
// ==== ВНУТРЕННЕЕ ====
void BuildIfNeeded()
{
// Очистим/пересоберём (можно кэшировать, но пересборка надёжнее при изменениях Build Settings)
foreach (var b in levelsPool) if (b) Destroy(b.gameObject);
levelsPool.Clear();
var levels = EnumerateLevelScenesInBuild()
.OrderBy(e => e.world)
.ThenBy(e => e.stage)
.ToList();
foreach (var lv in levels)
{
var btn = Instantiate(levelButtonPrefab, content);
btn.Setup(lv.name, lv.world, lv.stage);
btn.SetColor(Color.green);
levelsPool.Add(btn);
}
}
struct LevelEntry { public string name; public int world; public int stage; }
IEnumerable<LevelEntry> EnumerateLevelScenesInBuild()
{
int n = SceneManager.sceneCountInBuildSettings;
for (int i = 0; i < n; i++)
{
string path = SceneUtility.GetScenePathByBuildIndex(i);
string name = System.IO.Path.GetFileNameWithoutExtension(path);
// фильтр "только уровни" по формату имени W-S:
var parts = name.Split('-');
if (parts.Length != 2) continue;
if (!int.TryParse(parts[0], out int w)) continue;
if (!int.TryParse(parts[1], out int s)) continue;
// Исключим служебные сцены, даже если вдруг совпадут по формату (на всякий случай)
if (name.Equals("Level UI", System.StringComparison.OrdinalIgnoreCase)) continue;
if (name.Equals("MainMenu", System.StringComparison.OrdinalIgnoreCase)) continue;
yield return new LevelEntry { name = name, world = w, stage = s };
}
}
System.Collections.IEnumerator Fade(float from, float to, float time, System.Action onDone = null)
{
if (!canvasGroup) { onDone?.Invoke(); yield break; }
float t = 0f;
canvasGroup.alpha = from;
canvasGroup.blocksRaycasts = true;
while (t < time)
{
t += Time.unscaledDeltaTime;
canvasGroup.alpha = Mathf.Lerp(from, to, t / time);
yield return null;
}
canvasGroup.alpha = to;
canvasGroup.blocksRaycasts = to > 0.99f;
onDone?.Invoke();
}
void Update()
{
// ESC закрыть
if (gameObject.activeSelf && close.action.WasPressedThisFrame())
Close();
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5b96039a6a73f764295ca4b3de5b5318

View File

@ -0,0 +1,159 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
[DisallowMultipleComponent]
public class ModalFocusTrap : MonoBehaviour
{
[Header("Modal")]
public GameObject modalRoot;
public Selectable firstSelected;
[Header("Behavior")]
[Tooltip("Следить и возвращать фокус внутрь модалки, если он уходит наружу.")]
public bool enforce = true;
bool wasOpenLastFrame;
GameObject prevSelectedGlobal;
readonly List<Selectable> outside = new();
readonly Dictionary<Selectable, bool> outsidePrev = new();
Selectable lastModalSelected;
void Reset()
{
if (modalRoot == null)
{
var sibling = transform.parent ? transform.parent.Find("LevelSelectModal") : null;
if (sibling) modalRoot = sibling.gameObject;
}
}
//void OnEnable()
//{
// if (modalRoot != null && modalRoot.activeSelf) OnModalOpened();
//}
void Update()
{
if (modalRoot == null) return;
bool isOpen = modalRoot.activeSelf;
if (isOpen && !wasOpenLastFrame) OnModalOpened();
else if (!isOpen && wasOpenLastFrame) OnModalClosed();
wasOpenLastFrame = isOpen;
if (isOpen && enforce) EnsureFocusInsideModal();
}
void OnDisable()
{
if (wasOpenLastFrame) OnModalClosed();
}
void OnModalOpened()
{
// запомнить, что было выделено до открытия
prevSelectedGlobal = EventSystem.current ? EventSystem.current.currentSelectedGameObject : null;
// выключить интерактив вне модалки
CollectOutsideSelectables();
foreach (var s in outside)
{
if (!s) continue;
outsidePrev[s] = s.interactable;
s.interactable = false;
}
// сфокусировать элемент внутри модалки
GameObject toSelect = null;
if (firstSelected && firstSelected.gameObject.activeInHierarchy)
toSelect = firstSelected.gameObject;
else
{
var any = modalRoot.GetComponentInChildren<Selectable>(includeInactive: false);
if (any) toSelect = any.gameObject;
}
if (toSelect && EventSystem.current)
{
EventSystem.current.SetSelectedGameObject(null);
EventSystem.current.SetSelectedGameObject(toSelect);
lastModalSelected = toSelect.GetComponent<Selectable>();
}
}
void OnModalClosed()
{
foreach (var kv in outsidePrev)
{
var s = kv.Key;
if (s) s.interactable = kv.Value;
}
outsidePrev.Clear();
outside.Clear();
if (EventSystem.current)
{
if (prevSelectedGlobal && prevSelectedGlobal.activeInHierarchy)
EventSystem.current.SetSelectedGameObject(prevSelectedGlobal);
else
EventSystem.current.SetSelectedGameObject(null);
}
lastModalSelected = null;
prevSelectedGlobal = null;
}
void CollectOutsideSelectables()
{
outside.Clear();
outsidePrev.Clear();
// ✅ Новый API Unity 6
var all = Object.FindObjectsByType<Selectable>(
FindObjectsInactive.Include,
FindObjectsSortMode.None);
foreach (var s in all)
{
if (!s || !s.gameObject.activeInHierarchy) continue;
if (!IsUnderModal(s.transform))
outside.Add(s);
}
}
bool IsUnderModal(Transform t)
{
if (!modalRoot) return false;
var root = modalRoot.transform;
for (var cur = t; cur != null; cur = cur.parent)
if (cur == root) return true;
return false;
}
void EnsureFocusInsideModal()
{
if (!EventSystem.current) return;
var cur = EventSystem.current.currentSelectedGameObject;
if (cur == null || !IsUnderModal(cur.transform))
{
GameObject fallback =
(lastModalSelected && lastModalSelected.gameObject.activeInHierarchy) ? lastModalSelected.gameObject :
(firstSelected && firstSelected.gameObject.activeInHierarchy) ? firstSelected.gameObject :
modalRoot.GetComponentInChildren<Selectable>()?.gameObject;
if (fallback)
{
EventSystem.current.SetSelectedGameObject(fallback);
lastModalSelected = fallback.GetComponent<Selectable>();
}
}
else
{
lastModalSelected = cur.GetComponent<Selectable>();
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: c815924369a0a64458e3c85a564de8b8

View File

@ -1,15 +1,16 @@
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
#if ENABLE_INPUT_SYSTEM
using UnityEngine.InputSystem;
#endif
using RR.Game2D.Core;
namespace RR.Common.UI
{
public class PauseMenu : MonoBehaviour
{
[Header("Управление")]
[SerializeField] private InputActionReference close;
[Header("UI")]
[SerializeField] private CanvasGroup panel;
[SerializeField] private Button resumeButton;
@ -41,13 +42,8 @@ namespace RR.Common.UI
private void Update()
{
#if ENABLE_INPUT_SYSTEM
if (Keyboard.current != null && Keyboard.current.escapeKey.wasPressedThisFrame)
if (close.action.WasPressedThisFrame())
GameManager.Instance.TogglePause();
#else
if (Input.GetKeyDown(toggleKey))
GameManager.Instance.TogglePause();
#endif
}
/// <summary>
@ -62,7 +58,7 @@ namespace RR.Common.UI
/// <summary>
/// Метод для изменения отображения
/// </summary>
/// <param name="visible">Отображать ли менб пайзы</param>
/// <param name="visible">Отображать ли меню паузы</param>
/// <param name="instant">Постоянно или нет</param>
private void SetVisible(bool visible, bool instant = false)
{

View File

@ -11,8 +11,8 @@ SpriteAtlasAsset:
m_MasterAtlas: {fileID: 0}
m_ImporterData:
packables:
- {fileID: 102900000, guid: d74a75b28ffe96a4d8368497ae6c8178, type: 3}
- {fileID: 102900000, guid: 2ab021cf296670642ad71d734effe746, type: 3}
- {fileID: 102900000, guid: a4e63de6c645b574b98cc46a3972aadf, type: 3}
- {fileID: 102900000, guid: d74a75b28ffe96a4d8368497ae6c8178, type: 3}
m_IsVariant: 0
m_ScriptablePacker: {fileID: 0}

View File

@ -16,11 +16,11 @@ SpriteAtlasImporter:
platformSettings: []
packingSettings:
serializedVersion: 2
padding: 4
padding: 8
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 0
enableTightPacking: 1
enableTightPacking: 0
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1

View File

@ -20,7 +20,7 @@ SpriteAtlasImporter:
blockOffset: 1
allowAlphaSplitting: 0
enableRotation: 0
enableTightPacking: 1
enableTightPacking: 0
enableAlphaDilation: 0
secondaryTextureSettings: {}
variantMultiplier: 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 438 KiB

View File

@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 650 KiB

View File

@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

View File

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

File diff suppressed because it is too large Load Diff

View File

@ -42,61 +42,11 @@ Tilemap:
m_GameObject: {fileID: 4147492001494567391}
m_Enabled: 1
m_Tiles:
- first: {x: 0, y: -5, z: 0}
second:
serializedVersion: 2
m_TileIndex: 0
m_TileSpriteIndex: 0
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 1, y: -5, z: 0}
second:
serializedVersion: 2
m_TileIndex: 1
m_TileSpriteIndex: 1
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 2, y: -5, z: 0}
second:
serializedVersion: 2
m_TileIndex: 2
m_TileSpriteIndex: 2
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -5, z: 0}
second:
serializedVersion: 2
m_TileIndex: 38
m_TileSpriteIndex: 3
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 0, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 3
m_TileSpriteIndex: 4
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 1, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 32
m_TileSpriteIndex: 5
m_TileIndex: 30
m_TileSpriteIndex: 30
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -105,8 +55,8 @@ Tilemap:
- first: {x: 2, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 33
m_TileSpriteIndex: 6
m_TileIndex: 28
m_TileSpriteIndex: 28
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -115,48 +65,18 @@ Tilemap:
- first: {x: 3, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 34
m_TileSpriteIndex: 7
m_TileIndex: 31
m_TileSpriteIndex: 31
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 4, y: -4, z: 0}
- first: {x: 7, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 35
m_TileSpriteIndex: 8
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 36
m_TileSpriteIndex: 9
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -4, z: 0}
second:
serializedVersion: 2
m_TileIndex: 37
m_TileSpriteIndex: 10
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 0, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 25
m_TileSpriteIndex: 11
m_TileIndex: 27
m_TileSpriteIndex: 27
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -165,8 +85,8 @@ Tilemap:
- first: {x: 1, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 26
m_TileSpriteIndex: 12
m_TileIndex: 29
m_TileSpriteIndex: 29
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -175,114 +95,14 @@ Tilemap:
- first: {x: 2, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 27
m_TileSpriteIndex: 13
m_TileIndex: 25
m_TileSpriteIndex: 25
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 3, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 28
m_TileSpriteIndex: 14
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 4, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 29
m_TileSpriteIndex: 15
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 30
m_TileSpriteIndex: 16
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 31
m_TileSpriteIndex: 17
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 0, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 18
m_TileSpriteIndex: 18
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 1, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 19
m_TileSpriteIndex: 19
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 2, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 20
m_TileSpriteIndex: 20
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 3, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 21
m_TileSpriteIndex: 21
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 4, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 22
m_TileSpriteIndex: 22
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 23
m_TileSpriteIndex: 23
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 24
@ -292,11 +112,111 @@ Tilemap:
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 0, y: -1, z: 0}
- first: {x: 4, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 11
m_TileSpriteIndex: 25
m_TileIndex: 23
m_TileSpriteIndex: 23
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 22
m_TileSpriteIndex: 22
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 21
m_TileSpriteIndex: 21
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 7, y: -3, z: 0}
second:
serializedVersion: 2
m_TileIndex: 26
m_TileSpriteIndex: 26
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 1, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 20
m_TileSpriteIndex: 20
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 2, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 19
m_TileSpriteIndex: 19
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 3, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 18
m_TileSpriteIndex: 18
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 4, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 17
m_TileSpriteIndex: 17
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 16
m_TileSpriteIndex: 16
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 15
m_TileSpriteIndex: 15
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 7, y: -2, z: 0}
second:
serializedVersion: 2
m_TileIndex: 14
m_TileSpriteIndex: 14
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -305,8 +225,8 @@ Tilemap:
- first: {x: 1, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 12
m_TileSpriteIndex: 26
m_TileIndex: 13
m_TileSpriteIndex: 13
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -315,8 +235,8 @@ Tilemap:
- first: {x: 2, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 13
m_TileSpriteIndex: 27
m_TileIndex: 12
m_TileSpriteIndex: 12
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -325,8 +245,8 @@ Tilemap:
- first: {x: 3, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 14
m_TileSpriteIndex: 28
m_TileIndex: 33
m_TileSpriteIndex: 33
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -335,8 +255,8 @@ Tilemap:
- first: {x: 4, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 15
m_TileSpriteIndex: 29
m_TileIndex: 38
m_TileSpriteIndex: 38
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -345,8 +265,8 @@ Tilemap:
- first: {x: 5, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 16
m_TileSpriteIndex: 30
m_TileIndex: 32
m_TileSpriteIndex: 32
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -355,18 +275,18 @@ Tilemap:
- first: {x: 6, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 17
m_TileSpriteIndex: 31
m_TileIndex: 11
m_TileSpriteIndex: 11
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 0, y: 0, z: 0}
- first: {x: 7, y: -1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 4
m_TileSpriteIndex: 32
m_TileIndex: 10
m_TileSpriteIndex: 10
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -375,8 +295,8 @@ Tilemap:
- first: {x: 1, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 5
m_TileSpriteIndex: 33
m_TileIndex: 9
m_TileSpriteIndex: 9
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -385,8 +305,8 @@ Tilemap:
- first: {x: 2, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 6
m_TileSpriteIndex: 34
m_TileIndex: 8
m_TileSpriteIndex: 8
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -396,7 +316,7 @@ Tilemap:
second:
serializedVersion: 2
m_TileIndex: 7
m_TileSpriteIndex: 35
m_TileSpriteIndex: 7
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -405,8 +325,8 @@ Tilemap:
- first: {x: 4, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 8
m_TileSpriteIndex: 36
m_TileIndex: 37
m_TileSpriteIndex: 37
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -415,8 +335,8 @@ Tilemap:
- first: {x: 5, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 9
m_TileSpriteIndex: 37
m_TileIndex: 6
m_TileSpriteIndex: 6
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -425,18 +345,98 @@ Tilemap:
- first: {x: 6, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 10
m_TileSpriteIndex: 38
m_TileIndex: 5
m_TileSpriteIndex: 5
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 8, y: 0, z: 0}
- first: {x: 7, y: 0, z: 0}
second:
serializedVersion: 2
m_TileIndex: 4
m_TileSpriteIndex: 4
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 1, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 3
m_TileSpriteIndex: 3
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 2, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 2
m_TileSpriteIndex: 2
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 3, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 36
m_TileSpriteIndex: 36
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 4, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 35
m_TileSpriteIndex: 35
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 5, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 34
m_TileSpriteIndex: 34
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 6, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 1
m_TileSpriteIndex: 1
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 7, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 0
m_TileSpriteIndex: 0
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
dummyAlignment: 0
m_AllTileFlags: 1073741825
- first: {x: 9, y: 1, z: 0}
second:
serializedVersion: 2
m_TileIndex: 39
m_TileSpriteIndex: 4
m_TileSpriteIndex: 29
m_TileMatrixIndex: 0
m_TileColorIndex: 0
m_TileObjectToInstantiateIndex: 65535
@ -445,164 +445,164 @@ Tilemap:
m_AnimatedTiles: {}
m_TileAssetArray:
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: d5522eaff0c24af41ae0cce16d40b61f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 209752644dc91b549b9056739d1de694, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 5ccf09e3ca124bc43a8db628726919f0, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 9d0558dcf7fe607499c0905346894836, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 7fb36ef6b0d74924990be0e5735e3be2, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: f82f2a0d66e928d418941a3cb64a1fd5, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 779317fdae9c5ec4896a470556c0760d, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 853ecd74b2c813744873829ce502e3b7, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 4de9f2b5a2b20d24389da0709d1ce379, type: 2}
m_Data: {fileID: 11400000, guid: 3dd8bfda02e36fe49a21e275f0bc9689, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 3542cb1853c3dbd479bd1849694a90b6, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 3dd8bfda02e36fe49a21e275f0bc9689, type: 2}
m_Data: {fileID: 11400000, guid: f82f2a0d66e928d418941a3cb64a1fd5, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 679597d81e067d8499c44eb170de7aba, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a567d4b3301d5bc4da3a4fed91bdacb3, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: da3558a772704014cac8c76075fe4b1c, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a77bbe978f8a31343adda910bd87b129, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 72ba9801f11193f4f92716965233bdb3, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: bfa0cd356d98b3d48ab0a19c052004ce, type: 2}
m_Data: {fileID: 11400000, guid: 7fb36ef6b0d74924990be0e5735e3be2, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: e1844a0220d0df94ca49cb34143c4955, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: d8876acd52050b04096befd49d5a1c14, type: 2}
m_Data: {fileID: 11400000, guid: bfa0cd356d98b3d48ab0a19c052004ce, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 8d77a6192515b4d42a0680cbea3b6d3c, type: 2}
m_Data: {fileID: 11400000, guid: 72ba9801f11193f4f92716965233bdb3, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 6f5d463080f4e384f9bfa37020fbb762, type: 2}
m_Data: {fileID: 11400000, guid: da3558a772704014cac8c76075fe4b1c, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: fd249e6c75eb0f5418320217b474b158, type: 2}
m_Data: {fileID: 11400000, guid: a567d4b3301d5bc4da3a4fed91bdacb3, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 7de82c62ebe360647a86621d4b981d4d, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 175b7405d2e37964383088f6f093d1ec, type: 2}
m_Data: {fileID: 11400000, guid: 679597d81e067d8499c44eb170de7aba, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 5122bc4b3e9cf0949b4516fa15328441, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: c1ee7665cd65cf447b5699bf16fb8b68, type: 2}
m_Data: {fileID: 11400000, guid: 175b7405d2e37964383088f6f093d1ec, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: d64f17c9ea8bb634f8cabe92be63b81f, type: 2}
m_Data: {fileID: 11400000, guid: 8d77a6192515b4d42a0680cbea3b6d3c, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: e6c496a58fd7ea243b6f2f6469f2802f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 17ed07556fcec3840959364d440ba218, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: e8c95ea9fa426be4695fd77991eb9c6e, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 80f5751af9f0fa2459916c0e0a1dccff, type: 2}
m_Data: {fileID: 11400000, guid: d8876acd52050b04096befd49d5a1c14, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 67d28117397897948bc1e100767e1709, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: fcf9521181c87c14d9554aa22373340d, type: 2}
m_Data: {fileID: 11400000, guid: 80f5751af9f0fa2459916c0e0a1dccff, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 63acc297cac46c6418d1eacda5252f82, type: 2}
m_Data: {fileID: 11400000, guid: e8c95ea9fa426be4695fd77991eb9c6e, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 4215b10cfa031a54095c7aa401e57a05, type: 2}
m_Data: {fileID: 11400000, guid: 17ed07556fcec3840959364d440ba218, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: e6c496a58fd7ea243b6f2f6469f2802f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: d64f17c9ea8bb634f8cabe92be63b81f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: c1ee7665cd65cf447b5699bf16fb8b68, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a65b7873d85f3ae45b50e8d61b401f4f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a0c895f67011835499012f01e4df594a, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a65b7873d85f3ae45b50e8d61b401f4f, type: 2}
m_Data: {fileID: 11400000, guid: 4215b10cfa031a54095c7aa401e57a05, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 63acc297cac46c6418d1eacda5252f82, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: fcf9521181c87c14d9554aa22373340d, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 28b993407afb65e44aecbf77494e7b94, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 060a24c515a3ac345b6449ae453120b4, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 209752644dc91b549b9056739d1de694, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 9d0558dcf7fe607499c0905346894836, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: d5522eaff0c24af41ae0cce16d40b61f, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 5ccf09e3ca124bc43a8db628726919f0, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 7de82c62ebe360647a86621d4b981d4d, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 6f5d463080f4e384f9bfa37020fbb762, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 4de9f2b5a2b20d24389da0709d1ce379, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 853ecd74b2c813744873829ce502e3b7, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 779317fdae9c5ec4896a470556c0760d, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: a77bbe978f8a31343adda910bd87b129, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: fd249e6c75eb0f5418320217b474b158, type: 2}
- m_RefCount: 1
m_Data: {fileID: 11400000, guid: 57b31afdcd8a01b4297ab74d40033ca0, type: 2}
m_TileSpriteArray:
- m_RefCount: 1
m_Data: {fileID: 7191991962518668938, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8196539210977983059, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -2658508185510960955, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4265706248661453283, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 2
m_Data: {fileID: 5047822559575912867, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5092281259715811575, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -547024744731349488, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8449129219236236317, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4757988163680790249, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -70544561768458129, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -3192807895309037797, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6533029589929993351, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5447027585216140908, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5847639856091764657, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6848384115424181139, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 3379152192150997598, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 1392019697758446801, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4308928161347384345, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8074099645880111163, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -7509908222454223829, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 2632754532777870510, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4206299883402668752, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4862551027066036021, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 128477835189776891, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4548179372540403334, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4515194493617515340, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8110766950150536484, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6055767957282799819, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 2718513996814743820, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 6628536997565749602, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6939396841327523522, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 1370918383867132530, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4050710359956972958, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4694081222966674561, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5871628898940079882, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -1895669345893792418, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4924701994791171026, guid: d440231d6f96217499ab62926952e2b3, type: 3}
m_Data: {fileID: 2918963379169597025, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 6432092734245894132, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 2918963379169597025, guid: d440231d6f96217499ab62926952e2b3, type: 3}
m_Data: {fileID: 4694081222966674561, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4050710359956972958, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 1370918383867132530, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6939396841327523522, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 6628536997565749602, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6055767957282799819, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8110766950150536484, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4515194493617515340, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4548179372540403334, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 128477835189776891, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -7509908222454223829, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8074099645880111163, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4308928161347384345, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 1392019697758446801, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 3379152192150997598, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6848384115424181139, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5847639856091764657, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5447027585216140908, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -6533029589929993351, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -70544561768458129, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4757988163680790249, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8449129219236236317, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -547024744731349488, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5092281259715811575, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -3192807895309037797, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4265706248661453283, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 8196539210977983059, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 2
m_Data: {fileID: 5047822559575912867, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 7191991962518668938, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -2658508185510960955, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4862551027066036021, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 2632754532777870510, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -4924701994791171026, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -1895669345893792418, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: -5871628898940079882, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 2718513996814743820, guid: d440231d6f96217499ab62926952e2b3, type: 3}
- m_RefCount: 1
m_Data: {fileID: 4206299883402668752, guid: d440231d6f96217499ab62926952e2b3, type: 3}
m_TileMatrixArray:
- m_RefCount: 40
m_Data:
@ -628,7 +628,7 @@ Tilemap:
m_TileObjectToInstantiateArray: []
m_AnimationFrameRate: 1
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Origin: {x: 0, y: -5, z: 0}
m_Origin: {x: 1, y: -4, z: 0}
m_Size: {x: 9, y: 6, z: 1}
m_TileAnchor: {x: 0.5, y: 0.5, z: 0}
m_TileOrientation: 0
@ -746,7 +746,7 @@ Grid:
m_CellGap: {x: 0, y: 0, z: 0}
m_CellLayout: 0
m_CellSwizzle: 0
--- !u!114 &4392044239039000423
--- !u!114 &3097424873329977174
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}

View File

@ -0,0 +1,36 @@
%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: 13312, guid: 0000000000000000e000000000000000, type: 0}
m_Name: Level_1_256x256_0 1
m_EditorClassIdentifier:
m_Sprite: {fileID: -4050710359956972958, guid: 50a8b202c2ca3d74084e837b0e56517d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Transform:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_InstancedGameObject: {fileID: 0}
m_Flags: 1
m_ColliderType: 1

View File

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

View File

@ -0,0 +1,36 @@
%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: 13312, guid: 0000000000000000e000000000000000, type: 0}
m_Name: Level_1_256x256_1 1
m_EditorClassIdentifier:
m_Sprite: {fileID: 2080128114, guid: 50a8b202c2ca3d74084e837b0e56517d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Transform:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_InstancedGameObject: {fileID: 0}
m_Flags: 1
m_ColliderType: 1

View File

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

View File

@ -0,0 +1,36 @@
%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: 13312, guid: 0000000000000000e000000000000000, type: 0}
m_Name: Level_1_256x256_10 1
m_EditorClassIdentifier:
m_Sprite: {fileID: 594499672, guid: 50a8b202c2ca3d74084e837b0e56517d, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Transform:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_InstancedGameObject: {fileID: 0}
m_Flags: 1
m_ColliderType: 1

View File

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

Some files were not shown because too many files have changed in this diff Show More