Initial Commit

This commit is contained in:
2026-03-16 14:38:46 +02:00
commit b8f7327a21
2327 changed files with 253610 additions and 0 deletions
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: a1430be932efe0d40923107fdc708b69
folderAsset: yes
timeCreated: 1456415682
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: fb9fbf243818b9f4da06d2a270af791b
folderAsset: yes
timeCreated: 1456415688
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Background
m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: 2000
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 2800000, guid: f7fb955b5256c934db2b806c17259412, type: 3}
m_Scale: {x: 700, y: 700}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 20, y: 20}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 1, g: 1, b: 1, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d2b89dae86aac9a4d9b52881cf3be975
timeCreated: 1456416108
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: BulletEnemy
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: 2000
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 1, g: 0.50735295, b: 0.50735295, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: eeda8e5511ed0494ea45f29b908d1d8c
timeCreated: 1456628383
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: BulletPlayer
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: 2000
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 0.52205884, g: 0.6637931, b: 1, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a7a4a87af7fdbd44da0519a1910c7393
timeCreated: 1456628375
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Enemy1
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: 2000
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 1.007353, g: 0.42219937, b: 0.42219937, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 50755dee91b8d2142a777c6b00ad6923
timeCreated: 1456415788
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,42 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Flame01
m_Shader: {fileID: 202, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: -1
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 2800000, guid: b260cbc8d9bc048bd8834c7a1b5aed36, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _InvFade
second: 1
m_Colors:
data:
first:
name: _Color
second: {r: 1, g: 1, b: 1, a: 1}
data:
first:
name: _TintColor
second: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
data:
first:
name: _EmisColor
second: {r: 0.2, g: 0.2, b: 0.2, a: 0}
@@ -0,0 +1,6 @@
fileFormatVersion: 2
guid: b1ca011c5f92d4fd4b5aeac44fd607c6
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Player
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 5
m_CustomRenderQueue: 2000
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
data:
first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
data:
first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
data:
first:
name: _SrcBlend
second: 1
data:
first:
name: _DstBlend
second: 0
data:
first:
name: _Cutoff
second: 0.5
data:
first:
name: _Parallax
second: 0.02
data:
first:
name: _ZWrite
second: 1
data:
first:
name: _Glossiness
second: 0.5
data:
first:
name: _BumpScale
second: 1
data:
first:
name: _OcclusionStrength
second: 1
data:
first:
name: _DetailNormalMapScale
second: 1
data:
first:
name: _UVSec
second: 0
data:
first:
name: _Mode
second: 0
data:
first:
name: _Metallic
second: 0
m_Colors:
data:
first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
data:
first:
name: _Color
second: {r: 0.38235295, g: 0.56551725, b: 1, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8f4cc0ab4d6d85f4ea468f16219910a1
timeCreated: 1456415773
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 96f1cf13d4ff7b64a94cec1030ec9fb3
folderAsset: yes
timeCreated: 1456591991
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 950e79470b07b6744b6558de90f9baa3
folderAsset: yes
timeCreated: 1456592001
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,127 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Material
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _EMISSION
m_LightmapFlags: 1
m_CustomRenderQueue: -1
stringTagMap: {}
m_SavedProperties:
serializedVersion: 2
m_TexEnvs:
- first:
name: _BumpMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailAlbedoMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailMask
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _DetailNormalMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _EmissionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _MainTex
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _MetallicGlossMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _OcclusionMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- first:
name: _ParallaxMap
second:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- first:
name: _BumpScale
second: 1
- first:
name: _Cutoff
second: 0.5
- first:
name: _DetailNormalMapScale
second: 1
- first:
name: _DstBlend
second: 0
- first:
name: _GlossMapScale
second: 1
- first:
name: _Glossiness
second: 0.5
- first:
name: _GlossyReflections
second: 1
- first:
name: _Metallic
second: 0
- first:
name: _Mode
second: 0
- first:
name: _OcclusionStrength
second: 1
- first:
name: _Parallax
second: 0.02
- first:
name: _SmoothnessTextureChannel
second: 0
- first:
name: _SpecularHighlights
second: 1
- first:
name: _SrcBlend
second: 1
- first:
name: _UVSec
second: 0
- first:
name: _ZWrite
second: 1
m_Colors:
- first:
name: _Color
second: {r: 0.8, g: 0.8, b: 0.8, a: 1}
- first:
name: _EmissionColor
second: {r: 0, g: 0, b: 0, a: 1}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a9aa4d682c71a304b87783910b8a6ef1
timeCreated: 1456592001
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,82 @@
fileFormatVersion: 2
guid: 73637a3b17554e34c9e921d4df1ee609
ModelImporter:
serializedVersion: 19
fileIDToRecycleName:
100000: Camera
100002: Cube
100004: Lamp
100006: //RootNode
400000: Camera
400002: Cube
400004: Lamp
400006: //RootNode
2300000: Cube
3300000: Cube
4300000: Cube
7400000: Default Take
9500000: //RootNode
materials:
importMaterials: 1
materialName: 0
materialSearch: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleRotations: 1
optimizeGameObjects: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
importBlendShapes: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 1
tangentImportMode: 4
importAnimation: 1
copyAvatar: 0
humanDescription:
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 2
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 331b62380ac0abd418e39e9d00e236e9
folderAsset: yes
timeCreated: 1456426127
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,13 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!134 &13400000
PhysicMaterial:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Enemy
dynamicFriction: 0
staticFriction: 0
bounciness: 1
frictionCombine: 0
bounceCombine: 0
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3ba31e708eff4af47b2892effb58e466
timeCreated: 1456426139
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 5996ad5d7b083b84bb09e94dfe39741f
folderAsset: yes
timeCreated: 1456415640
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,120 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!23 &2318970
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1211991173579106}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!114 &11481176
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1211991173579106}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4bcfdc0e00dba5645b88ed3608c61161, type: 3}
m_Name:
m_EditorClassIdentifier:
_renderer: {fileID: 2318970}
_playerMaterial: {fileID: 2100000, guid: a7a4a87af7fdbd44da0519a1910c7393, type: 2}
_enemyMaterial: {fileID: 2100000, guid: eeda8e5511ed0494ea45f29b908d1d8c, type: 2}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 0}
propertyPath: m_IsTrigger
value: 1
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_Mass
value: 11.95
objectReference: {fileID: 0}
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1211991173579106}
m_IsPrefabParent: 1
--- !u!1 &1211991173579106
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4081474240255722}
- component: {fileID: 33606203387721046}
- component: {fileID: 65837712711271418}
- component: {fileID: 2318970}
- component: {fileID: 11481176}
m_Layer: 0
m_Name: Bullet
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4081474240255722
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1211991173579106}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.3316879, y: 1.6117618, z: -0.07171571}
m_LocalScale: {x: 2, y: 0.25, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &33606203387721046
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1211991173579106}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!65 &65837712711271418
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1211991173579106}
m_Material: {fileID: 0}
m_IsTrigger: 1
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4d22825d6393b964f90d550dd2acc50f
timeCreated: 1456594068
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,158 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &158650
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 463158}
- component: {fileID: 3388348}
- component: {fileID: 2329700}
- component: {fileID: 5458816}
- component: {fileID: 6529106}
- component: {fileID: 114673860568823044}
- component: {fileID: 114435164261030832}
- component: {fileID: 114736095060536390}
m_Layer: 8
m_Name: Enemy
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &463158
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_LocalRotation: {x: 0, y: 0, z: 0.39402217, w: 0.91910094}
m_LocalPosition: {x: 41.7, y: 4.7, z: 0}
m_LocalScale: {x: 1.3, y: 1.3, z: 1.3}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &2329700
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 2100000, guid: 50755dee91b8d2142a777c6b00ad6923, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &3388348
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Mesh: {fileID: 4300000, guid: 73637a3b17554e34c9e921d4df1ee609, type: 3}
--- !u!54 &5458816
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
serializedVersion: 2
m_Mass: 1
m_Drag: 2
m_AngularDrag: 3
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 56
m_CollisionDetection: 0
--- !u!65 &6529106
BoxCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 2, y: 1.9999999, z: 2}
m_Center: {x: 0, y: 0, z: 0.06762599}
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 158650}
m_IsPrefabParent: 1
--- !u!114 &114435164261030832
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0166d8ff8d905b048b2448179e1f5d11, type: 3}
m_Name:
m_EditorClassIdentifier:
_components:
- {fileID: 114736095060536390}
- {fileID: 114673860568823044}
_identifier:
_context: {fileID: 0}
_bindType: 0
--- !u!114 &114673860568823044
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ae49206d36b59354b98f680504160bc4, type: 3}
m_Name:
m_EditorClassIdentifier:
_renderer: {fileID: 2329700}
_collider: {fileID: 6529106}
_rigidBody: {fileID: 5458816}
--- !u!114 &114736095060536390
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 158650}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fac47e4da43b2ca4d955370e0dc6990e, type: 3}
m_Name:
m_EditorClassIdentifier:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 55f63c48150ecbb469e095dbde67c6e9
timeCreated: 1456415643
licenseType: Free
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,6 @@
fileFormatVersion: 2
guid: 93a60ba8e409947b1a0334537c8b38c8
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 0492983cf98427c42b891e9ee08409a7
folderAsset: yes
timeCreated: 1456615196
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f9517356afb533a41b9e7cb6f155031e
timeCreated: 1456673734
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 9cb65eb2505fbf443ac876ba177374f9
timeCreated: 1484707267
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 34c638d8d99ccfd44a261f13505ab317
timeCreated: 1484701350
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: aa66f043685a31e4bb90d0b6128bc3e1
timeCreated: 1484706127
licenseType: Free
AudioImporter:
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 1
normalize: 1
preloadAudioData: 1
loadInBackground: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 96734be6284cbbb48b0b7b5346950bc4
folderAsset: yes
timeCreated: 1456416082
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,55 @@
fileFormatVersion: 2
guid: b260cbc8d9bc048bd8834c7a1b5aed36
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 1024
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: 0
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

