Initial commit

This commit is contained in:
2026-05-11 20:48:41 +03:00
commit e35e9a07d5
229 changed files with 82642 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
# This .gitignore file should be placed at the root of your Unity project directory
#
# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore
#
.utmp/
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
*.log
# By default unity supports Blender asset imports, *.blend1 blender files do not need to be commited to version control.
*.blend1
*.blend1.meta
# MemoryCaptures can get excessive in size.
# They also could contain extremely sensitive data
/[Mm]emoryCaptures/
# Recordings can get excessive in size
/[Rr]ecordings/
# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*
# Autogenerated Jetbrains Rider plugin
/[Aa]ssets/Plugins/Editor/JetBrains*
# Jetbrains Rider personal-layer settings
*.DotSettings.user
# Visual Studio cache directory
.vs/
# Gradle cache directory
.gradle/
.idea/
# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.slnx
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db
*.vsconfig
# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta
# Unity3D generated file on crash reports
sysinfo.txt
# Mono auto generated files
mono_crash.*
# Builds
*.apk
*.aab
*.unitypackage
*.unitypackage.meta
*.app
# Crashlytics generated file
crashlytics-build.properties
# TestRunner generated files
InitTestScene*.unity*
# Addressables default ignores, before user customizations
/ServerData
/[Aa]ssets/StreamingAssets/aa*
/[Aa]ssets/AddressableAssetsData/link.xml*
/[Aa]ssets/Addressables_Temp*
# By default, Addressables content builds will generate addressables_content_state.bin
# files in platform-specific subfolders, for example:
# /Assets/AddressableAssetsData/OSX/addressables_content_state.bin
/[Aa]ssets/AddressableAssetsData/*/*.bin*
# Visual Scripting auto-generated files
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Flow/UnitOptions.db.meta
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers
/[Aa]ssets/Unity.VisualScripting.Generated/VisualScripting.Core/Property Providers.meta
# Auto-generated scenes by play mode tests
/[Aa]ssets/[Ii]nit[Tt]est[Ss]cene*.unity*
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2fa1dda3f2383ea42b9a3e7f2e4ee29b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,122 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: HideTurretShopPanelAnimation
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 48.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
value: -70.1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 538195251
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.5
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 48.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
value: -70.1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cf5177708306ea840bee43350ecbc377
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,122 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ShowTurretShopPanelAnimation
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -97
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
value: 48.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 538195251
script: {fileID: 0}
typeID: 224
customType: 28
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.5
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -97
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.5
value: 48.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_AnchoredPosition.y
path:
classID: 224
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6706ab963b6b43d45a404fefbf4cd58b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,130 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-8221402128210734749
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: HideTurretShopPanelAnimation
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: cf5177708306ea840bee43350ecbc377, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-4033469201043044101
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ShowTurretShopPanelAnimation
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: 6706ab963b6b43d45a404fefbf4cd58b, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-2236769323153702698
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -256141724817769013}
m_Position: {x: 290, y: 120, z: 0}
- serializedVersion: 1
m_State: {fileID: -4033469201043044101}
m_Position: {x: 290, y: 20, z: 0}
- serializedVersion: 1
m_State: {fileID: -8221402128210734749}
m_Position: {x: 290, y: 200, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -256141724817769013}
--- !u!1102 &-256141724817769013
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Idle
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: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: TurretShopPanelAnimatorController
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -2236769323153702698}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aacff647c22b0204aae2265b87176f1a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 55cbd36b2a32bc84781bf86965955b41
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 794a6b85caa67d04ba913f54690078e7
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: a25612d039f3e074b8190c7dee131965
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 871a3e499d26e374689d71d62dc8767f
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 6de5b4b22859c274e90fca77c1d7dbc5
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 8851a431520806b4ea15f76e65f4bb86
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: caa2ca8f4c49ca84890b5c2335dfa85b
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 87ca7c2b2fca0c246ae44038211ece00
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+23
View File
@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 01ee91fa14118bc44adaeafbc78f011b
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,14 @@
fileFormatVersion: 2
guid: 052faaac586de48259a63d0c4782560b
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3}
generateWrapperCode: 0
wrapperCodePath:
wrapperClassName:
wrapperCodeNamespace:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: dc5ba5002d595c64c85e99698bf2aa31
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+21
View File
@@ -0,0 +1,21 @@
%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: b1e1b282bef2878e089a42b9c8507311, type: 3}
m_Name: Level_1
m_EditorClassIdentifier: Assembly-CSharp::Level
_enemiesPrefabs:
- {fileID: 5584936129478037181, guid: b37de89252d4203559a17b5f2b2d5667, type: 3}
- {fileID: 5584936129478037181, guid: b37de89252d4203559a17b5f2b2d5667, type: 3}
- {fileID: 5584936129478037181, guid: b37de89252d4203559a17b5f2b2d5667, type: 3}
- {fileID: 5584936129478037181, guid: b37de89252d4203559a17b5f2b2d5667, type: 3}
- {fileID: 5584936129478037181, guid: b37de89252d4203559a17b5f2b2d5667, type: 3}
_levelTimeSec: 10
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: db2c2aace91545d4d9deea106eef0f8b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25ddc33e62864c54a92a4ea6dfb7e5d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+137
View File
@@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5860863914821732139
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GrassBlockMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: ca01a0793d0771f4ab44153a01cb8a99, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: ca01a0793d0771f4ab44153a01cb8a99, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5fc6e89938c5d704a995590495fa519f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+137
View File
@@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3374394694674626268
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SandBlockMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 0fb2d121a762f6949b96e09a338a9462, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 0fb2d121a762f6949b96e09a338a9462, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 82cd554949abf19459c906dd8ffd8868
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5860863914821732139
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SelectedGrassBlockMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
m_LightmapFlags: 2
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: ca01a0793d0771f4ab44153a01cb8a99, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: ca01a0793d0771f4ab44153a01cb8a99, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0.101531535, g: 0.101531535, b: 0.101531535, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9e24435bdb83bfb43a73913d81fd3a3e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cec555fb6db8fd442885ca7f7cb31f52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3504882203180577180
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SteveSkinMaterial
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 7ff05774013637040bbc0cf53aaca281, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7ff05774013637040bbc0cf53aaca281, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2273cc5fd94204646ab7c1455c20d9bb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c9edbcf55e3a46a44857b58dfbbc7ff2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
+110
View File
@@ -0,0 +1,110 @@
fileFormatVersion: 2
guid: 3817c74e169f84e4bb3e30c7dba7966a
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ad92b48c78dcc2a4b8d08a1bf070876d
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 85c645244bdfa21479b6277d2f64f102
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+116
View File
@@ -0,0 +1,116 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &5551781390194506651
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -7511558181221131132, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 5fc6e89938c5d704a995590495fa519f, type: 2}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_Name
value: GrassBlock
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_TagString
value: GrassBlock
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_StaticEditorFlags
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
insertIndex: -1
addedObject: {fileID: 147756501286478017}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
insertIndex: -1
addedObject: {fileID: 1673662010218982673}
m_SourcePrefab: {fileID: 100100000, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
--- !u!1 &4740753373666985674 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
m_PrefabInstance: {fileID: 5551781390194506651}
m_PrefabAsset: {fileID: 0}
--- !u!65 &147756501286478017
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4740753373666985674}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.02, y: 0.020000005, z: 0.020000005}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &1673662010218982673
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4740753373666985674}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8d6715c95501a4f49bd34c8832850f32, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::BlockScript
_type: 1
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8dd20c91f0d7a7b419f6bedcd1870cba
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+116
View File
@@ -0,0 +1,116 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &5549019280569640124
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -7511558181221131132, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: 'm_Materials.Array.data[0]'
value:
objectReference: {fileID: 2100000, guid: 82cd554949abf19459c906dd8ffd8868, type: 2}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_Name
value: SandBlock
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_TagString
value: SandBlock
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
propertyPath: m_StaticEditorFlags
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents:
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
insertIndex: -1
addedObject: {fileID: 6696280691290077390}
- targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
insertIndex: -1
addedObject: {fileID: 2529196615297167109}
m_SourcePrefab: {fileID: 100100000, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
--- !u!1 &4738765868776331757 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 3817c74e169f84e4bb3e30c7dba7966a, type: 3}
m_PrefabInstance: {fileID: 5549019280569640124}
m_PrefabAsset: {fileID: 0}
--- !u!65 &6696280691290077390
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4738765868776331757}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.02, y: 0.020000005, z: 0.020000005}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &2529196615297167109
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4738765868776331757}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8d6715c95501a4f49bd34c8832850f32, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::BlockScript
_type: 2
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4e074898e6b80544fa96a867fa6252f8
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+190
View File
@@ -0,0 +1,190 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4713280635555134094
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2190567575766831836}
- component: {fileID: 2630910966893525057}
- component: {fileID: 827913150929100519}
- component: {fileID: 7064675661759362921}
m_Layer: 0
m_Name: TestBullet
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2190567575766831836
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4713280635555134094}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 5.08669, y: 0.5, z: 5.88764}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8990087346376382246}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2630910966893525057
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4713280635555134094}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45192ee5599f42de7864fdec0f93ce27, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::TurretBullet
_damage: 1
_speed: 5
_distance: 3
--- !u!65 &827913150929100519
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4713280635555134094}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 0.2, y: 0.2, z: 0.2}
m_Center: {x: 0, y: 0, z: 0}
--- !u!54 &7064675661759362921
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4713280635555134094}
serializedVersion: 5
m_Mass: 1
m_LinearDamping: 0
m_AngularDamping: 0.05
m_CenterOfMass: {x: 0, y: 0, z: 0}
m_InertiaTensor: {x: 1, y: 1, z: 1}
m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_ImplicitCom: 1
m_ImplicitTensor: 1
m_UseGravity: 0
m_IsKinematic: 1
m_Interpolate: 0
m_Constraints: 0
m_CollisionDetection: 0
--- !u!1 &8951270763161138428
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8990087346376382246}
- component: {fileID: 7681498405012884322}
- component: {fileID: 4072935564731715520}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8990087346376382246
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8951270763161138428}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.2, y: 0.2, z: 0.2}
m_ConstrainProportionsScale: 1
m_Children: []
m_Father: {fileID: 2190567575766831836}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7681498405012884322
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8951270763161138428}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &4072935564731715520
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8951270763161138428}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 73dab2e2f6b94fed1bca337e79ee22f4
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+162
View File
@@ -0,0 +1,162 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &251180753025569800
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8519928416567387296}
- component: {fileID: 5584936129478037181}
- component: {fileID: 4691593706010193046}
m_Layer: 0
m_Name: TestEnemy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8519928416567387296
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 251180753025569800}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 3.991, y: 1.035, z: -9.936}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4358740754901839407}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &5584936129478037181
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 251180753025569800}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cc6b4f7ed5ed4fdbbcfc85d14e3e9ad9, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Enemy
_pathService: {fileID: 0}
_speed: 1
_damage: 1
--- !u!65 &4691593706010193046
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 251180753025569800}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1 &5518436262255732647
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4358740754901839407}
- component: {fileID: 2046865036349517523}
- component: {fileID: 3760699990058627144}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4358740754901839407
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5518436262255732647}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8519928416567387296}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2046865036349517523
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5518436262255732647}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3760699990058627144
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5518436262255732647}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b37de89252d4203559a17b5f2b2d5667
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+161
View File
@@ -0,0 +1,161 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4097875286209268245
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8963012862262609948}
- component: {fileID: 29170313400163205}
m_Layer: 0
m_Name: TestTurret
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8963012862262609948
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4097875286209268245}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1253865012493440527}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &29170313400163205
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4097875286209268245}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 28342e4845776bf5982ef6ad03926c37, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Turret
_bulletPrefab: {fileID: 2630910966893525057, guid: 73dab2e2f6b94fed1bca337e79ee22f4, type: 3}
_reloadTime: 1
--- !u!1 &4329906039658757740
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1253865012493440527}
- component: {fileID: 7115462636877164404}
- component: {fileID: 477124972133908048}
- component: {fileID: 5096647383933464934}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1253865012493440527
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4329906039658757740}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8963012862262609948}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7115462636877164404
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4329906039658757740}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &477124972133908048
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4329906039658757740}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &5096647383933464934
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4329906039658757740}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3b45d2ca13d22161184139d06f3926da
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+198
View File
@@ -0,0 +1,198 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &5374699834306416741
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4616868106249531007}
- component: {fileID: 3104993817453913618}
- component: {fileID: 6671647633012711255}
- component: {fileID: 3635012363401127766}
m_Layer: 0
m_Name: TurretButton
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4616868106249531007
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5374699834306416741}
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: 5955449702013521600}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3104993817453913618
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5374699834306416741}
m_CullTransparentMesh: 1
--- !u!114 &6671647633012711255
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5374699834306416741}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
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 &3635012363401127766
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5374699834306416741}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Button
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: 6671647633012711255}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &8443624415891055671
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5955449702013521600}
- component: {fileID: 5022439593427316590}
- component: {fileID: 2512048747312714579}
m_Layer: 0
m_Name: Icon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5955449702013521600
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8443624415891055671}
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: 4616868106249531007}
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.00001812, y: 0}
m_SizeDelta: {x: 69.6812, y: 77.0561}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5022439593427316590
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8443624415891055671}
m_CullTransparentMesh: 1
--- !u!114 &2512048747312714579
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8443624415891055671}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f87d5d34136775b41907fc1187ef4bc2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9c53962885c2c4f449125a979d6ad240
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 99c9720ab356a0642a771bea13969a05
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7f0c2800ab8ada243bcce7961bb7ea61
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+22
View File
@@ -0,0 +1,22 @@
using UnityEngine;
public class AudioManager : MonoBehaviour
{
[SerializeField] private AudioSource[] _grassBlockDestroySound;
private int _grassSoundIndex = 0;
public void PlayBlockDestroySound(BlockScript block)
{
switch (block.Type)
{
case BlockScript.BlockType.Grass:
case BlockScript.BlockType.PathFinish:
if (_grassBlockDestroySound == null)
return;
_grassBlockDestroySound[_grassSoundIndex].Play();
_grassSoundIndex = (_grassSoundIndex + 1) % _grassBlockDestroySound.Length;
break;
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 44efdad54537f514eb583c74783d7f0e
+63
View File
@@ -0,0 +1,63 @@
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.InputSystem;
public class BlockDetector : MonoBehaviour
{
[SerializeField] private InputAction _clickAction;
[SerializeField] private UnityEvent<BlockScript> _onBlockClicked;
[SerializeField] private UnityEvent<BlockScript> _onBlockDetected;
public event UnityAction<BlockScript> OnBlockClicked
{
add => _onBlockClicked.AddListener(value);
remove => _onBlockClicked.RemoveListener(value);
}
public event UnityAction<BlockScript> OnBlockDetected
{
add => _onBlockDetected.AddListener(value);
remove => _onBlockDetected.RemoveListener(value);
}
private void OnEnable()
{
_clickAction.Enable();
_clickAction.performed += Click_performed;
}
private void OnDisable()
{
_clickAction.performed -= Click_performed;
_clickAction.Disable();
}
private void Click_performed(InputAction.CallbackContext context)
{
var clickPosition = Vector2.zero;
if (Touchscreen.current != null)
clickPosition = Touchscreen.current.position.ReadValue();
if (clickPosition == Vector2.zero)
clickPosition = Mouse.current.position.ReadValue();
var block = DetectBlockOnPosition(clickPosition);
if (block != null)
_onBlockClicked?.Invoke(block);
}
private BlockScript DetectBlockOnPosition(Vector2 position)
{
var ray = Camera.main.ScreenPointToRay(position);
if (Physics.Raycast(ray, out var hit) && hit.transform.CompareTag("GrassBlock"))
return hit.transform.GetComponent<BlockScript>();
return null;
}
private void Update()
{
var block = DetectBlockOnPosition(Mouse.current.position.ReadValue());
if (block != null)
_onBlockDetected?.Invoke(block);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: bd2070fb0c6397f10b0302d1f156f6e6
+53
View File
@@ -0,0 +1,53 @@
using System.Collections.Generic;
using UnityEngine;
public class BlockScript : MonoBehaviour
{
public enum BlockType
{
None,
Grass,
Sand,
PathFinish
}
[SerializeField] private BlockType _type = BlockType.None;
public BlockType Type { get => _type; protected set => _type = value; }
public bool IsPath => _type is BlockType.Sand or BlockType.PathFinish;
public List<BlockScript> GetNeighbors()
{
var neighbors = new List<BlockScript>();
var ray = new Ray(transform.position, Vector3.up);
if (CheckNeighbor(ray, out var neighbor))
neighbors.Add(neighbor);
ray.direction = Vector3.forward;
if (CheckNeighbor(ray, out neighbor))
neighbors.Add(neighbor);
ray.direction = Vector3.right;
if (CheckNeighbor(ray, out neighbor))
neighbors.Add(neighbor);
ray.direction = Vector3.down;
if (CheckNeighbor(ray, out neighbor))
neighbors.Add(neighbor);
ray.direction = Vector3.back;
if (CheckNeighbor(ray, out neighbor))
neighbors.Add(neighbor);
ray.direction = Vector3.left;
if (CheckNeighbor(ray, out neighbor))
neighbors.Add(neighbor);
return neighbors;
}
private static bool CheckNeighbor(Ray ray, out BlockScript neighbor)
{
if (Physics.Raycast(ray, out var hit, 1f))
return hit.transform.TryGetComponent(out neighbor);
neighbor = null;
return false;
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8d6715c95501a4f49bd34c8832850f32
+36
View File
@@ -0,0 +1,36 @@
using UnityEngine;
public class BlockSelector : MonoBehaviour
{
[SerializeField] private BlockDetector _blockDetector;
[SerializeField] private Material _selectedMaterial;
private Renderer _selectedBlockRenderer;
private Material _oldMaterial;
private void OnEnable()
{
_blockDetector.OnBlockDetected += OnBlockDetected;
}
private void OnDisable()
{
_blockDetector.OnBlockDetected -= OnBlockDetected;
if (_selectedBlockRenderer != null)
{
_selectedBlockRenderer.material = _oldMaterial;
_selectedBlockRenderer = null;
}
}
private void OnBlockDetected(BlockScript block)
{
if (_selectedBlockRenderer != null)
_selectedBlockRenderer.material = _oldMaterial;
_selectedBlockRenderer = block.GetComponent<Renderer>();
_oldMaterial = _selectedBlockRenderer.material;
_selectedBlockRenderer.material = _selectedMaterial;
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 3ae3ce76e48e194429448bf2071e7073
+13
View File
@@ -0,0 +1,13 @@
using UnityEngine;
public static class ComponentHelper
{
public static T GetComponentInChildrenWithoutParent<T>(this Component obj) where T : Component
{
foreach (var comp in obj.GetComponentsInChildren<T>())
if (comp.gameObject != obj.gameObject)
return comp;
return null;
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 9575f79ebc216754fb44b8066ae811b2
+44
View File
@@ -0,0 +1,44 @@
using UnityEngine;
public class Debugger : MonoBehaviour
{
[SerializeField] private GameManager _gameManager;
[SerializeField] private SandPathBuildService _sandPathBuildService;
[SerializeField] private TurretsShop _turretShop;
private void OnEnable()
{
_gameManager.OnStateChanged += OnGameStateChanged;
_sandPathBuildService.OnBuildComplete += OnBuildComplete;
_turretShop.OnTurretSelected += OnTurretSelected;
_turretShop.OnTurretDeselected += OnTurretDeselected;
}
private void OnDisable()
{
_gameManager.OnStateChanged -= OnGameStateChanged;
_sandPathBuildService.OnBuildComplete -= OnBuildComplete;
_turretShop.OnTurretSelected -= OnTurretSelected;
_turretShop.OnTurretDeselected -= OnTurretDeselected;
}
private static void OnGameStateChanged(GameManager.GameState newState)
{
print("State changed, current state: " + newState);
}
private static void OnBuildComplete()
{
print("Build complete");
}
private static void OnTurretSelected(TurretShopItem item)
{
print("Turret selected: " + item.TurretPrefab.name);
}
private static void OnTurretDeselected()
{
print("Turret deselected");
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9f920e63c4a34e61a183a87c8c35d534
timeCreated: 1777495310
+89
View File
@@ -0,0 +1,89 @@
using UnityEngine;
using UnityEngine.Events;
using System.Collections.Generic;
public class Enemy : MonoBehaviour
{
[SerializeField] private SandPathBuildService _pathService;
[SerializeField] private float _health = 5f;
[SerializeField] private float _speed = 1f;
[SerializeField] private float _damage = 1f;
[SerializeField] private int _killReward = 10;
[SerializeField] private UnityEvent<float> _onHealthChanged;
[SerializeField] private UnityEvent<OnEnemyDeathEventArgs> _onDeath;
private Queue<Vector3> _path;
private Vector3 _target;
public event UnityAction<float> OnHealthChanged
{
add => _onHealthChanged.AddListener(value);
remove => _onHealthChanged.RemoveListener(value);
}
public event UnityAction<OnEnemyDeathEventArgs> OnDeath
{
add => _onDeath.AddListener(value);
remove => _onDeath.RemoveListener(value);
}
public SandPathBuildService PathBuildService
{
get => _pathService;
set => _pathService = value;
}
public float Health
{
get => _health;
private set
{
_health = value;
_onHealthChanged?.Invoke(value);
}
}
public float Damage { get => _damage; set => _damage = value; }
private void Start()
{
_path = new Queue<Vector3>(_pathService.GetPath());
_target = _path.Dequeue();
}
private void Update()
{
if (transform.position == _target)
{
if (_path.Count == 0) return;
_target = _path.Dequeue();
}
transform.position = Vector3.MoveTowards(transform.position, _target, _speed * Time.deltaTime);
transform.LookAt(_target);
}
private void OnTriggerEnter(Collider other)
{
if (!other.TryGetComponent(out TurretBullet bullet))
return;
TakeDamage(bullet.Damage);
Destroy(other.gameObject);
}
public void TakeDamage(float damage)
{
Health -= damage;
if (Health <= 0f)
{
_onDeath?.Invoke(new OnEnemyDeathEventArgs { KillReward = _killReward });
Destroy(gameObject);
}
}
public class OnEnemyDeathEventArgs
{
public int KillReward { get; set; }
}
}
+3
View File
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: cc6b4f7ed5ed4fdbbcfc85d14e3e9ad9
timeCreated: 1774365562
+51
View File
@@ -0,0 +1,51 @@
using System;
using System.Collections;
using UnityEngine;
using System.Collections.Generic;
public class EnemySpawner : MonoBehaviour
{
[SerializeField] private GameManager _gameManager;
[SerializeField] private SandPathBuildService _pathBuildService;
[SerializeField] private Transform _enemyHolder;
[SerializeField] private Transform _spawnPoint;
[SerializeField] private Wallet _wallet;
//private readonly List<Enemy> _enemies = new();
private void Awake()
{
if (_gameManager == null)
_gameManager = FindAnyObjectByType<GameManager>();
if (_enemyHolder == null)
_enemyHolder = transform;
if (_spawnPoint == null)
_spawnPoint = transform;
}
private void OnEnable()
{
_gameManager.OnLevelChanged += OnLevelChanged;
}
private void OnDisable()
{
_gameManager.OnLevelChanged -= OnLevelChanged;
}
private void OnLevelChanged(Level level) => StartCoroutine(SpawnCoroutine(level));
private IEnumerator SpawnCoroutine(Level level)
{
var wait = new WaitForSeconds(level.LevelTimeSec / level.EnemiesPrefabs.Count);
foreach (var prefab in level.EnemiesPrefabs)
{
var enemy = Instantiate(prefab, _spawnPoint.position, _spawnPoint.rotation, _enemyHolder);
enemy.PathBuildService = _pathBuildService;
enemy.OnDeath += e => _wallet.AddMoney(e.KillReward);
//_enemies.Add(enemy);
yield return wait;
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8c18267efc955fbe3928becc91bf4ba3
+66
View File
@@ -0,0 +1,66 @@
using UnityEngine;
using UnityEngine.Events;
public class GameManager : MonoBehaviour
{
public enum GameState
{
BuildingPath,
BuildingTurrets,
Level
}
[SerializeField] private Level[] _levels;
[SerializeField] private SandPathBuildService _pathBuildService;
[SerializeField] private UnityEvent<GameState> _onStateChanged;
[SerializeField] private UnityEvent<Level> _onLevelChanged;
public event UnityAction<GameState> OnStateChanged
{
add => _onStateChanged.AddListener(value);
remove => _onStateChanged.RemoveListener(value);
}
public event UnityAction<Level> OnLevelChanged
{
add => _onLevelChanged.AddListener(value);
remove => _onLevelChanged.RemoveListener(value);
}
private int _currentLvlIndex = -1;
private GameState _currentState = GameState.BuildingPath;
public GameState CurrentState
{
get => _currentState;
set
{
_currentState = value;
_onStateChanged?.Invoke(value);
}
}
//public Level CurrentLevel => _levels[_currentLvlIndex];
private void OnEnable()
{
_pathBuildService.OnBuildComplete += OnBuildComplete;
}
private void OnDisable()
{
_pathBuildService.OnBuildComplete -= OnBuildComplete;
}
private void OnBuildComplete()
{
CurrentState = GameState.BuildingTurrets;
}
public void NextLevel()
{
_currentLvlIndex = (_currentLvlIndex + 1) % _levels.Length;
CurrentState = GameState.Level;
_onLevelChanged?.Invoke(_levels[_currentLvlIndex]);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: aec3c0c64e4509b5db4d419ad4c5cc6b
+100
View File
@@ -0,0 +1,100 @@
using UnityEngine;
using UnityEngine.Events;
using System.Linq;
using System.Collections.Generic;
public class SandPathBuildService : MonoBehaviour
{
[SerializeField] private GameManager _gameManager;
[SerializeField] private BlockDetector _blockDetector;
[SerializeField] private BlockScript _blockPrefab;
[SerializeField] private BlockScript _grassBlockPrefab;
[SerializeField] private BlockScript _pathStart;
[SerializeField] private BlockScript _pathEnd;
[SerializeField] private BlockScript[] _pathFinish;
[SerializeField] private BlockScript[] _predefinedBlocks;
[SerializeField] private UnityEvent<BlockScript> _onBlockDestroy;
[SerializeField] private UnityEvent _onBuildComplete;
public event UnityAction<BlockScript> OnBlockDestroy
{
add => _onBlockDestroy.AddListener(value);
remove => _onBlockDestroy.RemoveListener(value);
}
public event UnityAction OnBuildComplete
{
add => _onBuildComplete.AddListener(value);
remove => _onBuildComplete.RemoveListener(value);
}
private BlockScript _currentBlock;
private readonly List<BlockScript> _blocksInPath = new();
private void Start() => InitBlocks();
private void InitBlocks()
{
_currentBlock = _pathStart;
_blocksInPath.AddRange(_predefinedBlocks);
}
public void DestroyBlock(BlockScript block)
{
_onBlockDestroy?.Invoke(block);
Destroy(block.gameObject);
}
private void OnEnable()
{
_blockDetector.OnBlockClicked += OnBlockDetected;
}
private void OnDisable()
{
_blockDetector.OnBlockClicked -= OnBlockDetected;
}
public void ResetPath()
{
// TODO: исправить удаление блоков финала пути
for (int i = _predefinedBlocks.Length; i < _blocksInPath.Count; i++)
{
var block = _blocksInPath[i];
Instantiate(_grassBlockPrefab, block.transform.position, block.transform.localRotation, block.transform.parent);
Destroy(block.gameObject);
}
_blocksInPath.Clear();
InitBlocks();
}
private void OnBlockDetected(BlockScript block)
{
if (_gameManager.CurrentState != GameManager.GameState.BuildingPath)
return;
if (!_currentBlock.GetNeighbors().Contains(block) ||
block.GetNeighbors().Count((o) => o.Type == BlockScript.BlockType.Sand) > 1)
return;
var t = block.transform;
_currentBlock = Instantiate(_blockPrefab, t.position, t.localRotation, t.parent);
_blocksInPath.Add(_currentBlock);
if (_pathFinish.Contains(block))
{
_currentBlock = _pathEnd;
_blocksInPath.Add(_currentBlock);
_onBuildComplete?.Invoke();
}
DestroyBlock(block);
}
public IEnumerable<Vector3> GetPath() =>
_blocksInPath.Select(b =>
{
var pos = b.transform.position;
pos.y += 1f;
return pos;
});
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2234a2a63b27a534f9fc6fdcdb15afcb
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 13aa96d6e4bf50589a66618b4eb22f78
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+12
View File
@@ -0,0 +1,12 @@
using UnityEngine;
using System.Collections.Generic;
[CreateAssetMenu(fileName = "Level_No", menuName = "Scriptable Objects/Level")]
public class Level : ScriptableObject
{
[SerializeField] private Enemy[] _enemiesPrefabs;
[SerializeField] private float _levelTimeSec = 10f;
public IReadOnlyCollection<Enemy> EnemiesPrefabs => _enemiesPrefabs;
public float LevelTimeSec => _levelTimeSec;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: b1e1b282bef2878e089a42b9c8507311
+19
View File
@@ -0,0 +1,19 @@
using System;
using UnityEngine;
[RequireComponent(typeof(TowerHealth))]
public class Tower : MonoBehaviour
{
private TowerHealth _towerHealth;
private void Start()
{
_towerHealth = GetComponent<TowerHealth>();
}
private void OnTriggerEnter(Collider other)
{
if (other.TryGetComponent(out Enemy enemy))
_towerHealth.TakeDamage(enemy.Damage);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 49451834470586d42a0a0039b348f818
+67
View File
@@ -0,0 +1,67 @@
using System;
using UnityEngine;
using UnityEngine.Events;
public class TowerHealth : MonoBehaviour
{
[SerializeField] private float _maxHealth = 100f;
[SerializeField] private float _currentHealth = 100f;
[SerializeField] private UnityEvent<OnHealthChangedEventArgs> _onHealthChanged;
public event UnityAction<OnHealthChangedEventArgs> OnHealthChanged
{
add => _onHealthChanged.AddListener(value);
remove => _onHealthChanged.RemoveListener(value);
}
public float MaxHealth
{
get => _maxHealth;
private set
{
_maxHealth = value;
_onHealthChanged?.Invoke(new(_currentHealth, _maxHealth));
}
}
public float CurrentHealth
{
get => _currentHealth;
private set
{
_currentHealth = value;
_onHealthChanged?.Invoke(new(_currentHealth, _maxHealth));
}
}
private void OnTriggerEnter(Collider other)
{
if (!other.TryGetComponent(out Enemy enemy))
return;
TakeDamage(enemy.Damage);
Destroy(enemy.gameObject);
}
public void TakeDamage(float damage)
{
CurrentHealth -= damage;
// TODO: доделать проигрыш
if (CurrentHealth <= 0)
Debug.Log("Game over");
}
public class OnHealthChangedEventArgs : EventArgs
{
public readonly float CurrentHealth;
public readonly float MaxHealth;
public OnHealthChangedEventArgs(float currentHealth, float maxHealth)
{
CurrentHealth = currentHealth;
MaxHealth = maxHealth;
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 73f23bf5d451b9d99a2529ebac821e47
+22
View File
@@ -0,0 +1,22 @@
using System;
using UnityEngine;
public class TowerHealthViewer : MonoBehaviour
{
[SerializeField] private TowerHealth _towerHealth;
private void OnEnable()
{
_towerHealth.OnHealthChanged += OnHealthChanged;
}
private void OnDisable()
{
_towerHealth.OnHealthChanged -= OnHealthChanged;
}
private static void OnHealthChanged(TowerHealth.OnHealthChangedEventArgs e)
{
print("Health changed: " + e.CurrentHealth);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 623cfd758f42513808424b0fdb743846
+41
View File
@@ -0,0 +1,41 @@
using System;
using UnityEngine;
public class Turret : MonoBehaviour
{
[SerializeField] private TurretBullet _bulletPrefab;
[SerializeField] private float _reloadTime = 1f;
[SerializeField] private float _damage;
[SerializeField] private float _distance;
private float _reloadTimer;
private void Update()
{
if (_reloadTimer >= _reloadTime)
{
SpawnBullet(Vector3.forward);
SpawnBullet(Vector3.back);
SpawnBullet(Vector3.left);
SpawnBullet(Vector3.right);
_reloadTimer = 0f;
}
_reloadTimer += Time.deltaTime;
}
private void SpawnBullet(Vector3 direction)
{
if (!DetectEnemy(direction))
return;
var rot = transform.rotation;
rot.SetLookRotation(direction);
Instantiate(_bulletPrefab, transform.position, rot, transform);
}
private bool DetectEnemy(Vector3 direction) =>
Physics.Raycast(transform.position, direction, out var hit, _bulletPrefab.Distance + _distance) &&
hit.transform.TryGetComponent(out Enemy _);
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 28342e4845776bf5982ef6ad03926c37
+25
View File
@@ -0,0 +1,25 @@
using UnityEngine;
public class TurretBullet : MonoBehaviour
{
[SerializeField] private float _damage = 1f;
[SerializeField] private float _speed = 5f;
[SerializeField] private float _distance = 3f;
private Vector3 _spawnPos;
public float Damage => _damage;
public float Distance => _distance;
private void Start()
{
_spawnPos = transform.position;
}
private void Update()
{
transform.Translate(Vector3.forward * (_speed * Time.deltaTime));
if (Vector3.Distance(transform.position, _spawnPos) > _distance)
Destroy(gameObject);
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 45192ee5599f42de7864fdec0f93ce27
+14
View File
@@ -0,0 +1,14 @@
using System;
using UnityEngine;
[Serializable]
public struct TurretShopItem
{
[SerializeField] private Turret _turretPrefab;
[SerializeField] private Sprite _icon;
[SerializeField] private int _price;
public readonly Turret TurretPrefab => _turretPrefab;
public readonly Sprite Icon => _icon;
public readonly int Price => _price;
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4599f6d87f88c5e4bb120a45c1dc6e59
+85
View File
@@ -0,0 +1,85 @@
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.Events;
using UnityEngine.InputSystem;
public class TurretsShop : MonoBehaviour
{
[SerializeField] private Wallet _wallet;
[SerializeField] private BlockDetector _blockDetector;
[SerializeField] private Transform _turretsHolder;
[SerializeField] private InputAction _deselectAction;
[SerializeField] private TurretShopItem[] _turretShopItems;
[SerializeField] private UnityEvent<TurretShopItem> _onTurretSelected;
[SerializeField] private UnityEvent _onTurretDeselected;
public event UnityAction<TurretShopItem> OnTurretSelected
{
add => _onTurretSelected.AddListener(value);
remove => _onTurretSelected.RemoveListener(value);
}
public event UnityAction OnTurretDeselected
{
add => _onTurretDeselected.AddListener(value);
remove => _onTurretDeselected.RemoveListener(value);
}
public IReadOnlyCollection<TurretShopItem> TurretShopItems => _turretShopItems;
private TurretShopItem _selectedTurret;
private bool _isTurretSelected = false;
public void SelectTurret(TurretShopItem item)
{
_isTurretSelected = _wallet.Money >= item.Price;
if (!_isTurretSelected)
return;
_selectedTurret = item;
_onTurretSelected?.Invoke(item);
}
public void DeselectTurret()
{
_isTurretSelected = false;
_onTurretDeselected?.Invoke();
}
private void OnEnable()
{
_deselectAction.Enable();
_deselectAction.performed += DeselectActionPerformed;
_blockDetector.OnBlockClicked += OnBlockClicked;
}
private void OnDisable()
{
_deselectAction.performed -= DeselectActionPerformed;
_deselectAction.Disable();
_blockDetector.OnBlockClicked -= OnBlockClicked;
}
private void Start()
{
if (_turretsHolder == null)
_turretsHolder = transform;
}
private void DeselectActionPerformed(InputAction.CallbackContext _) => DeselectTurret();
private void OnBlockClicked(BlockScript block)
{
if (!_isTurretSelected || _selectedTurret.Price > _wallet.Money)
return;
var pos = block.transform.position;
pos.y += 1;
Instantiate(_selectedTurret.TurretPrefab, pos, Quaternion.identity, _turretsHolder);
_wallet.TakeMoney(_selectedTurret.Price);
if (_wallet.Money < _selectedTurret.Price)
DeselectTurret();
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5980606f117d314418be8bbb5abf9a95
+70
View File
@@ -0,0 +1,70 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
[RequireComponent(typeof(Animator))]
public class TurretsShopViewer : MonoBehaviour
{
[SerializeField] private TurretsShop _shop;
[SerializeField] private Wallet _wallet;
[SerializeField] private GameManager _gameManager;
[SerializeField] private Button _buttonPrefab;
private Animator _animator;
private bool _hidden = true;
private readonly Dictionary<Button, TurretShopItem> _buttons = new();
private static readonly int _hideAnimation = Animator.StringToHash("HideTurretShopPanelAnimation");
private static readonly int _showAnimation = Animator.StringToHash("ShowTurretShopPanelAnimation");
private void Start()
{
foreach (var item in _shop.TurretShopItems)
{
var button = Instantiate(_buttonPrefab, transform);
var icon = button.GetComponentInChildrenWithoutParent<Image>();
if (icon != null && item.Icon != null)
{
icon.gameObject.SetActive(true);
icon.sprite = item.Icon;
}
button.onClick.AddListener(() => _shop.SelectTurret(item));
_buttons.Add(button, item);
}
}
private void Awake()
{
_animator = GetComponent<Animator>();
}
private void OnEnable()
{
_gameManager.OnStateChanged += OnGameStateChanged;
_wallet.OnMoneyChanged += OnMoneyChanged;
}
private void OnDisable()
{
_gameManager.OnStateChanged -= OnGameStateChanged;
_wallet.OnMoneyChanged -= OnMoneyChanged;
}
private void OnGameStateChanged(GameManager.GameState state)
{
if (!_hidden || state != GameManager.GameState.BuildingTurrets)
return;
_animator.Play(_showAnimation);
_hidden = false;
}
private void OnMoneyChanged(int money)
{
foreach (var (button, item) in _buttons)
{
button.interactable = money >= item.Price;
}
}
}
+2
View File
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 13f8d814a03532843895b328349ccfd5

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