@@ -0,0 +1,57 @@
fileFormatVersion: 2
guid: f7fb955b5256c934db2b806c17259412
timeCreated: 1456416335
licenseType: Free
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 2048
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: e8ea161e7134f59409766695fad6ab33
folderAsset: yes
timeCreated: 1506506847
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 47e7c4af6b407724daffa76ababbeb5e
folderAsset: yes
timeCreated: 1477227179
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,78 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1db4d8ab51ca4ad48844c113bfbd80fa, type: 3}
m_Name: GameSettings
m_EditorClassIdentifier:
EnemySpawner:
SpeedMin: 30
SpeedMax: 100
AccuracyMin: 0
AccuracyMax: 1
NumEnemiesIncreaseRate: 0.06
NumEnemiesStartAmount: 1.5
MinDelayBetweenSpawns: 0.3
GameRestartHandler:
RestartDelay: 3
GameInstaller:
EnemyFacadePrefab: {fileID: 158650, guid: 55f63c48150ecbb469e095dbde67c6e9, type: 2}
BulletPrefab: {fileID: 1211991173579106, guid: 4d22825d6393b964f90d550dd2acc50f,
type: 2}
ExplosionPrefab: {fileID: 100002, guid: 93a60ba8e409947b1a0334537c8b38c8, type: 2}
Player:
PlayerMoveHandler:
BoundaryBuffer: 4
BoundaryAdjustForce: 70
MoveSpeed: 250
SlowDownSpeed: 0.2
PlayerShootHandler:
Laser: {fileID: 8300000, guid: 34c638d8d99ccfd44a261f13505ab317, type: 3}
LaserVolume: 0.7
BulletLifetime: 1
BulletSpeed: 130
MaxShootInterval: 0.15
BulletOffsetDistance: 2
PlayerCollisionHandler:
HealthLoss: 15
HitForce: 1000
HitSound: {fileID: 8300000, guid: f9517356afb533a41b9e7cb6f155031e, type: 3}
HitSoundVolume: 1
PlayerHealthWatcher:
DeathSound: {fileID: 8300000, guid: 9cb65eb2505fbf443ac876ba177374f9, type: 3}
DeathSoundVolume: 1
Enemy:
DefaultSettings:
Accuracy: 1
Speed: 25
EnemyStateIdle:
Amplitude: 0.5
Frequency: 4
EnemyRotationHandler:
TurnSpeed: 10
EnemyStateFollow:
StrafeMultiplier: 0.5
StrafeChangeInterval: 0.8
TeleportNewDistance: 40
EnemyStateAttack:
ShootSound: {fileID: 8300000, guid: aa66f043685a31e4bb90d0b6128bc3e1, type: 3}
ShootSoundVolume: 0.8
BulletLifetime: 5
BulletSpeed: 30
BulletOffsetDistance: 2
ShootInterval: 0.4
ErrorRangeTheta: 30
AttackRangeBuffer: 8
StrafeMultiplier: 0.5
StrafeChangeInterval: 0.8
EnemyHealthWatcher:
DeathSound: {fileID: 8300000, guid: 9cb65eb2505fbf443ac876ba177374f9, type: 3}
DeathSoundVolume: 0.5
EnemyCommonSettings:
AttackDistance: 15
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 91a82aa816bb01d4cb9396481c2614a1
timeCreated: 1461784532
licenseType: Pro
NativeFormatImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: a6f36e1b9ba65d54aabe5c50d2dcb018
folderAsset: yes
timeCreated: 1527235254
licenseType: Free
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,935 @@
%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: 9
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: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 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_IndirectSpecularColor: {r: 0.45089006, g: 0.5007887, b: 0.57456285, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_MixedBakeMode: 1
m_BakeBackend: 0
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 0
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 112000001, guid: 7d63bee150dab4c4f817d557781552bd,
type: 2}
m_UseShadowmask: 0
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
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
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &29135873
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 29135874}
m_Layer: 0
m_Name: Level
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &29135874
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 29135873}
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_Children:
- {fileID: 724552921}
- {fileID: 539215572}
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &414693287
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 414693292}
- component: {fileID: 414693291}
- component: {fileID: 414693293}
- component: {fileID: 414693290}
- component: {fileID: 414693288}
- component: {fileID: 414693294}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &414693288
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_Enabled: 1
--- !u!124 &414693290
Behaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_Enabled: 1
--- !u!20 &414693291
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0.019607844}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
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: 19.34
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &414693292
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -17.09}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &414693293
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0166d8ff8d905b048b2448179e1f5d11, type: 3}
m_Name:
m_EditorClassIdentifier:
_components:
- {fileID: 414693291}
_identifier:
_useSceneContext: 0
_context: {fileID: 0}
_bindType: 0
--- !u!82 &414693294
AudioSource:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414693287}
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
m_audioClip: {fileID: 8300000, guid: c5a6af7adb029df4ba0967bc4de9e7ac, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.171
m_Pitch: 1
Loop: 1
Mute: 0
Spatialize: 0
SpatializePostEffects: 0
Priority: 128
DopplerLevel: 1
MinDistance: 1
MaxDistance: 500
Pan2D: 0
rolloffMode: 0
BypassEffects: 0
BypassListenerEffects: 0
BypassReverbZones: 0
rolloffCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
panLevelCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
spreadCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
reverbZoneMixCustomCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 0
--- !u!1 &534447708
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 534447711}
- component: {fileID: 534447710}
- component: {fileID: 534447709}
m_Layer: 0
m_Name: SceneContext
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &534447709
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 534447708}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e432172e250876f4ab278b0d24d58673, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &534447710
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 534447708}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 89715ad69b973a14899afa2c6730b30b, type: 3}
m_Name:
m_EditorClassIdentifier:
_scriptableObjectInstallers:
- {fileID: 11400000, guid: 91a82aa816bb01d4cb9396481c2614a1, type: 2}
_monoInstallers:
- {fileID: 534447709}
_installerPrefabs: []
_autoRun: 1
OnPreInstall:
m_PersistentCalls:
m_Calls: []
OnPostInstall:
m_PersistentCalls:
m_Calls: []
OnPreResolve:
m_PersistentCalls:
m_Calls: []
OnPostResolve:
m_PersistentCalls:
m_Calls: []
_parentNewObjectsUnderSceneContext: 0
_contractNames: []
_parentContractNames: []
--- !u!4 &534447711
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 534447708}
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_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &539215571
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 539215572}
- component: {fileID: 539215575}
- component: {fileID: 539215574}
- component: {fileID: 539215573}
m_Layer: 0
m_Name: Plane
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &539215572
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 539215571}
m_LocalRotation: {x: -0.00000005960466, y: 0.7071068, z: -0.7071068, w: -0.00000014901164}
m_LocalPosition: {x: -1.8492146, y: 1.4, z: 14.4}
m_LocalScale: {x: 2395.4941, y: 2395.4934, z: 2395.4934}
m_Children: []
m_Father: {fileID: 29135874}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &539215573
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 539215571}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: d2b89dae86aac9a4d9b52881cf3be975, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!64 &539215574
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 539215571}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 3
m_Convex: 0
m_CookingOptions: 14
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!33 &539215575
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 539215571}
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &697465884
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 697465886}
- component: {fileID: 697465885}
m_Layer: 0
m_Name: ControlsDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &697465885
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 697465884}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3bc2ba00bfd0f6044825d1848b10a7e0, type: 3}
m_Name:
m_EditorClassIdentifier:
_leftPadding: 50
_topPadding: 50
_width: 500
_height: 200
--- !u!4 &697465886
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 697465884}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.47249365, y: -0.1732688, z: 0.5937815}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &724552920
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 724552921}
- component: {fileID: 724552922}
m_Layer: 0
m_Name: Directional light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &724552921
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 724552920}
m_LocalRotation: {x: 0.28220388, y: -0.29990056, z: 0.09336465, w: 0.90647876}
m_LocalPosition: {x: 19.95923, y: 26.566778, z: -29.98478}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 29135874}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!108 &724552922
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 724552920}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Intensity: 1.1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.802082
m_CookieSize: 10
m_Shadows:
m_Type: 0
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
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_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 256
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!1 &855903055
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 855903056}
- component: {fileID: 855903057}
m_Layer: 8
m_Name: Installer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &855903056
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 855903055}
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_Children: []
m_Father: {fileID: 1303116743}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &855903057
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 855903055}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ff1b44a433bb75344a686526fba7452b, type: 3}
m_Name:
m_EditorClassIdentifier:
_settings:
Rigidbody: {fileID: 1303116749}
MeshRenderer: {fileID: 1303116744}
--- !u!1 &1034220754
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1034220755}
- component: {fileID: 1034220756}
m_Layer: 8
m_Name: HealthDisplay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1034220755
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034220754}
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_Children: []
m_Father: {fileID: 1303116743}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1034220756
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034220754}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 301188284719932429bd73b2047b328d, type: 3}
m_Name:
m_EditorClassIdentifier:
_leftPadding: 100
_bottomPadding: 100
_labelWidth: 100
_labelHeight: 100
_textureWidth: 309.5
_textureHeight: 17.99
_killCountOffset: 30
_foregroundColor: {r: 1, g: 0.08823532, b: 0.08823532, a: 1}
_backgroundColor: {r: 1, g: 1, b: 1, a: 1}
--- !u!1 &1303116742
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1303116743}
- component: {fileID: 1303116747}
- component: {fileID: 1303116746}
- component: {fileID: 1303116745}
- component: {fileID: 1303116744}
- component: {fileID: 1303116749}
- component: {fileID: 1303116750}
- component: {fileID: 1303116751}
m_Layer: 8
m_Name: Player
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1303116743
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
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_Children:
- {fileID: 855903056}
- {fileID: 1034220755}
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1303116744
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8f4cc0ab4d6d85f4ea468f16219910a1, 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: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!65 &1303116745
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 2, y: 2, z: 2}
m_Center: {x: 0, y: 0, z: 0}
--- !u!33 &1303116746
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Mesh: {fileID: 4300000, guid: 73637a3b17554e34c9e921d4df1ee609, type: 3}
--- !u!114 &1303116747
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 08eca9f7688a0a24685b89133b020c8e, type: 3}
m_Name:
m_EditorClassIdentifier:
_scriptableObjectInstallers: []
_monoInstallers:
- {fileID: 855903057}
_installerPrefabs: []
_autoRun: 1
_kernel: {fileID: 0}
--- !u!54 &1303116749
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
serializedVersion: 2
m_Mass: 1
m_Drag: 8
m_AngularDrag: 3.5
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 56
m_CollisionDetection: 0
--- !u!114 &1303116750
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0166d8ff8d905b048b2448179e1f5d11, type: 3}
m_Name:
m_EditorClassIdentifier:
_components:
- {fileID: 1303116751}
_identifier:
_useSceneContext: 0
_context: {fileID: 534447710}
_bindType: 0
--- !u!114 &1303116751
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1303116742}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2db4310dd7706af419ae62fb99fac156, type: 3}
m_Name:
m_EditorClassIdentifier:
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aea20ff1b07af644f9638d9c740ec0e0
timeCreated: 1456414954
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,60 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!850595691 &4890085278179872738
LightingSettings:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SpaceFighterSettings
m_GIWorkflowMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
m_UsingShadowmask: 0
m_BakeBackend: 0
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_TextureCompression: 1
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 0
m_CompAOExponentDirect: 0
m_ExtractAO: 0
m_MixedBakeMode: 1
m_LightmapsBakeMode: 1
m_FilterMode: 1
m_LightmapParameters: {fileID: 0}
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 2
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 500
m_PVREnvironmentSampleCount: 500
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVREnvironmentMIS: 0
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e0ea78722f7cb4451b99519c67bf1608
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: eef941665900b434ea6d3fc8c6e9dbb6
folderAsset: yes
timeCreated: 1456415448
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: f4da5393b1187f247a13ce38e3062f7e
folderAsset: yes
timeCreated: 1456415461
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
using System;
namespace Zenject.SpaceFighter
{
[Serializable]
public class EnemyCommonSettings
{
public float AttackDistance = 15.0f;
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 28bfa2b5275427041ae8782a2fa41625
timeCreated: 1484712200
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,50 @@
using System;
using UnityEngine;
namespace Zenject.SpaceFighter
{
public class EnemyDeathHandler
{
readonly EnemyFacade _facade;
readonly SignalBus _signalBus;
readonly Settings _settings;
readonly Explosion.Factory _explosionFactory;
readonly AudioPlayer _audioPlayer;
readonly EnemyView _view;
public EnemyDeathHandler(
EnemyView view,
AudioPlayer audioPlayer,
Explosion.Factory explosionFactory,
Settings settings,
SignalBus signalBus,
EnemyFacade facade)
{
_facade = facade;
_signalBus = signalBus;
_settings = settings;
_explosionFactory = explosionFactory;
_audioPlayer = audioPlayer;
_view = view;
}
public void Die()
{
var explosion = _explosionFactory.Create();
explosion.transform.position = _view.Position;
_audioPlayer.Play(_settings.DeathSound, _settings.DeathSoundVolume);
_signalBus.Fire<EnemyKilledSignal>();
_facade.Dispose();
}
[Serializable]
public class Settings
{
public AudioClip DeathSound;
public float DeathSoundVolume = 1.0f;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 52b884b41e3642c489f58f461470f589
timeCreated: 1505656096
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,82 @@
using System;
using UnityEngine;
namespace Zenject.SpaceFighter
{
// Here we can add some high-level methods to give some info to other
// parts of the codebase outside of our enemy facade
public class EnemyFacade : MonoBehaviour, IPoolable<float, float, IMemoryPool>, IDisposable
{
EnemyView _view;
EnemyTunables _tunables;
EnemyDeathHandler _deathHandler;
EnemyStateManager _stateManager;
EnemyRegistry _registry;
IMemoryPool _pool;
[Inject]
public void Construct(
EnemyView view,
EnemyTunables tunables,
EnemyDeathHandler deathHandler,
EnemyStateManager stateManager,
EnemyRegistry registry)
{
_view = view;
_tunables = tunables;
_deathHandler = deathHandler;
_stateManager = stateManager;
_registry = registry;
}
public EnemyStates State
{
get { return _stateManager.CurrentState; }
}
public float Accuracy
{
get { return _tunables.Accuracy; }
}
public float Speed
{
get { return _tunables.Speed; }
}
public Vector3 Position
{
get { return _view.Position; }
set { _view.Position = value; }
}
public void Dispose()
{
_pool.Despawn(this);
}
public void Die()
{
_deathHandler.Die();
}
public void OnDespawned()
{
_registry.RemoveEnemy(this);
_pool = null;
}
public void OnSpawned(float accuracy, float speed, IMemoryPool pool)
{
_pool = pool;
_tunables.Accuracy = accuracy;
_tunables.Speed = speed;
_registry.AddEnemy(this);
}
public class Factory : PlaceholderFactory<float, float, EnemyFacade>
{
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: fac47e4da43b2ca4d955370e0dc6990e
timeCreated: 1456415139
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,24 @@
using System.Collections.Generic;
namespace Zenject.SpaceFighter
{
public class EnemyRegistry
{
readonly List<EnemyFacade> _enemies = new List<EnemyFacade>();
public IEnumerable<EnemyFacade> Enemies
{
get { return _enemies; }
}
public void AddEnemy(EnemyFacade enemy)
{
_enemies.Add(enemy);
}
public void RemoveEnemy(EnemyFacade enemy)
{
_enemies.Remove(enemy);
}
}
}
@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: 401e2ff37163f8f428397277aba9b3a0
timeCreated: 1528644922
licenseType: Free
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,47 @@
using System;
using UnityEngine;
namespace Zenject.SpaceFighter
{
// Responsibilities:
// - Interpolate rotation of enemy towards the current desired
// direction
public class EnemyRotationHandler : IFixedTickable
{
readonly Settings _settings;
readonly EnemyView _view;
public EnemyRotationHandler(
EnemyView view,
Settings settings)
{
_settings = settings;
_view = view;
}
public Vector2 DesiredLookDir
{
get; set;
}
public void FixedTick()
{
var lookDir = _view.LookDir;
var error = Vector3.Angle(lookDir, DesiredLookDir);
if (Vector3.Cross(lookDir, DesiredLookDir).z < 0)
{
error *= -1;
}
_view.AddTorque(error * _settings.TurnSpeed);
}
[Serializable]
public class Settings
{
public float TurnSpeed;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 55eb8b68455f215489114a3a9a6f976d
timeCreated: 1456672456
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,98 @@
using System.Collections.Generic;
using ModestTree;
using UnityEngine;
namespace Zenject.SpaceFighter
{
public interface IEnemyState
{
void EnterState();
void ExitState();
void Update();
void FixedUpdate();
}
public enum EnemyStates
{
Idle,
Attack,
Follow,
None
}
// This class controls the basic "AI" of our enemy
// Which works as a finite state machine, between three states:
// - Attack
// - Follow/Chase
// - Idle
public class EnemyStateManager : ITickable, IFixedTickable, IInitializable
{
IEnemyState _currentStateHandler;
EnemyStates _currentState = EnemyStates.None;
EnemyView _view;
List<IEnemyState> _states;
// We can't use a constructor due to a circular dependency issue
[Inject]
public void Construct(
EnemyView view,
EnemyStateIdle idle, EnemyStateAttack attack, EnemyStateFollow follow)
{
_view = view;
_states = new List<IEnemyState>
{
// This needs to follow the enum order
idle, attack, follow
};
}
public EnemyStates CurrentState
{
get { return _currentState; }
}
public void Initialize()
{
Assert.IsEqual(_currentState, EnemyStates.None);
Assert.IsNull(_currentStateHandler);
ChangeState(EnemyStates.Follow);
}
public void ChangeState(EnemyStates state)
{
if (_currentState == state)
{
// Already in state
return;
}
//Log.Trace("View Changing state from {0} to {1}", _currentState, state);
_currentState = state;
if (_currentStateHandler != null)
{
_currentStateHandler.ExitState();
_currentStateHandler = null;
}
_currentStateHandler = _states[(int)state];
_currentStateHandler.EnterState();
}
public void Tick()
{
// Always ensure we are on the main plane
_view.Position = new Vector3(_view.Position.x, _view.Position.y, 0);
_currentStateHandler.Update();
}
public void FixedTick()
{
_currentStateHandler.FixedUpdate();
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4087d354966adf44fa24ee0fa597f6da
timeCreated: 1456617036
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,13 @@
using System;
namespace Zenject.SpaceFighter
{
// These values are given as parameters into dynamically created
// EnemyFacade instances
[Serializable]
public class EnemyTunables
{
public float Accuracy;
public float Speed;
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ff5c7e92da51264499aca355ed207cbd
timeCreated: 1456626929
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,85 @@
using UnityEngine;
namespace Zenject.SpaceFighter
{
public class EnemyView : MonoBehaviour
{
[SerializeField]
MeshRenderer _renderer = null;
[SerializeField]
Collider _collider = null;
[SerializeField]
Rigidbody _rigidBody = null;
[Inject]
public EnemyFacade Facade
{
get; set;
}
public MeshRenderer Renderer
{
get { return _renderer; }
}
public Collider Collider
{
get { return _collider; }
}
public Rigidbody Rigidbody
{
get { return _rigidBody; }
}
public Vector3 LookDir
{
get { return -_rigidBody.transform.right; }
}
public Vector3 RightDir
{
get { return _rigidBody.transform.up; }
}
public Vector3 ForwardDir
{
get { return _rigidBody.transform.right; }
}
public Vector3 Position
{
get { return _rigidBody.transform.position; }
set { _rigidBody.transform.position = value; }
}
public Quaternion Rotation
{
get { return _rigidBody.rotation; }
set { _rigidBody.rotation = value; }
}
public Vector3 Velocity
{
get { return _rigidBody.linearVelocity; }
}
public Vector3 AngularVelocity
{
get { return _rigidBody.angularVelocity; }
set { _rigidBody.angularVelocity = value; }
}
public void AddForce(Vector3 force)
{
_rigidBody.AddForce(force);
}
public void AddTorque(float value)
{
_rigidBody.AddTorque(Vector3.forward * value);
}
}
}
@@ -0,0 +1,13 @@
fileFormatVersion: 2
guid: ae49206d36b59354b98f680504160bc4
timeCreated: 1528640620
licenseType: Free
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,10 @@
namespace Zenject.SpaceFighter
{
public struct PlayerDiedSignal
{
}
public struct EnemyKilledSignal
{
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 432f74bf3abdd7e4facd4bba2a8fe60b
timeCreated: 1483820546
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b1c94638b93aa2646a2643e39a156dd9
folderAsset: yes
timeCreated: 1456618194
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,137 @@
using System;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Zenject.SpaceFighter
{
public class EnemyStateAttack : IEnemyState
{
readonly EnemyRotationHandler _rotationHandler;
readonly EnemyCommonSettings _commonSettings;
readonly AudioPlayer _audioPlayer;
readonly EnemyTunables _tunables;
readonly EnemyStateManager _stateManager;
readonly PlayerFacade _player;
readonly Settings _settings;
readonly EnemyView _view;
readonly Bullet.Factory _bulletFactory;
float _lastShootTime;
bool _strafeRight;
float _lastStrafeChangeTime;
public EnemyStateAttack(
Bullet.Factory bulletFactory,
EnemyView view,
Settings settings,
PlayerFacade player,
EnemyStateManager stateManager,
EnemyTunables tunables,
AudioPlayer audioPlayer,
EnemyCommonSettings commonSettings,
EnemyRotationHandler rotationHandler)
{
_rotationHandler = rotationHandler;
_commonSettings = commonSettings;
_audioPlayer = audioPlayer;
_tunables = tunables;
_stateManager = stateManager;
_player = player;
_settings = settings;
_view = view;
_bulletFactory = bulletFactory;
_strafeRight = Random.Range(0.0f, 1.0f) < 0.5f;
}
public void EnterState()
{
}
public void ExitState()
{
}
public void Update()
{
if (_player.IsDead)
{
_stateManager.ChangeState(EnemyStates.Idle);
return;
}
_rotationHandler.DesiredLookDir = (_player.Position - _view.Position).normalized;
// Strafe back and forth over the given interval
if (Time.realtimeSinceStartup - _lastStrafeChangeTime > _settings.StrafeChangeInterval)
{
_lastStrafeChangeTime = Time.realtimeSinceStartup;
_strafeRight = !_strafeRight;
}
// Shoot every X seconds
if (Time.realtimeSinceStartup - _lastShootTime > _settings.ShootInterval)
{
_lastShootTime = Time.realtimeSinceStartup;
Fire();
}
// If the player runs away then chase them
if ((_player.Position - _view.Position).magnitude > _commonSettings.AttackDistance + _settings.AttackRangeBuffer)
{
_stateManager.ChangeState(EnemyStates.Follow);
}
}
public void FixedUpdate()
{
// Strafe to avoid getting hit too easily
if (_strafeRight)
{
_view.AddForce(_view.RightDir * _settings.StrafeMultiplier * _tunables.Speed);
}
else
{
_view.AddForce(-_view.RightDir * _settings.StrafeMultiplier * _tunables.Speed);
}
}
void Fire()
{
var bullet = _bulletFactory.Create(
_settings.BulletSpeed, _settings.BulletLifetime, BulletTypes.FromEnemy);
// Randomize our aim a bit
var accuracy = Mathf.Clamp(_tunables.Accuracy, 0, 1);
var maxError = 1.0f - accuracy;
var error = Random.Range(0, maxError);
if (Random.Range(0.0f, 1.0f) < 0.5f)
{
error *= -1;
}
var thetaError = error * _settings.ErrorRangeTheta;
bullet.transform.position = _view.Position + _view.LookDir * _settings.BulletOffsetDistance;
bullet.transform.rotation = Quaternion.AngleAxis(thetaError, Vector3.forward) * _view.Rotation;
_audioPlayer.Play(_settings.ShootSound, _settings.ShootSoundVolume);
}
[Serializable]
public class Settings
{
public AudioClip ShootSound;
public float ShootSoundVolume = 1.0f;
public float BulletLifetime;
public float BulletSpeed;
public float BulletOffsetDistance;
public float ShootInterval;
public float ErrorRangeTheta;
public float AttackRangeBuffer;
public float StrafeMultiplier;
public float StrafeChangeInterval;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3d2bd141d86c3fb40a0a616c19e6de0c
timeCreated: 1456620041
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,110 @@
using System;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Zenject.SpaceFighter
{
public class EnemyStateFollow : IEnemyState
{
readonly EnemyRotationHandler _rotationHandler;
readonly EnemyCommonSettings _commonSettings;
readonly Settings _settings;
readonly EnemyTunables _tunables;
readonly EnemyStateManager _stateManager;
readonly EnemyView _view;
readonly PlayerFacade _player;
bool _strafeRight;
float _lastStrafeChangeTime;
public EnemyStateFollow(
PlayerFacade player,
EnemyView view,
EnemyStateManager stateManager,
EnemyTunables tunables,
Settings settings,
EnemyCommonSettings commonSettings,
EnemyRotationHandler rotationHandler)
{
_rotationHandler = rotationHandler;
_commonSettings = commonSettings;
_settings = settings;
_tunables = tunables;
_stateManager = stateManager;
_view = view;
_player = player;
}
public void EnterState()
{
_strafeRight = Random.Range(0, 1) == 0;
_lastStrafeChangeTime = Time.realtimeSinceStartup;
}
public void ExitState()
{
}
public void Update()
{
if (_player.IsDead)
{
_stateManager.ChangeState(EnemyStates.Idle);
return;
}
var distanceToPlayer = (_player.Position - _view.Position).magnitude;
// Always look towards the player
_rotationHandler.DesiredLookDir = (_player.Position - _view.Position).normalized;
// Strafe back and forth over the given interval
// This helps avoiding being too easy a target
if (Time.realtimeSinceStartup - _lastStrafeChangeTime > _settings.StrafeChangeInterval)
{
_lastStrafeChangeTime = Time.realtimeSinceStartup;
_strafeRight = !_strafeRight;
}
if (distanceToPlayer < _commonSettings.AttackDistance)
{
_stateManager.ChangeState(EnemyStates.Attack);
}
}
public void FixedUpdate()
{
MoveTowardsPlayer();
Strafe();
}
void Strafe()
{
// Strafe to avoid getting hit too easily
if (_strafeRight)
{
_view.AddForce(_view.RightDir * _settings.StrafeMultiplier * _tunables.Speed);
}
else
{
_view.AddForce(-_view.RightDir * _settings.StrafeMultiplier * _tunables.Speed);
}
}
void MoveTowardsPlayer()
{
var playerDir = (_player.Position - _view.Position).normalized;
_view.AddForce(playerDir * _tunables.Speed);
}
[Serializable]
public class Settings
{
public float StrafeMultiplier;
public float StrafeChangeInterval;
public float TeleportNewDistance;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f6b8435c02df92747b53470f32656b93
timeCreated: 1456620041
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,58 @@
using System;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Zenject.SpaceFighter
{
public class EnemyStateIdle : IEnemyState
{
readonly EnemyRotationHandler _rotationHandler;
readonly Settings _settings;
readonly EnemyView _view;
Vector3 _startPos;
float _theta;
Vector3 _startLookDir;
public EnemyStateIdle(
EnemyView view, Settings settings,
EnemyRotationHandler rotationHandler)
{
_rotationHandler = rotationHandler;
_settings = settings;
_view = view;
}
public void EnterState()
{
_startPos = _view.Position;
_theta = Random.Range(0, 2.0f * Mathf.PI);
_startLookDir = _view.LookDir;
}
public void ExitState()
{
}
// Just add a bit of subtle movement
public void Update()
{
_theta += Time.deltaTime * _settings.Frequency;
_view.Position = _startPos + _view.RightDir * _settings.Amplitude * Mathf.Sin(_theta);
_rotationHandler.DesiredLookDir = _startLookDir;
}
public void FixedUpdate()
{
}
[Serializable]
public class Settings
{
public float Amplitude;
public float Frequency;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7a99ffa8c241c8a4e97392c7903712f0
timeCreated: 1456618194
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 578ceac11e9188244b4d0db534cb351a
folderAsset: yes
timeCreated: 1456414609
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,19 @@
namespace Zenject.SpaceFighter
{
public class EnemyInstaller : Installer<EnemyInstaller>
{
public override void InstallBindings()
{
Container.Bind<EnemyTunables>().AsSingle();
Container.BindInterfacesAndSelfTo<EnemyStateManager>().AsSingle();
Container.Bind<EnemyStateIdle>().AsSingle();
Container.Bind<EnemyStateAttack>().AsSingle();
Container.Bind<EnemyStateFollow>().AsSingle();
Container.BindInterfacesAndSelfTo<EnemyDeathHandler>().AsSingle();
Container.BindInterfacesAndSelfTo<EnemyRotationHandler>().AsSingle();
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ba7d60db0911cee42bd0cba6d4ed9b85
timeCreated: 1456415201
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,80 @@
using System;
using UnityEngine;
namespace Zenject.SpaceFighter
{
// Main installer for our game
public class GameInstaller : MonoInstaller
{
[Inject]
Settings _settings = null;
public override void InstallBindings()
{
Container.BindInterfacesAndSelfTo<EnemySpawner>().AsSingle();
Container.BindFactory<float, float, EnemyFacade, EnemyFacade.Factory>()
// We could just use FromMonoPoolableMemoryPool here instead, but
// for IL2CPP to work we need our pool class to be used explicitly here
.FromPoolableMemoryPool<float, float, EnemyFacade, EnemyFacadePool>(poolBinder => poolBinder
// Spawn 5 enemies right off the bat so that we don't incur spikes at runtime
.WithInitialSize(5)
.FromSubContainerResolve()
.ByNewPrefabInstaller<EnemyInstaller>(_settings.EnemyFacadePrefab)
// Place each enemy under an Enemies game object at the root of scene hierarchy
.UnderTransformGroup("Enemies"));
Container.BindFactory<float, float, BulletTypes, Bullet, Bullet.Factory>()
// We could just use FromMonoPoolableMemoryPool here instead, but
// for IL2CPP to work we need our pool class to be used explicitly here
.FromPoolableMemoryPool<float, float, BulletTypes, Bullet, BulletPool>(poolBinder => poolBinder
// Spawn 20 right off the bat so that we don't incur spikes at runtime
.WithInitialSize(20)
// Bullets are simple enough that we don't need to make a subcontainer for them
// The logic can all just be in one class
.FromComponentInNewPrefab(_settings.BulletPrefab)
.UnderTransformGroup("Bullets"));
Container.Bind<LevelBoundary>().AsSingle();
Container.BindFactory<Explosion, Explosion.Factory>()
// We could just use FromMonoPoolableMemoryPool here instead, but
// for IL2CPP to work we need our pool class to be used explicitly here
.FromPoolableMemoryPool<Explosion, ExplosionPool>(poolBinder => poolBinder
// Spawn 4 right off the bat so that we don't incur spikes at runtime
.WithInitialSize(4)
.FromComponentInNewPrefab(_settings.ExplosionPrefab)
.UnderTransformGroup("Explosions"));
Container.Bind<AudioPlayer>().AsSingle();
Container.BindInterfacesTo<GameRestartHandler>().AsSingle();
Container.Bind<EnemyRegistry>().AsSingle();
GameSignalsInstaller.Install(Container);
}
[Serializable]
public class Settings
{
public GameObject EnemyFacadePrefab;
public GameObject BulletPrefab;
public GameObject ExplosionPrefab;
}
// We could just use FromMonoPoolableMemoryPool above, but we have to use these instead
// for IL2CPP to work
class EnemyFacadePool : MonoPoolableMemoryPool<float, float, IMemoryPool, EnemyFacade>
{
}
class BulletPool : MonoPoolableMemoryPool<float, float, BulletTypes, IMemoryPool, Bullet>
{
}
class ExplosionPool : MonoPoolableMemoryPool<IMemoryPool, Explosion>
{
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e432172e250876f4ab278b0d24d58673
timeCreated: 1456414615
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,71 @@
using System;
namespace Zenject.SpaceFighter
{
// We prefer to use ScriptableObjectInstaller for installers that contain game settings
// There's no reason why you couldn't use a MonoInstaller here instead, however
// using ScriptableObjectInstaller has advantages here that make it nice for settings:
//
// 1) You can change these values at runtime and have those changes persist across play
// sessions. If it was a MonoInstaller then any changes would be lost when you hit stop
// 2) You can easily create multiple ScriptableObject instances of this installer to test
// different customizations to settings. For example, you might have different instances
// for each difficulty mode of your game, such as "Easy", "Hard", etc.
// 3) If your settings are associated with a game object composition root, then using
// ScriptableObjectInstaller can be easier since there will only ever be one definitive
// instance for each setting. Otherwise, you'd have to change the settings for each game
// object composition root separately at runtime
//
// Uncomment if you want to add alternative game settings
//[CreateAssetMenu(menuName = "Space Fighter/Game Settings")]
public class GameSettingsInstaller : ScriptableObjectInstaller<GameSettingsInstaller>
{
public EnemySpawner.Settings EnemySpawner;
public GameRestartHandler.Settings GameRestartHandler;
public GameInstaller.Settings GameInstaller;
public PlayerSettings Player;
public EnemySettings Enemy;
[Serializable]
public class PlayerSettings
{
public PlayerMoveHandler.Settings PlayerMoveHandler;
public PlayerShootHandler.Settings PlayerShootHandler;
public PlayerDamageHandler.Settings PlayerCollisionHandler;
public PlayerHealthWatcher.Settings PlayerHealthWatcher;
}
[Serializable]
public class EnemySettings
{
public EnemyTunables DefaultSettings;
public EnemyStateIdle.Settings EnemyStateIdle;
public EnemyRotationHandler.Settings EnemyRotationHandler;
public EnemyStateFollow.Settings EnemyStateFollow;
public EnemyStateAttack.Settings EnemyStateAttack;
public EnemyDeathHandler.Settings EnemyHealthWatcher;
public EnemyCommonSettings EnemyCommonSettings;
}
public override void InstallBindings()
{
// Use IfNotBound to allow overriding for eg. from play mode tests
Container.BindInstance(EnemySpawner).IfNotBound();
Container.BindInstance(GameRestartHandler).IfNotBound();
Container.BindInstance(GameInstaller).IfNotBound();
Container.BindInstance(Player.PlayerMoveHandler).IfNotBound();
Container.BindInstance(Player.PlayerShootHandler).IfNotBound();
Container.BindInstance(Player.PlayerCollisionHandler).IfNotBound();
Container.BindInstance(Player.PlayerHealthWatcher).IfNotBound();
Container.BindInstance(Enemy.EnemyStateIdle).IfNotBound();
Container.BindInstance(Enemy.EnemyRotationHandler).IfNotBound();
Container.BindInstance(Enemy.EnemyStateFollow).IfNotBound();
Container.BindInstance(Enemy.EnemyStateAttack).IfNotBound();
Container.BindInstance(Enemy.EnemyHealthWatcher).IfNotBound();
Container.BindInstance(Enemy.EnemyCommonSettings).IfNotBound();
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1db4d8ab51ca4ad48844c113bfbd80fa
timeCreated: 1461784513
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,29 @@
using UnityEngine;
namespace Zenject.SpaceFighter
{
// Include this just to ensure BindSignal with an object mapping works
public class PlayerDiedSignalObserver
{
public void OnPlayerDied()
{
Debug.Log("Fired PlayerDiedSignal");
}
}
public class GameSignalsInstaller : Installer<GameSignalsInstaller>
{
public override void InstallBindings()
{
SignalBusInstaller.Install(Container);
Container.DeclareSignal<EnemyKilledSignal>();
Container.DeclareSignal<PlayerDiedSignal>();
// Include these just to ensure BindSignal works
Container.BindSignal<PlayerDiedSignal>().ToMethod<PlayerDiedSignalObserver>(x => x.OnPlayerDied).FromNew();
Container.BindSignal<EnemyKilledSignal>().ToMethod(() => Debug.Log("Fired EnemyKilledSignal"));
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 23aa26bc747410a40ac441fedb64f05d
timeCreated: 1506513911
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,34 @@
using System;
using UnityEngine;
namespace Zenject.SpaceFighter
{
public class PlayerInstaller : MonoInstaller
{
[SerializeField]
Settings _settings = null;
public override void InstallBindings()
{
Container.Bind<Player>().AsSingle()
.WithArguments(_settings.Rigidbody, _settings.MeshRenderer);
Container.BindInterfacesTo<PlayerInputHandler>().AsSingle();
Container.BindInterfacesTo<PlayerMoveHandler>().AsSingle();
Container.BindInterfacesAndSelfTo<PlayerDamageHandler>().AsSingle();
Container.BindInterfacesTo<PlayerDirectionHandler>().AsSingle();
Container.BindInterfacesTo<PlayerShootHandler>().AsSingle();
Container.Bind<PlayerInputState>().AsSingle();
Container.BindInterfacesTo<PlayerHealthWatcher>().AsSingle();
}
[Serializable]
public class Settings
{
public Rigidbody Rigidbody;
public MeshRenderer MeshRenderer;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: ff1b44a433bb75344a686526fba7452b
timeCreated: 1456415489
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 8b24cebc08e04c147950145f9a70049b
folderAsset: yes
timeCreated: 1456416096
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,24 @@
using UnityEngine;
namespace Zenject.SpaceFighter
{
public class AudioPlayer
{
readonly Camera _camera;
public AudioPlayer(Camera camera)
{
_camera = camera;
}
public void Play(AudioClip clip)
{
Play(clip, 1);
}
public void Play(AudioClip clip, float volume)
{
_camera.GetComponent<AudioSource>().PlayOneShot(clip, volume);
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: a57395b833349ce43a64f59377d0e398
timeCreated: 1456615647
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,91 @@
using UnityEngine;
namespace Zenject.SpaceFighter
{
public enum BulletTypes
{
FromEnemy,
FromPlayer
}
public class Bullet : MonoBehaviour, IPoolable<float, float, BulletTypes, IMemoryPool>
{
float _startTime;
BulletTypes _type;
float _speed;
float _lifeTime;
[SerializeField]
MeshRenderer _renderer = null;
[SerializeField]
Material _playerMaterial = null;
[SerializeField]
Material _enemyMaterial = null;
IMemoryPool _pool;
public BulletTypes Type
{
get { return _type; }
}
public Vector3 MoveDirection
{
get { return transform.right; }
}
public void OnTriggerEnter(Collider other)
{
var enemyView = other.GetComponent<EnemyView>();
if (enemyView != null && _type == BulletTypes.FromPlayer)
{
enemyView.Facade.Die();
_pool.Despawn(this);
}
else
{
var player = other.GetComponent<PlayerFacade>();
if (player != null && _type == BulletTypes.FromEnemy)
{
player.TakeDamage(MoveDirection);
_pool.Despawn(this);
}
}
}
public void Update()
{
transform.position -= transform.right * _speed * Time.deltaTime;
if (Time.realtimeSinceStartup - _startTime > _lifeTime)
{
_pool.Despawn(this);
}
}
public void OnSpawned(float speed, float lifeTime, BulletTypes type, IMemoryPool pool)
{
_pool = pool;
_type = type;
_speed = speed;
_lifeTime = lifeTime;
_renderer.material = type == BulletTypes.FromEnemy ? _enemyMaterial : _playerMaterial;
_startTime = Time.realtimeSinceStartup;
}
public void OnDespawned()
{
_pool = null;
}
public class Factory : PlaceholderFactory<float, float, BulletTypes, Bullet>
{
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4bcfdc0e00dba5645b88ed3608c61161
timeCreated: 1456594035
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,28 @@
using UnityEngine;
#pragma warning disable 649
namespace Zenject.SpaceFighter
{
public class ControlsDisplay : MonoBehaviour
{
[SerializeField]
float _leftPadding;
[SerializeField]
float _topPadding;
[SerializeField]
float _width;
[SerializeField]
float _height;
public void OnGUI()
{
var bounds = new Rect(_leftPadding, _topPadding, _width, _height);
GUI.Label(bounds, "CONTROLS: WASD to move, Mouse to aim, Left Mouse to fire");
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3bc2ba00bfd0f6044825d1848b10a7e0
timeCreated: 1456683520
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,123 @@
using System;
using ModestTree;
using UnityEngine;
using Random = UnityEngine.Random;
namespace Zenject.SpaceFighter
{
public class EnemySpawner : ITickable, IInitializable
{
readonly EnemyFacade.Factory _enemyFactory;
readonly SignalBus _signalBus;
readonly LevelBoundary _levelBoundary;
readonly Settings _settings;
float _desiredNumEnemies;
int _enemyCount;
float _lastSpawnTime;
public EnemySpawner(
Settings settings,
LevelBoundary levelBoundary,
SignalBus signalBus,
EnemyFacade.Factory enemyFactory)
{
_enemyFactory = enemyFactory;
_signalBus = signalBus;
_levelBoundary = levelBoundary;
_settings = settings;
_desiredNumEnemies = settings.NumEnemiesStartAmount;
}
public void Initialize()
{
_signalBus.Subscribe<EnemyKilledSignal>(OnEnemyKilled);
}
void OnEnemyKilled()
{
_enemyCount--;
}
public void Tick()
{
_desiredNumEnemies += _settings.NumEnemiesIncreaseRate * Time.deltaTime;
if (_enemyCount < (int)_desiredNumEnemies
&& Time.realtimeSinceStartup - _lastSpawnTime > _settings.MinDelayBetweenSpawns)
{
SpawnEnemy();
_enemyCount++;
}
}
void SpawnEnemy()
{
float speed = Random.Range(_settings.SpeedMin, _settings.SpeedMax);
float accuracy = Random.Range(_settings.AccuracyMin, _settings.AccuracyMax);
var enemyFacade = _enemyFactory.Create(accuracy, speed);
enemyFacade.Position = ChooseRandomStartPosition();
_lastSpawnTime = Time.realtimeSinceStartup;
}
Vector3 ChooseRandomStartPosition()
{
var side = Random.Range(0, 3);
var posOnSide = Random.Range(0, 1.0f);
float buffer = 2.0f;
switch (side)
{
case 0:
// top
{
return new Vector3(
_levelBoundary.Left + posOnSide * _levelBoundary.Width,
_levelBoundary.Top + buffer, 0);
}
case 1:
// right
{
return new Vector3(
_levelBoundary.Right + buffer,
_levelBoundary.Top - posOnSide * _levelBoundary.Height, 0);
}
case 2:
// bottom
{
return new Vector3(
_levelBoundary.Left + posOnSide * _levelBoundary.Width,
_levelBoundary.Bottom - buffer, 0);
}
case 3:
// left
{
return new Vector3(
_levelBoundary.Left - buffer,
_levelBoundary.Top - posOnSide * _levelBoundary.Height, 0);
}
}
throw Assert.CreateException();
}
[Serializable]
public class Settings
{
public float SpeedMin;
public float SpeedMax;
public float AccuracyMin;
public float AccuracyMax;
public float NumEnemiesIncreaseRate;
public float NumEnemiesStartAmount;
public float MinDelayBetweenSpawns = 0.5f;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1daabbbef5fff9a4b9a2c94659ecdf57
timeCreated: 1456420312
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

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