├── .gitignore ├── .vscode └── settings.json ├── Assets ├── Materials.meta ├── Materials │ ├── Blue.mat │ ├── Blue.mat.meta │ ├── Green.mat │ ├── Green.mat.meta │ ├── Red.mat │ ├── Red.mat.meta │ ├── Yellow.mat │ └── Yellow.mat.meta ├── New Terrain.asset ├── New Terrain.asset.meta ├── NewBrush 1.brush ├── NewBrush 1.brush.meta ├── NewBrush.brush ├── NewBrush.brush.meta ├── NewLayer 1.terrainlayer ├── NewLayer 1.terrainlayer.meta ├── NewLayer.terrainlayer ├── NewLayer.terrainlayer.meta ├── Prefab.meta ├── Prefab │ ├── Role.prefab │ ├── Role.prefab.meta │ ├── Terrain.prefab │ └── Terrain.prefab.meta ├── Resources.meta ├── Resources │ ├── Prefabs.meta │ └── Prefabs │ │ ├── Capsule.prefab │ │ ├── Capsule.prefab.meta │ │ ├── Cube1.prefab │ │ ├── Cube1.prefab.meta │ │ ├── Cube2.prefab │ │ ├── Cube2.prefab.meta │ │ ├── Sphere.prefab │ │ └── Sphere.prefab.meta ├── Scenes.meta ├── Scenes │ ├── 1.unity │ └── 1.unity.meta ├── Scripts.meta ├── Scripts │ ├── Expand.cs │ ├── Expand.cs.meta │ ├── INode.cs │ ├── INode.cs.meta │ ├── Main.cs │ ├── Main.cs.meta │ ├── MoveController.cs │ ├── MoveController.cs.meta │ ├── Node.cs │ ├── Node.cs.meta │ ├── ResourcesManager.cs │ ├── ResourcesManager.cs.meta │ ├── Role.cs │ ├── Role.cs.meta │ ├── SceneObjData.cs │ ├── SceneObjData.cs.meta │ ├── Tree.cs │ └── Tree.cs.meta ├── Texture.meta └── Texture │ ├── Ground_01.jpg │ ├── Ground_01.jpg.meta │ ├── Ground_03.jpg │ └── Ground_03.jpg.meta ├── LICENSE ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── AutoStreamingSettings.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Packages │ └── com.unity.testtools.codecoverage │ │ └── Settings.json ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset ├── XRSettings.asset └── boot.config ├── README.md └── UserSettings ├── EditorUserSettings.asset └── Layouts └── default-2021.dwlt /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Asset meta data should only be ignored when the corresponding asset is also ignored 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": 3 | { 4 | "**/.DS_Store":true, 5 | "**/.git":true, 6 | "**/.gitmodules":true, 7 | "**/*.booproj":true, 8 | "**/*.pidb":true, 9 | "**/*.suo":true, 10 | "**/*.user":true, 11 | "**/*.userprefs":true, 12 | "**/*.unityproj":true, 13 | "**/*.dll":true, 14 | "**/*.exe":true, 15 | "**/*.pdf":true, 16 | "**/*.mid":true, 17 | "**/*.midi":true, 18 | "**/*.wav":true, 19 | "**/*.gif":true, 20 | "**/*.ico":true, 21 | "**/*.jpg":true, 22 | "**/*.jpeg":true, 23 | "**/*.png":true, 24 | "**/*.psd":true, 25 | "**/*.tga":true, 26 | "**/*.tif":true, 27 | "**/*.tiff":true, 28 | "**/*.3ds":true, 29 | "**/*.3DS":true, 30 | "**/*.fbx":true, 31 | "**/*.FBX":true, 32 | "**/*.lxo":true, 33 | "**/*.LXO":true, 34 | "**/*.ma":true, 35 | "**/*.MA":true, 36 | "**/*.obj":true, 37 | "**/*.OBJ":true, 38 | "**/*.asset":true, 39 | "**/*.cubemap":true, 40 | "**/*.flare":true, 41 | "**/*.mat":true, 42 | "**/*.meta":true, 43 | "**/*.prefab":true, 44 | "**/*.unity":true, 45 | "build/":true, 46 | "Build/":true, 47 | "Library/":true, 48 | "library/":true, 49 | "obj/":true, 50 | "Obj/":true, 51 | "ProjectSettings/":true, 52 | "temp/":true, 53 | "Temp/":true 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f16202b80c746d4a9ed5e031408167c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Blue.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Blue 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _AO: 2.4 61 | - _BaseLight: 0.35 62 | - _BumpScale: 1 63 | - _Cutoff: 0.5 64 | - _DetailNormalMapScale: 1 65 | - _DstBlend: 0 66 | - _GlossMapScale: 1 67 | - _Glossiness: 0.5 68 | - _GlossyReflections: 1 69 | - _Metallic: 0 70 | - _Mode: 0 71 | - _Occlusion: 7.5 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SquashAmount: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 0, g: 0.118125916, b: 1, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | - _TreeInstanceColor: {r: 1, g: 1, b: 1, a: 1} 84 | - _TreeInstanceScale: {r: 1, g: 1, b: 1, a: 1} 85 | m_BuildTextureStacks: [] 86 | -------------------------------------------------------------------------------- /Assets/Materials/Blue.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9a5f8e4519027b4889562c1595781d5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Green.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Green 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _AO: 2.4 61 | - _BaseLight: 0.35 62 | - _BumpScale: 1 63 | - _Cutoff: 0.5 64 | - _DetailNormalMapScale: 1 65 | - _DstBlend: 0 66 | - _GlossMapScale: 1 67 | - _Glossiness: 0.5 68 | - _GlossyReflections: 1 69 | - _Metallic: 0 70 | - _Mode: 0 71 | - _Occlusion: 7.5 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SquashAmount: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 0, g: 0.7924528, b: 0.10162197, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | - _TreeInstanceColor: {r: 1, g: 1, b: 1, a: 1} 84 | - _TreeInstanceScale: {r: 1, g: 1, b: 1, a: 1} 85 | m_BuildTextureStacks: [] 86 | -------------------------------------------------------------------------------- /Assets/Materials/Green.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ef1738bb5408c9468eeae0e525dfc20 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Red.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Red 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _AO: 2.4 61 | - _BaseLight: 0.35 62 | - _BumpScale: 1 63 | - _Cutoff: 0.5 64 | - _DetailNormalMapScale: 1 65 | - _DstBlend: 0 66 | - _GlossMapScale: 1 67 | - _Glossiness: 0.5 68 | - _GlossyReflections: 1 69 | - _Metallic: 0 70 | - _Mode: 0 71 | - _Occlusion: 7.5 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SquashAmount: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 0.9811321, g: 0.013883919, b: 0.013883919, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | - _TreeInstanceColor: {r: 1, g: 1, b: 1, a: 1} 84 | - _TreeInstanceScale: {r: 1, g: 1, b: 1, a: 1} 85 | m_BuildTextureStacks: [] 86 | -------------------------------------------------------------------------------- /Assets/Materials/Red.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5321188e89c3a04c9ef4b7a23cc3f14 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Yellow.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Yellow 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Ints: [] 59 | m_Floats: 60 | - _AO: 2.4 61 | - _BaseLight: 0.35 62 | - _BumpScale: 1 63 | - _Cutoff: 0.5 64 | - _DetailNormalMapScale: 1 65 | - _DstBlend: 0 66 | - _GlossMapScale: 1 67 | - _Glossiness: 0.5 68 | - _GlossyReflections: 1 69 | - _Metallic: 0 70 | - _Mode: 0 71 | - _Occlusion: 7.5 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SmoothnessTextureChannel: 0 75 | - _SpecularHighlights: 1 76 | - _SquashAmount: 1 77 | - _SrcBlend: 1 78 | - _UVSec: 0 79 | - _ZWrite: 1 80 | m_Colors: 81 | - _Color: {r: 1, g: 0.9863349, b: 0, a: 1} 82 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 83 | - _TreeInstanceColor: {r: 1, g: 1, b: 1, a: 1} 84 | - _TreeInstanceScale: {r: 1, g: 1, b: 1, a: 1} 85 | m_BuildTextureStacks: [] 86 | -------------------------------------------------------------------------------- /Assets/Materials/Yellow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6b5089fbfa055a48ad1cb530234026b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/New Terrain.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDuoLi/Unity_QuadTree_Scene-Object-Renderer-Management/4770ad3f31d8d920d1df91b04d8b1d27bff47295/Assets/New Terrain.asset -------------------------------------------------------------------------------- /Assets/New Terrain.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd45a640d1321c844b83ac4e4049dc54 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 15600000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NewBrush 1.brush: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 12146, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: NewBrush 1 14 | m_EditorClassIdentifier: 15 | m_Mask: {fileID: 2800000, guid: e05c95ae5c3329741ab9903b7f3f40a1, type: 3} 16 | m_Falloff: 17 | serializedVersion: 2 18 | m_Curve: 19 | - serializedVersion: 3 20 | time: 0 21 | value: 0 22 | inSlope: 0 23 | outSlope: 1 24 | tangentMode: 0 25 | weightedMode: 0 26 | inWeight: 0 27 | outWeight: 0 28 | - serializedVersion: 3 29 | time: 1 30 | value: 1 31 | inSlope: 1 32 | outSlope: 0 33 | tangentMode: 0 34 | weightedMode: 0 35 | inWeight: 0 36 | outWeight: 0 37 | m_PreInfinity: 2 38 | m_PostInfinity: 2 39 | m_RotationOrder: 4 40 | m_RadiusScale: 1.4849247 41 | -------------------------------------------------------------------------------- /Assets/NewBrush 1.brush.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d478b70e6be06d04c946038d2b494634 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NewBrush.brush: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 12146, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: NewBrush 14 | m_EditorClassIdentifier: 15 | m_Mask: {fileID: 2800000, guid: 2afb9393a8ab03c4bb146a04f5a8cac4, type: 3} 16 | m_Falloff: 17 | serializedVersion: 2 18 | m_Curve: 19 | - serializedVersion: 3 20 | time: 0 21 | value: 0 22 | inSlope: 0 23 | outSlope: 1 24 | tangentMode: 0 25 | weightedMode: 0 26 | inWeight: 0 27 | outWeight: 0 28 | - serializedVersion: 3 29 | time: 1 30 | value: 1 31 | inSlope: 1 32 | outSlope: 0 33 | tangentMode: 0 34 | weightedMode: 0 35 | inWeight: 0 36 | outWeight: 0 37 | m_PreInfinity: 2 38 | m_PostInfinity: 2 39 | m_RotationOrder: 4 40 | m_RadiusScale: 1.4849247 41 | -------------------------------------------------------------------------------- /Assets/NewBrush.brush.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80f6c946ecd7f8e41898807af6b80e5e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NewLayer 1.terrainlayer: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1953259897 &8574412962073106934 4 | TerrainLayer: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: NewLayer 1 10 | m_DiffuseTexture: {fileID: 2800000, guid: 2afb9393a8ab03c4bb146a04f5a8cac4, type: 3} 11 | m_NormalMapTexture: {fileID: 0} 12 | m_MaskMapTexture: {fileID: 0} 13 | m_TileSize: {x: 2, y: 2} 14 | m_TileOffset: {x: 0, y: 0} 15 | m_Specular: {r: 0, g: 0, b: 0, a: 0} 16 | m_Metallic: 0 17 | m_Smoothness: 0 18 | m_NormalScale: 1 19 | m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0} 20 | m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1} 21 | m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0} 22 | m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1} 23 | -------------------------------------------------------------------------------- /Assets/NewLayer 1.terrainlayer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e3b023b3c3b5024c8cd19c584035064 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8574412962073106934 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/NewLayer.terrainlayer: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1953259897 &8574412962073106934 4 | TerrainLayer: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: NewLayer 10 | m_DiffuseTexture: {fileID: 2800000, guid: e05c95ae5c3329741ab9903b7f3f40a1, type: 3} 11 | m_NormalMapTexture: {fileID: 0} 12 | m_MaskMapTexture: {fileID: 0} 13 | m_TileSize: {x: 2, y: 2} 14 | m_TileOffset: {x: 0, y: 0} 15 | m_Specular: {r: 0, g: 0, b: 0, a: 0} 16 | m_Metallic: 0 17 | m_Smoothness: 0 18 | m_NormalScale: 1 19 | m_DiffuseRemapMin: {x: 0, y: 0, z: 0, w: 0} 20 | m_DiffuseRemapMax: {x: 1, y: 1, z: 1, w: 1} 21 | m_MaskMapRemapMin: {x: 0, y: 0, z: 0, w: 0} 22 | m_MaskMapRemapMax: {x: 1, y: 1, z: 1, w: 1} 23 | -------------------------------------------------------------------------------- /Assets/NewLayer.terrainlayer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1f755c6108c54a4bb4eaa966838d692 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8574412962073106934 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b2cd55e1eed54f4a97e6a59e1fab57e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Prefab/Role.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &1286794473515418643 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 1286794473515418638} 12 | - component: {fileID: 1286794473515418637} 13 | - component: {fileID: 1286794473515418636} 14 | m_Layer: 0 15 | m_Name: Camera 16 | m_TagString: MainCamera 17 | m_Icon: {fileID: 0} 18 | m_NavMeshLayer: 0 19 | m_StaticEditorFlags: 0 20 | m_IsActive: 1 21 | --- !u!4 &1286794473515418638 22 | Transform: 23 | m_ObjectHideFlags: 0 24 | m_CorrespondingSourceObject: {fileID: 0} 25 | m_PrefabInstance: {fileID: 0} 26 | m_PrefabAsset: {fileID: 0} 27 | m_GameObject: {fileID: 1286794473515418643} 28 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 29 | m_LocalPosition: {x: 0, y: 0, z: 0} 30 | m_LocalScale: {x: 1, y: 1, z: 1} 31 | m_ConstrainProportionsScale: 0 32 | m_Children: [] 33 | m_Father: {fileID: 1286794474552488998} 34 | m_RootOrder: 0 35 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 36 | --- !u!20 &1286794473515418637 37 | Camera: 38 | m_ObjectHideFlags: 0 39 | m_CorrespondingSourceObject: {fileID: 0} 40 | m_PrefabInstance: {fileID: 0} 41 | m_PrefabAsset: {fileID: 0} 42 | m_GameObject: {fileID: 1286794473515418643} 43 | m_Enabled: 1 44 | serializedVersion: 2 45 | m_ClearFlags: 1 46 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} 47 | m_projectionMatrixMode: 1 48 | m_GateFitMode: 2 49 | m_FOVAxisMode: 0 50 | m_SensorSize: {x: 36, y: 24} 51 | m_LensShift: {x: 0, y: 0} 52 | m_FocalLength: 50 53 | m_NormalizedViewPortRect: 54 | serializedVersion: 2 55 | x: 0 56 | y: 0 57 | width: 1 58 | height: 1 59 | near clip plane: 0.3 60 | far clip plane: 30 61 | field of view: 60 62 | orthographic: 0 63 | orthographic size: 5 64 | m_Depth: -1 65 | m_CullingMask: 66 | serializedVersion: 2 67 | m_Bits: 4294967295 68 | m_RenderingPath: -1 69 | m_TargetTexture: {fileID: 0} 70 | m_TargetDisplay: 0 71 | m_TargetEye: 3 72 | m_HDR: 1 73 | m_AllowMSAA: 1 74 | m_AllowDynamicResolution: 0 75 | m_ForceIntoRT: 0 76 | m_OcclusionCulling: 1 77 | m_StereoConvergence: 10 78 | m_StereoSeparation: 0.022 79 | --- !u!81 &1286794473515418636 80 | AudioListener: 81 | m_ObjectHideFlags: 0 82 | m_CorrespondingSourceObject: {fileID: 0} 83 | m_PrefabInstance: {fileID: 0} 84 | m_PrefabAsset: {fileID: 0} 85 | m_GameObject: {fileID: 1286794473515418643} 86 | m_Enabled: 1 87 | --- !u!1 &1286794474552489001 88 | GameObject: 89 | m_ObjectHideFlags: 0 90 | m_CorrespondingSourceObject: {fileID: 0} 91 | m_PrefabInstance: {fileID: 0} 92 | m_PrefabAsset: {fileID: 0} 93 | serializedVersion: 6 94 | m_Component: 95 | - component: {fileID: 1286794474552488998} 96 | - component: {fileID: 1286794474552488997} 97 | - component: {fileID: 1286794474552488996} 98 | - component: {fileID: 1286794474552489003} 99 | - component: {fileID: 1286794474552489002} 100 | - component: {fileID: 1286794474552488999} 101 | m_Layer: 0 102 | m_Name: Role 103 | m_TagString: Untagged 104 | m_Icon: {fileID: 0} 105 | m_NavMeshLayer: 0 106 | m_StaticEditorFlags: 0 107 | m_IsActive: 1 108 | --- !u!4 &1286794474552488998 109 | Transform: 110 | m_ObjectHideFlags: 0 111 | m_CorrespondingSourceObject: {fileID: 0} 112 | m_PrefabInstance: {fileID: 0} 113 | m_PrefabAsset: {fileID: 0} 114 | m_GameObject: {fileID: 1286794474552489001} 115 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 116 | m_LocalPosition: {x: 51.921097, y: 8.179, z: 44.023033} 117 | m_LocalScale: {x: 1, y: 1, z: 1} 118 | m_ConstrainProportionsScale: 0 119 | m_Children: 120 | - {fileID: 1286794473515418638} 121 | m_Father: {fileID: 0} 122 | m_RootOrder: 0 123 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 124 | --- !u!33 &1286794474552488997 125 | MeshFilter: 126 | m_ObjectHideFlags: 0 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 1286794474552489001} 131 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 132 | --- !u!23 &1286794474552488996 133 | MeshRenderer: 134 | m_ObjectHideFlags: 0 135 | m_CorrespondingSourceObject: {fileID: 0} 136 | m_PrefabInstance: {fileID: 0} 137 | m_PrefabAsset: {fileID: 0} 138 | m_GameObject: {fileID: 1286794474552489001} 139 | m_Enabled: 1 140 | m_CastShadows: 1 141 | m_ReceiveShadows: 1 142 | m_DynamicOccludee: 1 143 | m_StaticShadowCaster: 0 144 | m_MotionVectors: 1 145 | m_LightProbeUsage: 1 146 | m_ReflectionProbeUsage: 1 147 | m_RayTracingMode: 2 148 | m_RayTraceProcedural: 0 149 | m_RenderingLayerMask: 1 150 | m_RendererPriority: 0 151 | m_Materials: 152 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} 153 | m_StaticBatchInfo: 154 | firstSubMesh: 0 155 | subMeshCount: 0 156 | m_StaticBatchRoot: {fileID: 0} 157 | m_ProbeAnchor: {fileID: 0} 158 | m_LightProbeVolumeOverride: {fileID: 0} 159 | m_ScaleInLightmap: 1 160 | m_ReceiveGI: 1 161 | m_PreserveUVs: 0 162 | m_IgnoreNormalsForChartDetection: 0 163 | m_ImportantGI: 0 164 | m_StitchLightmapSeams: 0 165 | m_SelectedEditorRenderState: 3 166 | m_MinimumChartSize: 4 167 | m_AutoUVMaxDistance: 0.5 168 | m_AutoUVMaxAngle: 89 169 | m_LightmapParameters: {fileID: 0} 170 | m_SortingLayerID: 0 171 | m_SortingLayer: 0 172 | m_SortingOrder: 0 173 | m_AdditionalVertexStreams: {fileID: 0} 174 | --- !u!114 &1286794474552489003 175 | MonoBehaviour: 176 | m_ObjectHideFlags: 0 177 | m_CorrespondingSourceObject: {fileID: 0} 178 | m_PrefabInstance: {fileID: 0} 179 | m_PrefabAsset: {fileID: 0} 180 | m_GameObject: {fileID: 1286794474552489001} 181 | m_Enabled: 1 182 | m_EditorHideFlags: 0 183 | m_Script: {fileID: 11500000, guid: fcc627bf3c6b6e7478d620e0abc5685a, type: 3} 184 | m_Name: 185 | m_EditorClassIdentifier: 186 | bMove: 0 187 | lastPos: {x: 51.921097, y: 8.179, z: 44.023033} 188 | moveSpeed: 5 189 | rotSpeed: 3 190 | mCamera: {fileID: 1286794473515418637} 191 | --- !u!54 &1286794474552489002 192 | Rigidbody: 193 | m_ObjectHideFlags: 0 194 | m_CorrespondingSourceObject: {fileID: 0} 195 | m_PrefabInstance: {fileID: 0} 196 | m_PrefabAsset: {fileID: 0} 197 | m_GameObject: {fileID: 1286794474552489001} 198 | serializedVersion: 2 199 | m_Mass: 1 200 | m_Drag: 0 201 | m_AngularDrag: 0.05 202 | m_UseGravity: 1 203 | m_IsKinematic: 0 204 | m_Interpolate: 0 205 | m_Constraints: 112 206 | m_CollisionDetection: 0 207 | --- !u!136 &1286794474552488999 208 | CapsuleCollider: 209 | m_ObjectHideFlags: 0 210 | m_CorrespondingSourceObject: {fileID: 0} 211 | m_PrefabInstance: {fileID: 0} 212 | m_PrefabAsset: {fileID: 0} 213 | m_GameObject: {fileID: 1286794474552489001} 214 | m_Material: {fileID: 0} 215 | m_IsTrigger: 0 216 | m_Enabled: 1 217 | m_Radius: 0.5 218 | m_Height: 2 219 | m_Direction: 1 220 | m_Center: {x: 0, y: 0, z: 0} 221 | -------------------------------------------------------------------------------- /Assets/Prefab/Role.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6c7f8d7b9c7678a44ab2be6b2306fa8a 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Prefab/Terrain.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &624263551960263672 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 624263551960263677} 12 | - component: {fileID: 624263551960263674} 13 | - component: {fileID: 624263551960263676} 14 | - component: {fileID: 624263551960263675} 15 | - component: {fileID: 624263551960263679} 16 | m_Layer: 0 17 | m_Name: Terrain 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 4294967295 22 | m_IsActive: 1 23 | --- !u!4 &624263551960263677 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 624263551960263672} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 0, y: 0, z: 0} 32 | m_LocalScale: {x: 1, y: 1, z: 1} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!218 &624263551960263674 39 | Terrain: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 624263551960263672} 45 | m_Enabled: 1 46 | serializedVersion: 6 47 | m_TerrainData: {fileID: 15600000, guid: cd45a640d1321c844b83ac4e4049dc54, type: 2} 48 | m_TreeDistance: 5000 49 | m_TreeBillboardDistance: 50 50 | m_TreeCrossFadeLength: 5 51 | m_TreeMaximumFullLODCount: 50 52 | m_DetailObjectDistance: 80 53 | m_DetailObjectDensity: 1 54 | m_HeightmapPixelError: 5 55 | m_SplatMapDistance: 1000 56 | m_HeightmapMaximumLOD: 0 57 | m_ShadowCastingMode: 2 58 | m_DrawHeightmap: 1 59 | m_DrawInstanced: 0 60 | m_DrawTreesAndFoliage: 1 61 | m_StaticShadowCaster: 0 62 | m_ReflectionProbeUsage: 1 63 | m_MaterialTemplate: {fileID: 10652, guid: 0000000000000000f000000000000000, type: 0} 64 | m_BakeLightProbesForTrees: 1 65 | m_PreserveTreePrototypeLayers: 0 66 | m_DeringLightProbesForTrees: 1 67 | m_ScaleInLightmap: 0.0512 68 | m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} 69 | m_GroupingID: 0 70 | m_RenderingLayerMask: 1 71 | m_AllowAutoConnect: 1 72 | --- !u!114 &624263551960263676 73 | MonoBehaviour: 74 | m_ObjectHideFlags: 0 75 | m_CorrespondingSourceObject: {fileID: 0} 76 | m_PrefabInstance: {fileID: 0} 77 | m_PrefabAsset: {fileID: 0} 78 | m_GameObject: {fileID: 624263551960263672} 79 | m_Enabled: 1 80 | m_EditorHideFlags: 0 81 | m_Script: {fileID: 11500000, guid: 299a88eeaf9816a4f8299466402fe5a8, type: 3} 82 | m_Name: 83 | m_EditorClassIdentifier: 84 | objList: 85 | - sUid: 8b1e29d1-6a9a-4773-8a15-556efb9dd2c9 86 | resPath: Prefabs/Cube2 87 | pos: {x: 82.84081, y: 4.158577, z: 26.471653} 88 | rotation: {x: -0.19282651, y: 0.06995818, z: -0.3337358, w: 0.9200784} 89 | - sUid: e50b59b1-edb2-4b93-a277-fd24af385dd7 90 | resPath: Prefabs/Cube2 91 | pos: {x: 81.391106, y: 2.532093, z: 82.30695} 92 | rotation: {x: -0.3018366, y: -0.036607593, z: -0.11460681, w: 0.9457378} 93 | - sUid: 8d61b80a-0dea-4792-be9e-b1cca2b1d197 94 | resPath: Prefabs/Cube2 95 | pos: {x: 91.87446, y: 2.0107727, z: 49.587814} 96 | rotation: {x: -0, y: -0, z: -0, w: 1} 97 | - sUid: 3f33a00a-a5bc-4336-a4a2-7f33ce8392d1 98 | resPath: Prefabs/Cube2 99 | pos: {x: 67.85834, y: 3.3427162, z: 75.740715} 100 | rotation: {x: 0.29857066, y: -0, z: -0, w: 0.95438755} 101 | - sUid: 0c4593fd-8f5f-4e0e-9ac5-945921787792 102 | resPath: Prefabs/Cube2 103 | pos: {x: 48.86328, y: 6.7203827, z: 53.721714} 104 | rotation: {x: -0, y: -0, z: 0.37472078, w: 0.92713773} 105 | - sUid: 7446f95a-4c54-4323-98ab-1c9eb78f14be 106 | resPath: Prefabs/Cube2 107 | pos: {x: 10.162994, y: 2.7595978, z: 7.1548157} 108 | rotation: {x: -0.23861134, y: -0, z: -0, w: 0.9711152} 109 | - sUid: 248f1645-8494-4f00-84d8-e0c0d4a8119e 110 | resPath: Prefabs/Cube2 111 | pos: {x: 55.36753, y: 1.8860168, z: 6.151886} 112 | rotation: {x: -0, y: -0, z: -0.16536272, w: 0.9862328} 113 | - sUid: 05a94cd0-a02c-4452-9fc1-896ac93936f6 114 | resPath: Prefabs/Cube2 115 | pos: {x: 50.855835, y: 5.7589912, z: 22.65041} 116 | rotation: {x: -0, y: -0.2638525, z: -0, w: 0.9645631} 117 | - sUid: e192630e-c58b-4416-ace2-d4be53f24793 118 | resPath: Prefabs/Cube2 119 | pos: {x: 35.675056, y: 4.6808624, z: 13.065956} 120 | rotation: {x: -0, y: 0.48248824, z: -0, w: 0.8759025} 121 | - sUid: 3dc13c6f-153c-4608-98dd-851a24bdf4a6 122 | resPath: Prefabs/Cube2 123 | pos: {x: 26.627087, y: 7.9391594, z: 24.782837} 124 | rotation: {x: 0.33043438, y: -0.08286531, z: -0.4019244, w: 0.84994316} 125 | - sUid: eda1df6d-2fa2-4683-a79c-8b230951899d 126 | resPath: Prefabs/Cube2 127 | pos: {x: 15.9165535, y: 5.143688, z: 46.185158} 128 | rotation: {x: -0.32370734, y: -0.22158206, z: 0.2779444, w: 0.8768477} 129 | - sUid: 06029c71-080c-45b4-a039-adcf3755b7c5 130 | resPath: Prefabs/Cube2 131 | pos: {x: 43.319954, y: 8.330097, z: 64.16072} 132 | rotation: {x: -0, y: -0, z: -0, w: 1} 133 | - sUid: 7f5f9368-ae1f-44d7-adfd-ca3c95a2e8c5 134 | resPath: Prefabs/Cube2 135 | pos: {x: 80.608665, y: 2.0130157, z: 12.718971} 136 | rotation: {x: 0.32250583, y: -0.0793866, z: 0.22566348, w: 0.9158405} 137 | - sUid: 35af496f-9356-4d47-894d-a047469df830 138 | resPath: Prefabs/Cube2 139 | pos: {x: 78.57448, y: 3.4201202, z: 60.587543} 140 | rotation: {x: -0, y: 0.41628307, z: -0, w: 0.9092351} 141 | - sUid: af9e9c36-27e2-4312-bce5-66a4d54215a7 142 | resPath: Prefabs/Cube2 143 | pos: {x: 78.75441, y: 6.33395, z: 38.756844} 144 | rotation: {x: 0.10226013, y: 0.29818797, z: -0.30785355, w: 0.89769316} 145 | - sUid: dee5dd41-2f48-40c3-9096-b79bfe2295f6 146 | resPath: Prefabs/Cube2 147 | pos: {x: 37.485603, y: 6.134407, z: 46.345795} 148 | rotation: {x: -0, y: 0.40510535, z: -0, w: 0.91427004} 149 | - sUid: 7c08fb51-2201-43d3-80aa-9b815744c574 150 | resPath: Prefabs/Cube1 151 | pos: {x: 40.24981, y: 5.511574, z: 19.544136} 152 | rotation: {x: -0, y: -0.35011852, z: -0, w: 0.93670547} 153 | - sUid: 70261fa7-02e6-4fb2-b462-d17794e85403 154 | resPath: Prefabs/Cube1 155 | pos: {x: 46.548275, y: 2.3453484, z: 7.599861} 156 | rotation: {x: -0.40474245, y: -0.15316118, z: 0.3188613, w: 0.8432394} 157 | - sUid: 81296563-fdab-48fe-a7c9-695b4a619dc3 158 | resPath: Prefabs/Cube1 159 | pos: {x: 71.75634, y: 7.1841583, z: 46.414112} 160 | rotation: {x: 0.41377643, y: -0, z: -0, w: 0.9103786} 161 | - sUid: ee709082-9476-4457-9225-2c0b885a04df 162 | resPath: Prefabs/Cube1 163 | pos: {x: 20.184982, y: 6.651619, z: 17.353317} 164 | rotation: {x: -0, y: -0, z: 0.17862251, w: 0.9839177} 165 | - sUid: 85c94041-051b-4ce8-b747-9ff797503ab0 166 | resPath: Prefabs/Cube1 167 | pos: {x: 24.971699, y: 5.716324, z: 13.47887} 168 | rotation: {x: 0.04837132, y: 0.32864735, z: -0.1372025, w: 0.9331809} 169 | - sUid: ccb00c54-41c6-4f36-8e19-df01c9c7243b 170 | resPath: Prefabs/Cube1 171 | pos: {x: 30.260857, y: 8.168182, z: 76.56069} 172 | rotation: {x: 0.18845238, y: -0.7932516, z: -0.30406672, w: 0.4927283} 173 | - sUid: 7514e25e-76d9-4d1a-b389-b9f510a147be 174 | resPath: Prefabs/Cube1 175 | pos: {x: 22.522827, y: 7.353058, z: 65.25717} 176 | rotation: {x: -0, y: -0, z: 0.49998072, w: 0.86603653} 177 | - sUid: 9b1ac40a-3ce1-47de-a313-9308eac412c9 178 | resPath: Prefabs/Cube1 179 | pos: {x: 29.568295, y: 6.3033676, z: 43.629585} 180 | rotation: {x: -0, y: -0, z: -0.714291, w: 0.69984883} 181 | - sUid: 72a62303-0cea-41c6-b40e-593c763fe79f 182 | resPath: Prefabs/Cube1 183 | pos: {x: 59.47433, y: 5.648407, z: 64.81384} 184 | rotation: {x: -0, y: -0, z: -0, w: 1} 185 | - sUid: 0dadb8dd-732c-4551-a5fc-18f2258284f3 186 | resPath: Prefabs/Cube1 187 | pos: {x: 86.70165, y: 2.2921638, z: 64.23676} 188 | rotation: {x: -0, y: -0, z: -0, w: 1} 189 | - sUid: a8a2e05e-4ddc-4a3a-9c90-16f93286fa55 190 | resPath: Prefabs/Cube1 191 | pos: {x: 70.96731, y: 3.2185287, z: 13.353947} 192 | rotation: {x: -0, y: -0, z: -0, w: 1} 193 | - sUid: 37f4dc99-79a5-4474-90da-d8a58fb03caf 194 | resPath: Prefabs/Cube1 195 | pos: {x: 75.34869, y: 6.226528, z: 26.718876} 196 | rotation: {x: -0, y: -0, z: -0, w: 1} 197 | - sUid: cc6df5db-bcc0-49b1-aa67-a2ff373b87fa 198 | resPath: Prefabs/Cube1 199 | pos: {x: 69.95592, y: 8.493423, z: 35.115353} 200 | rotation: {x: -0, y: -0, z: -0, w: 1} 201 | - sUid: 5774698b-090a-4d88-80cc-215fda68cb89 202 | resPath: Prefabs/Cube1 203 | pos: {x: 51.2097, y: 7.1283035, z: 43.887413} 204 | rotation: {x: -0, y: -0, z: -0, w: 1} 205 | - sUid: 9daea514-34da-4e04-a705-e0dc0b7aa528 206 | resPath: Prefabs/Sphere 207 | pos: {x: 24.883354, y: 3.4607658, z: 6.0054855} 208 | rotation: {x: -0, y: -0, z: -0, w: 1} 209 | - sUid: 558205c9-8001-4399-ba3c-8d2010d4ca97 210 | resPath: Prefabs/Sphere 211 | pos: {x: 93.6792, y: 1.4941826, z: 24.584408} 212 | rotation: {x: -0, y: -0, z: -0, w: 1} 213 | - sUid: 7fcf0c5d-08d4-4966-a5f5-90f4762bc989 214 | resPath: Prefabs/Sphere 215 | pos: {x: 59.181206, y: 6.2694473, z: 22.247955} 216 | rotation: {x: -0, y: -0, z: -0, w: 1} 217 | - sUid: 2e026086-b5ee-4536-8787-cef79d77bf9b 218 | resPath: Prefabs/Sphere 219 | pos: {x: 59.366817, y: 2.7010727, z: 10.010311} 220 | rotation: {x: -0, y: -0, z: -0, w: 1} 221 | - sUid: df29f5ad-bc14-47d7-bbe1-0d6c7b59db66 222 | resPath: Prefabs/Sphere 223 | pos: {x: 16.584549, y: 6.7566833, z: 34.945072} 224 | rotation: {x: -0, y: -0, z: -0, w: 1} 225 | - sUid: 5d4a02e7-df80-455a-b53e-0b9c0266be43 226 | resPath: Prefabs/Sphere 227 | pos: {x: 29.468102, y: 7.1186523, z: 20.044186} 228 | rotation: {x: -0, y: -0, z: -0, w: 1} 229 | - sUid: 8ba5ae7f-6b0e-447d-899a-0ac9e07f8071 230 | resPath: Prefabs/Sphere 231 | pos: {x: 55.809933, y: 8.055447, z: 33.36567} 232 | rotation: {x: -0, y: -0, z: -0, w: 1} 233 | - sUid: 673d66c8-1277-432d-82fe-1b702b612aaa 234 | resPath: Prefabs/Sphere 235 | pos: {x: 39.2477, y: 6.577385, z: 52.626675} 236 | rotation: {x: -0, y: -0, z: -0, w: 1} 237 | - sUid: b0c87d7f-227b-443c-9086-3370a3573569 238 | resPath: Prefabs/Sphere 239 | pos: {x: 21.968334, y: 6.3830223, z: 79.771164} 240 | rotation: {x: -0, y: -0, z: -0, w: 1} 241 | - sUid: 0dcadefa-be6a-42e7-973f-3bd9c384fb30 242 | resPath: Prefabs/Sphere 243 | pos: {x: 55.498398, y: 5.9140854, z: 74.07973} 244 | rotation: {x: -0, y: -0, z: -0, w: 1} 245 | - sUid: 8a2fbef5-e0bd-43a8-994c-aea68fe90852 246 | resPath: Prefabs/Sphere 247 | pos: {x: 66.008286, y: 4.6390305, z: 63.8086} 248 | rotation: {x: -0, y: -0, z: -0, w: 1} 249 | - sUid: 37a57cbb-1be1-49a8-9b26-49ac419450db 250 | resPath: Prefabs/Sphere 251 | pos: {x: 79.82179, y: 5.352726, z: 46.01713} 252 | rotation: {x: -0, y: -0, z: -0, w: 1} 253 | - sUid: 45ad9838-3304-47a1-8dee-d0ec6e1fdacf 254 | resPath: Prefabs/Sphere 255 | pos: {x: 83.67071, y: 0.9305954, z: 6.8777046} 256 | rotation: {x: -0, y: -0, z: -0, w: 1} 257 | - sUid: 3e4d128f-ee3b-423b-b0cc-8b06de901aca 258 | resPath: Prefabs/Capsule 259 | pos: {x: 49.14411, y: 4.041687, z: 15.604004} 260 | rotation: {x: -0, y: -0, z: 0.6323847, w: 0.7746545} 261 | - sUid: 39123c5d-75b3-47d0-8ba8-38095b7fc0c1 262 | resPath: Prefabs/Capsule 263 | pos: {x: 67.08029, y: 1.7085114, z: 5.723049} 264 | rotation: {x: -0, y: -0, z: -0.45055962, w: 0.8927464} 265 | - sUid: 52d686e3-6a51-48c3-a492-2b787dfbb577 266 | resPath: Prefabs/Capsule 267 | pos: {x: 15.405445, y: 5.1561203, z: 55.951965} 268 | rotation: {x: -0, y: -0, z: -0, w: 1} 269 | - sUid: 3508fc83-f6eb-4932-850f-c986dd4cda57 270 | resPath: Prefabs/Capsule 271 | pos: {x: 35.959793, y: 7.0292664, z: 27.503895} 272 | rotation: {x: 0.4709696, y: -0, z: -0, w: 0.88214946} 273 | - sUid: 1a88025b-b5f7-4699-a827-3c9869483e08 274 | resPath: Prefabs/Capsule 275 | pos: {x: 18.363705, y: 5.1159096, z: 12.241955} 276 | rotation: {x: -0, y: -0, z: -0.50096124, w: 0.8654698} 277 | - sUid: 7c8bc93e-bd61-48d4-b9f4-10c97eb4c8e5 278 | resPath: Prefabs/Capsule 279 | pos: {x: 37.939148, y: 3.3099327, z: 8.708042} 280 | rotation: {x: 0.13997272, y: -0, z: -0, w: 0.99015534} 281 | - sUid: 974bc41c-206d-4c83-8c31-2aac973de990 282 | resPath: Prefabs/Capsule 283 | pos: {x: 61.08548, y: 8.478153, z: 42.40726} 284 | rotation: {x: -0.15272263, y: -0, z: -0, w: 0.98826915} 285 | - sUid: 20d90478-1c53-4fd3-a953-ae9c6ceb00c7 286 | resPath: Prefabs/Capsule 287 | pos: {x: 43.944336, y: 6.6288223, z: 34.677288} 288 | rotation: {x: -0, y: -0, z: -0, w: 1} 289 | - sUid: 0533279f-68a5-4942-8a91-5388a96b42c7 290 | resPath: Prefabs/Capsule 291 | pos: {x: 26.940113, y: 7.4827766, z: 34.789433} 292 | rotation: {x: -0, y: -0, z: -0, w: 1} 293 | - sUid: 9829b5fb-3b7d-4977-9cb9-e1e829c482c4 294 | resPath: Prefabs/Capsule 295 | pos: {x: 43.392178, y: 7.6220627, z: 78.57336} 296 | rotation: {x: -0, y: -0, z: 0.26943, w: 0.96301997} 297 | - sUid: 70a4dc2d-ac9e-4b02-8dbf-6356f139ed0f 298 | resPath: Prefabs/Capsule 299 | pos: {x: 52.034676, y: 6.860924, z: 60.25591} 300 | rotation: {x: -0, y: -0, z: -0, w: 1} 301 | - sUid: c87d4a35-1aae-4281-9d8e-f2cca6531d90 302 | resPath: Prefabs/Capsule 303 | pos: {x: 35.338955, y: 8.928352, z: 66.115776} 304 | rotation: {x: -0, y: -0, z: -0, w: 1} 305 | - sUid: 1160a448-7d63-4c31-8ebb-7c4377860ecf 306 | resPath: Prefabs/Capsule 307 | pos: {x: 77.930046, y: 2.6735039, z: 76.68989} 308 | rotation: {x: -0, y: -0, z: -0.37672883, w: 0.9263236} 309 | - sUid: 0fbf7482-8528-4c9d-87a1-ce6d10cb3609 310 | resPath: Prefabs/Capsule 311 | pos: {x: 66.57349, y: 2.9768677, z: 81.7533} 312 | rotation: {x: -0, y: -0, z: -0, w: 1} 313 | - sUid: aaf5c1d5-a575-4b77-9916-62a270227fa8 314 | resPath: Prefabs/Capsule 315 | pos: {x: 90.86779, y: 2.3710213, z: 77.047165} 316 | rotation: {x: -0, y: -0, z: -0, w: 1} 317 | - sUid: 80c782e6-d7b5-4370-b8ed-98f189da0b7d 318 | resPath: Prefabs/Capsule 319 | pos: {x: 84.20411, y: 4.5436783, z: 39.611294} 320 | rotation: {x: -0, y: -0, z: -0, w: 1} 321 | - sUid: 9c424df2-afc8-46d8-9b4e-ba35eba949e1 322 | resPath: Prefabs/Capsule 323 | pos: {x: 73.64214, y: 4.2774887, z: 58.645077} 324 | rotation: {x: -0, y: -0, z: -0, w: 1} 325 | - sUid: 3a48f4a1-ef69-443c-99ae-18d3dce3b5f2 326 | resPath: Prefabs/Capsule 327 | pos: {x: 70.21347, y: 6.5913506, z: 24.457676} 328 | rotation: {x: -0, y: -0, z: -0, w: 1} 329 | - sUid: 21cfa606-c091-45fd-b40c-305fe934e030 330 | resPath: Prefabs/Capsule 331 | pos: {x: 81.00539, y: 3.4244232, z: 19.99992} 332 | rotation: {x: -0, y: -0, z: -0, w: 1} 333 | mainBound: 334 | m_Center: {x: 50, y: 0, z: 50} 335 | m_Extent: {x: 50, y: 10, z: 50} 336 | --- !u!154 &624263551960263675 337 | TerrainCollider: 338 | m_ObjectHideFlags: 0 339 | m_CorrespondingSourceObject: {fileID: 0} 340 | m_PrefabInstance: {fileID: 0} 341 | m_PrefabAsset: {fileID: 0} 342 | m_GameObject: {fileID: 624263551960263672} 343 | m_Material: {fileID: 0} 344 | m_Enabled: 1 345 | m_TerrainData: {fileID: 15600000, guid: cd45a640d1321c844b83ac4e4049dc54, type: 2} 346 | m_EnableTreeColliders: 1 347 | --- !u!114 &624263551960263679 348 | MonoBehaviour: 349 | m_ObjectHideFlags: 0 350 | m_CorrespondingSourceObject: {fileID: 0} 351 | m_PrefabInstance: {fileID: 0} 352 | m_PrefabAsset: {fileID: 0} 353 | m_GameObject: {fileID: 624263551960263672} 354 | m_Enabled: 1 355 | m_EditorHideFlags: 0 356 | m_Script: {fileID: 11500000, guid: 72609c12b0ba223409e31ba6f2618c39, type: 3} 357 | m_Name: 358 | m_EditorClassIdentifier: 359 | delTime: 2 360 | -------------------------------------------------------------------------------- /Assets/Prefab/Terrain.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ae3a5fc7be9b3b9408d512d109795bc4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0e938ee4ca94894181419e23925b02e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2bf7a0a09b2399b4387b2cbbc42f0d88 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Capsule.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &8711959328547383978 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 3324395266717139960} 12 | - component: {fileID: 8452029738660639421} 13 | - component: {fileID: 72338759346211308} 14 | - component: {fileID: 1671793329480643516} 15 | - component: {fileID: 8578663235634735458} 16 | m_Layer: 0 17 | m_Name: Capsule 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &3324395266717139960 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 8711959328547383978} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 49.74, y: 12.04, z: 63.03} 32 | m_LocalScale: {x: 3, y: 3, z: 3} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!33 &8452029738660639421 39 | MeshFilter: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 8711959328547383978} 45 | m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} 46 | --- !u!23 &72338759346211308 47 | MeshRenderer: 48 | m_ObjectHideFlags: 0 49 | m_CorrespondingSourceObject: {fileID: 0} 50 | m_PrefabInstance: {fileID: 0} 51 | m_PrefabAsset: {fileID: 0} 52 | m_GameObject: {fileID: 8711959328547383978} 53 | m_Enabled: 1 54 | m_CastShadows: 1 55 | m_ReceiveShadows: 1 56 | m_DynamicOccludee: 1 57 | m_StaticShadowCaster: 0 58 | m_MotionVectors: 1 59 | m_LightProbeUsage: 1 60 | m_ReflectionProbeUsage: 1 61 | m_RayTracingMode: 2 62 | m_RayTraceProcedural: 0 63 | m_RenderingLayerMask: 1 64 | m_RendererPriority: 0 65 | m_Materials: 66 | - {fileID: 2100000, guid: b6b5089fbfa055a48ad1cb530234026b, type: 2} 67 | m_StaticBatchInfo: 68 | firstSubMesh: 0 69 | subMeshCount: 0 70 | m_StaticBatchRoot: {fileID: 0} 71 | m_ProbeAnchor: {fileID: 0} 72 | m_LightProbeVolumeOverride: {fileID: 0} 73 | m_ScaleInLightmap: 1 74 | m_ReceiveGI: 1 75 | m_PreserveUVs: 0 76 | m_IgnoreNormalsForChartDetection: 0 77 | m_ImportantGI: 0 78 | m_StitchLightmapSeams: 0 79 | m_SelectedEditorRenderState: 3 80 | m_MinimumChartSize: 4 81 | m_AutoUVMaxDistance: 0.5 82 | m_AutoUVMaxAngle: 89 83 | m_LightmapParameters: {fileID: 0} 84 | m_SortingLayerID: 0 85 | m_SortingLayer: 0 86 | m_SortingOrder: 0 87 | m_AdditionalVertexStreams: {fileID: 0} 88 | --- !u!114 &1671793329480643516 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 8711959328547383978} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: cca9cc9e6bdbb564b8712acdd9a32ac4, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | pos: {x: 0, y: 0, z: 0} 101 | --- !u!136 &8578663235634735458 102 | CapsuleCollider: 103 | m_ObjectHideFlags: 0 104 | m_CorrespondingSourceObject: {fileID: 0} 105 | m_PrefabInstance: {fileID: 0} 106 | m_PrefabAsset: {fileID: 0} 107 | m_GameObject: {fileID: 8711959328547383978} 108 | m_Material: {fileID: 0} 109 | m_IsTrigger: 0 110 | m_Enabled: 1 111 | m_Radius: 0.5 112 | m_Height: 2 113 | m_Direction: 1 114 | m_Center: {x: 0, y: 0, z: 0} 115 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Capsule.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5f77ad23665f47479733c84246c2cd1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Cube1.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &7750653129131337703 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7750653129131337691} 12 | - component: {fileID: 7750653129131337690} 13 | - component: {fileID: 7750653129131337689} 14 | - component: {fileID: 1299971760897478472} 15 | - component: {fileID: 1058403182099175456} 16 | m_Layer: 0 17 | m_Name: Cube1 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &7750653129131337691 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 7750653129131337703} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 43.049313, y: 10.02, z: 60.85933} 32 | m_LocalScale: {x: 1, y: 5.3921604, z: 1} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!33 &7750653129131337690 39 | MeshFilter: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 7750653129131337703} 45 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 46 | --- !u!23 &7750653129131337689 47 | MeshRenderer: 48 | m_ObjectHideFlags: 0 49 | m_CorrespondingSourceObject: {fileID: 0} 50 | m_PrefabInstance: {fileID: 0} 51 | m_PrefabAsset: {fileID: 0} 52 | m_GameObject: {fileID: 7750653129131337703} 53 | m_Enabled: 1 54 | m_CastShadows: 1 55 | m_ReceiveShadows: 1 56 | m_DynamicOccludee: 1 57 | m_StaticShadowCaster: 0 58 | m_MotionVectors: 1 59 | m_LightProbeUsage: 1 60 | m_ReflectionProbeUsage: 1 61 | m_RayTracingMode: 2 62 | m_RayTraceProcedural: 0 63 | m_RenderingLayerMask: 1 64 | m_RendererPriority: 0 65 | m_Materials: 66 | - {fileID: 2100000, guid: c9a5f8e4519027b4889562c1595781d5, type: 2} 67 | m_StaticBatchInfo: 68 | firstSubMesh: 0 69 | subMeshCount: 0 70 | m_StaticBatchRoot: {fileID: 0} 71 | m_ProbeAnchor: {fileID: 0} 72 | m_LightProbeVolumeOverride: {fileID: 0} 73 | m_ScaleInLightmap: 1 74 | m_ReceiveGI: 1 75 | m_PreserveUVs: 0 76 | m_IgnoreNormalsForChartDetection: 0 77 | m_ImportantGI: 0 78 | m_StitchLightmapSeams: 0 79 | m_SelectedEditorRenderState: 3 80 | m_MinimumChartSize: 4 81 | m_AutoUVMaxDistance: 0.5 82 | m_AutoUVMaxAngle: 89 83 | m_LightmapParameters: {fileID: 0} 84 | m_SortingLayerID: 0 85 | m_SortingLayer: 0 86 | m_SortingOrder: 0 87 | m_AdditionalVertexStreams: {fileID: 0} 88 | --- !u!114 &1299971760897478472 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 7750653129131337703} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: cca9cc9e6bdbb564b8712acdd9a32ac4, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | pos: {x: 0, y: 0, z: 0} 101 | --- !u!65 &1058403182099175456 102 | BoxCollider: 103 | m_ObjectHideFlags: 0 104 | m_CorrespondingSourceObject: {fileID: 0} 105 | m_PrefabInstance: {fileID: 0} 106 | m_PrefabAsset: {fileID: 0} 107 | m_GameObject: {fileID: 7750653129131337703} 108 | m_Material: {fileID: 0} 109 | m_IsTrigger: 0 110 | m_Enabled: 1 111 | serializedVersion: 2 112 | m_Size: {x: 1, y: 0.99999994, z: 1} 113 | m_Center: {x: 0, y: 0, z: 0} 114 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Cube1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14029d31a185529488c44010ecc57ac6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Cube2.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &3298290874881020891 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 5893348786223820620} 12 | - component: {fileID: 3318596222002493311} 13 | - component: {fileID: 9165142124905354065} 14 | - component: {fileID: 2683849041379229155} 15 | - component: {fileID: 2452639066742600419} 16 | m_Layer: 0 17 | m_Name: Cube2 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &5893348786223820620 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 3298290874881020891} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 43.609917, y: 8.25, z: 55.92} 32 | m_LocalScale: {x: 2, y: 2, z: 2} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!33 &3318596222002493311 39 | MeshFilter: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 3298290874881020891} 45 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} 46 | --- !u!23 &9165142124905354065 47 | MeshRenderer: 48 | m_ObjectHideFlags: 0 49 | m_CorrespondingSourceObject: {fileID: 0} 50 | m_PrefabInstance: {fileID: 0} 51 | m_PrefabAsset: {fileID: 0} 52 | m_GameObject: {fileID: 3298290874881020891} 53 | m_Enabled: 1 54 | m_CastShadows: 1 55 | m_ReceiveShadows: 1 56 | m_DynamicOccludee: 1 57 | m_StaticShadowCaster: 0 58 | m_MotionVectors: 1 59 | m_LightProbeUsage: 1 60 | m_ReflectionProbeUsage: 1 61 | m_RayTracingMode: 2 62 | m_RayTraceProcedural: 0 63 | m_RenderingLayerMask: 1 64 | m_RendererPriority: 0 65 | m_Materials: 66 | - {fileID: 2100000, guid: 3ef1738bb5408c9468eeae0e525dfc20, type: 2} 67 | m_StaticBatchInfo: 68 | firstSubMesh: 0 69 | subMeshCount: 0 70 | m_StaticBatchRoot: {fileID: 0} 71 | m_ProbeAnchor: {fileID: 0} 72 | m_LightProbeVolumeOverride: {fileID: 0} 73 | m_ScaleInLightmap: 1 74 | m_ReceiveGI: 1 75 | m_PreserveUVs: 0 76 | m_IgnoreNormalsForChartDetection: 0 77 | m_ImportantGI: 0 78 | m_StitchLightmapSeams: 0 79 | m_SelectedEditorRenderState: 3 80 | m_MinimumChartSize: 4 81 | m_AutoUVMaxDistance: 0.5 82 | m_AutoUVMaxAngle: 89 83 | m_LightmapParameters: {fileID: 0} 84 | m_SortingLayerID: 0 85 | m_SortingLayer: 0 86 | m_SortingOrder: 0 87 | m_AdditionalVertexStreams: {fileID: 0} 88 | --- !u!114 &2683849041379229155 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 3298290874881020891} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: cca9cc9e6bdbb564b8712acdd9a32ac4, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | pos: {x: 0, y: 0, z: 0} 101 | --- !u!65 &2452639066742600419 102 | BoxCollider: 103 | m_ObjectHideFlags: 0 104 | m_CorrespondingSourceObject: {fileID: 0} 105 | m_PrefabInstance: {fileID: 0} 106 | m_PrefabAsset: {fileID: 0} 107 | m_GameObject: {fileID: 3298290874881020891} 108 | m_Material: {fileID: 0} 109 | m_IsTrigger: 0 110 | m_Enabled: 1 111 | serializedVersion: 2 112 | m_Size: {x: 1, y: 1, z: 1} 113 | m_Center: {x: 0, y: 0, z: 0} 114 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Cube2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cdd85ea88f0d82545a0846858b1eeac2 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Sphere.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1 &3753885882019224198 4 | GameObject: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | serializedVersion: 6 10 | m_Component: 11 | - component: {fileID: 7272185014718163027} 12 | - component: {fileID: 5189508020705508768} 13 | - component: {fileID: 1048275134299716188} 14 | - component: {fileID: 9214869495735776855} 15 | - component: {fileID: 6558366499003349539} 16 | m_Layer: 0 17 | m_Name: Sphere 18 | m_TagString: Untagged 19 | m_Icon: {fileID: 0} 20 | m_NavMeshLayer: 0 21 | m_StaticEditorFlags: 0 22 | m_IsActive: 1 23 | --- !u!4 &7272185014718163027 24 | Transform: 25 | m_ObjectHideFlags: 0 26 | m_CorrespondingSourceObject: {fileID: 0} 27 | m_PrefabInstance: {fileID: 0} 28 | m_PrefabAsset: {fileID: 0} 29 | m_GameObject: {fileID: 3753885882019224198} 30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 31 | m_LocalPosition: {x: 51.404625, y: 8.131727, z: 60.63242} 32 | m_LocalScale: {x: 2, y: 2, z: 2} 33 | m_ConstrainProportionsScale: 0 34 | m_Children: [] 35 | m_Father: {fileID: 0} 36 | m_RootOrder: 0 37 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 38 | --- !u!33 &5189508020705508768 39 | MeshFilter: 40 | m_ObjectHideFlags: 0 41 | m_CorrespondingSourceObject: {fileID: 0} 42 | m_PrefabInstance: {fileID: 0} 43 | m_PrefabAsset: {fileID: 0} 44 | m_GameObject: {fileID: 3753885882019224198} 45 | m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} 46 | --- !u!23 &1048275134299716188 47 | MeshRenderer: 48 | m_ObjectHideFlags: 0 49 | m_CorrespondingSourceObject: {fileID: 0} 50 | m_PrefabInstance: {fileID: 0} 51 | m_PrefabAsset: {fileID: 0} 52 | m_GameObject: {fileID: 3753885882019224198} 53 | m_Enabled: 1 54 | m_CastShadows: 1 55 | m_ReceiveShadows: 1 56 | m_DynamicOccludee: 1 57 | m_StaticShadowCaster: 0 58 | m_MotionVectors: 1 59 | m_LightProbeUsage: 1 60 | m_ReflectionProbeUsage: 1 61 | m_RayTracingMode: 2 62 | m_RayTraceProcedural: 0 63 | m_RenderingLayerMask: 1 64 | m_RendererPriority: 0 65 | m_Materials: 66 | - {fileID: 2100000, guid: b5321188e89c3a04c9ef4b7a23cc3f14, type: 2} 67 | m_StaticBatchInfo: 68 | firstSubMesh: 0 69 | subMeshCount: 0 70 | m_StaticBatchRoot: {fileID: 0} 71 | m_ProbeAnchor: {fileID: 0} 72 | m_LightProbeVolumeOverride: {fileID: 0} 73 | m_ScaleInLightmap: 1 74 | m_ReceiveGI: 1 75 | m_PreserveUVs: 0 76 | m_IgnoreNormalsForChartDetection: 0 77 | m_ImportantGI: 0 78 | m_StitchLightmapSeams: 0 79 | m_SelectedEditorRenderState: 3 80 | m_MinimumChartSize: 4 81 | m_AutoUVMaxDistance: 0.5 82 | m_AutoUVMaxAngle: 89 83 | m_LightmapParameters: {fileID: 0} 84 | m_SortingLayerID: 0 85 | m_SortingLayer: 0 86 | m_SortingOrder: 0 87 | m_AdditionalVertexStreams: {fileID: 0} 88 | --- !u!114 &9214869495735776855 89 | MonoBehaviour: 90 | m_ObjectHideFlags: 0 91 | m_CorrespondingSourceObject: {fileID: 0} 92 | m_PrefabInstance: {fileID: 0} 93 | m_PrefabAsset: {fileID: 0} 94 | m_GameObject: {fileID: 3753885882019224198} 95 | m_Enabled: 1 96 | m_EditorHideFlags: 0 97 | m_Script: {fileID: 11500000, guid: cca9cc9e6bdbb564b8712acdd9a32ac4, type: 3} 98 | m_Name: 99 | m_EditorClassIdentifier: 100 | pos: {x: 0, y: 0, z: 0} 101 | --- !u!135 &6558366499003349539 102 | SphereCollider: 103 | m_ObjectHideFlags: 0 104 | m_CorrespondingSourceObject: {fileID: 0} 105 | m_PrefabInstance: {fileID: 0} 106 | m_PrefabAsset: {fileID: 0} 107 | m_GameObject: {fileID: 3753885882019224198} 108 | m_Material: {fileID: 0} 109 | m_IsTrigger: 0 110 | m_Enabled: 1 111 | serializedVersion: 2 112 | m_Radius: 0.5 113 | m_Center: {x: 0, y: 0, z: 0} 114 | -------------------------------------------------------------------------------- /Assets/Resources/Prefabs/Sphere.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7f27b9e90a55b348a2b3f8546d660f7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ea315d0fd7389c41b19996891e99ae3 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/1.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fe47dd688bcf664ca58be04d8b1643f 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e1137d6f6696346409b3b3d7d51feb8a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Expand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public static class Expand 6 | { 7 | //Bounds的拓展方法 8 | 9 | //检测包围盒是否在摄像机范围内。如果该Bound的八个点都不在摄像机可视范围内,返回false,否则返回true 10 | 11 | //渲染管线是局部坐标系=》世界坐标系=》摄像机坐标系=》裁剪坐标系-》屏幕坐标系,其中在后三个坐标系中可以很便捷的得到某个点是否处于摄像机可视范围内。 12 | 13 | //在此用裁剪坐标系来判断,省了几次坐标转换,判断某个点在摄像机可视范围内方法如下: 14 | 15 | //1.将该点转换到裁剪空间,得到裁剪空间中的坐标为vec(x,y,z,w),那么如果-w ComputeOutCode = (projectionPos) => 22 | { 23 | int _code = 0; 24 | //该点位于视锥体的左方 25 | if (projectionPos.x < -projectionPos.w) _code |= 1; 26 | //该点位于视锥体的右方 27 | if (projectionPos.x > projectionPos.w) _code |= 2; 28 | //该点位于视锥体的下方 29 | if (projectionPos.y < -projectionPos.w) _code |= 4; 30 | //该点位于视锥体的上方 31 | if (projectionPos.y > projectionPos.w) _code |= 8; 32 | //该点位于视锥体的后方 33 | if (projectionPos.z < -projectionPos.w) _code |= 16; 34 | //该点位于视锥体的前方 35 | if (projectionPos.z > projectionPos.w) _code |= 32; 36 | return _code; 37 | }; 38 | 39 | Vector4 worldPos = Vector4.one; 40 | int code = 63; 41 | //对Bound的八个点 42 | for (int i = -1; i <= 1; i += 2) 43 | { 44 | for (int j = -1; j <= 1; j += 2) 45 | { 46 | for (int k = -1; k <= 1; k += 2) 47 | { 48 | worldPos.x = bound.center.x + i * bound.extents.x; 49 | worldPos.y = bound.center.y + j * bound.extents.y; 50 | worldPos.z = bound.center.z + k * bound.extents.z; 51 | //projectionMatrix为投影矩阵,是从摄像机空间转换到裁剪空间的矩阵;worldToCameraMatrix为从世界空间变换为摄像机空间的矩阵 52 | code &= ComputeOutCode(camera.projectionMatrix * camera.worldToCameraMatrix * worldPos); 53 | if(code==0) 54 | return true; 55 | } 56 | } 57 | } 58 | return false; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Assets/Scripts/Expand.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 71b7348f142ee4d46ad1e0820457f87f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/INode.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public interface INode 6 | { 7 | Bounds bound { get; set; } 8 | /// 9 | /// 初始化插入一个场景物体 10 | /// 11 | /// 12 | void InsertObj(GameObject go); 13 | /// 14 | /// 当触发者(主角)移动时显示/隐藏物体 15 | /// 16 | /// 17 | void TriggerMove(Camera camera); 18 | /// 19 | /// 画出节点的包围盒 20 | /// 21 | void DrawBound(); 22 | } 23 | -------------------------------------------------------------------------------- /Assets/Scripts/INode.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18bbfc43ec168b3489e32c7ccacc06d2 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Main.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [System.Serializable] 6 | public class Main : MonoBehaviour 7 | { 8 | 9 | //对象数据 10 | public List objList; 11 | //获取需要管理对象的父对象 12 | public Transform go; 13 | //包围盒 14 | public Bounds mainBound; 15 | //四叉树 16 | private Tree tree; 17 | //记录初始化是否结束 18 | private bool bInitEnd = false; 19 | //Role 20 | private Role role; 21 | //树的最大深度 22 | public int maxDepth; 23 | //初始化 24 | public void Awake() 25 | { 26 | objList = new List(go.transform.childCount); 27 | //将所有对象插入onactiveDic和objList 28 | go = GameObject.Find("Objs").transform; 29 | ResourcesManager.Instance.goM = new Dictionary(go.transform.childCount); 30 | for (int i = 0; i < go.transform.childCount;++i) 31 | { 32 | ResourcesManager.Instance.OnActiveObjDic.Add(go.GetChild(i).gameObject); 33 | go.GetChild(i).gameObject.GetComponent().enabled = false; 34 | ResourcesManager.Instance.goM.Add(go.GetChild(i).gameObject, go.GetChild(i).gameObject.GetComponent()); 35 | objList.Add(go.GetChild(i).gameObject); 36 | } 37 | 38 | //新建一棵四叉树 39 | tree = new Tree(mainBound, maxDepth); 40 | //将泛型集合中的所有对象数据插入四叉树中 41 | for(int i = 0; i < objList.Count; ++i) 42 | { 43 | tree.InsertObj(objList[i]); 44 | } 45 | 46 | //获取Role下的Role脚本组件 47 | role = GameObject.Find("Role").GetComponent(); 48 | 49 | //改变初始化结束状态,完成初始化 50 | bInitEnd = true; 51 | } 52 | 53 | //如果角色移动,则更新物体 54 | private void Update() 55 | { 56 | if (role.bMove) 57 | { 58 | tree.TriggerMove(role.mCamera); 59 | } 60 | //tree.TriggerMove(role.mCamera); 61 | 62 | } 63 | //画出包围盒 64 | private void OnDrawGizmos() 65 | { 66 | //如果初始化结束,画出包围盒。开始后初始化才会结束 67 | if (bInitEnd) 68 | { 69 | tree.DrawBound(); 70 | } 71 | //如果初始化未结束,绘制一个线框盒体 72 | else 73 | { 74 | Gizmos.DrawWireCube(mainBound.center, mainBound.size); 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/Scripts/Main.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 299a88eeaf9816a4f8299466402fe5a8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/MoveController.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class MoveController : MonoBehaviour 6 | { 7 | private bool movecontro = true; 8 | public float Speed = 5f; 9 | void Update() 10 | { 11 | if(movecontro) 12 | { 13 | transform.Translate(Vector3.forward * Time.deltaTime * Speed); 14 | if(transform.position.z>=90) 15 | { 16 | movecontro = false; 17 | } 18 | } 19 | else 20 | { 21 | transform.Translate(Vector3.back * Time.deltaTime * Speed); 22 | if(transform.position.z<=5) 23 | { 24 | movecontro = true; 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/Scripts/MoveController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b14bf7705eda8a24a98fd7298a1d6b70 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Node.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | 7 | public class Node : INode 8 | { 9 | //包围盒 10 | public Bounds bound { get; set; } 11 | //当前深度 12 | private int depth; 13 | //该节点所属的树 14 | private Tree belongTree; 15 | //孩子节点数组 16 | private Node[] childList; 17 | //该节点下对象数据的泛型集合 18 | public List objList; 19 | //父节点 20 | public Node parentNode; 21 | //构造函数 22 | public Node(Bounds bound, int depth, Tree belongTree, Node parentN) 23 | { 24 | this.parentNode = parentN; 25 | this.belongTree = belongTree; 26 | this.bound = bound; 27 | this.depth = depth; 28 | //childList = new Node[belongTree.maxChildCount]; 29 | objList = new List(); 30 | } 31 | 32 | public void InsertObj(GameObject go) 33 | { 34 | Node node = null; 35 | bool bChild = false; 36 | //如果还没到叶子节点,可以拥有儿子且儿子未创建,则创建儿子(受该变量的访问属性会影响!!!) 37 | if(depth < belongTree.maxDepth && childList == null) 38 | { 39 | CerateChild(); 40 | } 41 | //如果已经创建孩子节点数组 42 | if(childList != null) 43 | { 44 | for (int i = 0; i < childList.Length; ++i) 45 | { 46 | //按索引i获取孩子节点 47 | Node item = childList[i]; 48 | //如果孩子节点为空,则跳出循环 49 | if (item == null) 50 | { 51 | break; 52 | } 53 | //如果该对象的位置包含在包围盒中 54 | if (item.bound.Contains(go.transform.position)) 55 | { 56 | //如果局部变量node不为空 57 | if (node != null) 58 | { 59 | //跳出循环,不属于孩子节点,属于该节点 60 | bChild = false; 61 | break; 62 | } 63 | //将局部变量item赋值给局部变量node 64 | node = item; 65 | bChild = true; 66 | } 67 | } 68 | } 69 | 70 | if (bChild) 71 | { 72 | node.InsertObj(go); 73 | } 74 | else 75 | { 76 | go.GetComponent().nodeNow = this; 77 | objList.Add(go); 78 | } 79 | } 80 | 81 | public void TriggerMove(Camera camera) 82 | { 83 | //角色移动刷新场景对象状态 84 | if(depth == 0) 85 | { 86 | ResourcesManager.Instance.RefreshStatus(); 87 | } 88 | 89 | //刷新当前节点下的对象 90 | for(int i = 0; i < objList.Count; ++i) 91 | { 92 | //进入该节点中意味着该节点在摄像机内,把该节点保存的物体全部创建出来 93 | ResourcesManager.Instance.Load(objList[i]); 94 | } 95 | 96 | 97 | //刷新孩子节点 98 | if (childList != null) 99 | { 100 | //对所有孩子节点 101 | for(int i = 0; i < childList.Length; ++i) 102 | { 103 | //如果该孩子节点的包围盒在摄像机视野范围内 104 | if (childList[i].bound.CheckBoundIsInCamera(camera)) 105 | { 106 | childList[i].TriggerMove(camera); 107 | } 108 | } 109 | } 110 | } 111 | 112 | //创建孩子节点数组并加入孩子节点 113 | private void CerateChild() 114 | { 115 | //根据所属树的最大孩子数量来创建孩子节点的泛型集合 116 | childList = new Node[belongTree.maxChildCount]; 117 | //索引 118 | int index = 0; 119 | for(int i = -1; i <= 1; i+=2) 120 | { 121 | for(int j = -1; j <= 1; j+=2) 122 | { 123 | //获取孩子节点的中心偏移 124 | Vector3 centerOffset = new Vector3(bound.size.x / 4 * i, 0, bound.size.z / 4 * j); 125 | //获取孩子节点的大小 126 | Vector3 cSize = new Vector3(bound.size.x / 2, bound.size.y, bound.size.z / 2); 127 | //根据以上创建一个包围盒 128 | Bounds cBound = new Bounds(bound.center + centerOffset, cSize); 129 | //根据包围盒创建孩子节点,按索引index赋值 130 | childList[index++] = new Node(cBound, depth + 1, belongTree, this); 131 | } 132 | } 133 | } 134 | 135 | //画出该节点的包围盒 136 | public void DrawBound() 137 | { 138 | //该节点的对象数据的泛型集合的数量不为0 139 | if(objList.Count != 0) 140 | { 141 | //画出一个蓝色线框盒体 142 | Gizmos.color = Color.blue; 143 | //第一个参数是中心,第二个参数是大小 144 | Gizmos.DrawWireCube(bound.center, bound.size - Vector3.one * 0.1f); 145 | } 146 | //否则(该节点下没有对象数据) 147 | else 148 | { 149 | //画出一个绿色线框盒体 150 | Gizmos.color = Color.green; 151 | //第一个参数是中心,第二个参数是大小 152 | Gizmos.DrawWireCube(bound.center, bound.size - Vector3.one * 0.1f); 153 | } 154 | //如果孩子节点数组不为空,则画出所有孩子节点数组的包围盒 155 | if(childList != null) 156 | { 157 | for(int i = 0; i < childList.Length; ++i) 158 | { 159 | childList[i].DrawBound(); 160 | } 161 | } 162 | 163 | } 164 | 165 | 166 | } 167 | -------------------------------------------------------------------------------- /Assets/Scripts/Node.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 227e231a0acdf45489b772371196b968 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ResourcesManager.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | 6 | //管理类 7 | public class ResourcesManager : MonoBehaviour 8 | { 9 | //单例模式,静态变量 10 | public static ResourcesManager Instance; 11 | //删除时间 12 | 13 | //当前活动对象的泛型集合 14 | public List activeObjDic; 15 | //当前即将非活动对象的泛型集合 16 | public List inActiveObjDic; 17 | //当前非活动对象的泛型集合 18 | public List onActiveObjDic; 19 | public Dictionary goM; 20 | #region get set 21 | public List ActiveObjDic 22 | { 23 | get 24 | { 25 | if (activeObjDic == null) 26 | { 27 | activeObjDic = new List(); 28 | } 29 | return activeObjDic; 30 | } 31 | set 32 | { 33 | activeObjDic = value; 34 | } 35 | } 36 | 37 | public List InActiveObjDic 38 | { 39 | get 40 | { 41 | if(inActiveObjDic == null) 42 | { 43 | inActiveObjDic = new List(); 44 | } 45 | return inActiveObjDic; 46 | } 47 | set 48 | { 49 | inActiveObjDic = value; 50 | } 51 | } 52 | 53 | public List OnActiveObjDic 54 | { 55 | get 56 | { 57 | if(onActiveObjDic == null) 58 | { 59 | onActiveObjDic = new List(); 60 | } 61 | return onActiveObjDic; 62 | } 63 | set 64 | { 65 | onActiveObjDic = value; 66 | } 67 | } 68 | #endregion 69 | 70 | //单例模式初始化 71 | private void Awake() 72 | { 73 | Instance = this; 74 | } 75 | 76 | 77 | //检测该对象是否在活动的泛型集合 78 | public GameObject CheckIsActive(GameObject go) 79 | { 80 | if(ActiveObjDic.Contains(go)) 81 | { 82 | goM[go].enabled = true; 83 | //go.GetComponent().enabled = true; 84 | return go; 85 | } 86 | return null; 87 | } 88 | //检测该对象是否在即将非活动对象的泛型集合 89 | public GameObject CheckIsInActive(GameObject go) 90 | { 91 | if(InActiveObjDic.Contains(go)) 92 | { 93 | goM[go].enabled = true; 94 | //go.GetComponent().enabled = true; 95 | ActiveObjDic.Add(go); 96 | InActiveObjDic.Remove(go); 97 | return go; 98 | } 99 | return null; 100 | } 101 | //检测该对象是否在非活动对象的泛型集合 102 | public GameObject CheckIsOnActive(GameObject go) 103 | { 104 | if(OnActiveObjDic.Contains(go)) 105 | { 106 | goM[go].enabled = true; 107 | //go.GetComponent().enabled = true; 108 | ActiveObjDic.Add(go); 109 | OnActiveObjDic.Remove(go); 110 | return go; 111 | } 112 | return null; 113 | } 114 | 115 | //加载对象 116 | public void Load(GameObject go) 117 | { 118 | //如果该对象处于活动状态,则只修改该对象数据的状态即可 119 | if (CheckIsActive(go) != null) 120 | { 121 | return; 122 | } 123 | //如果该对象不在非活跃字典中 124 | if (CheckIsInActive(go) != null) 125 | { 126 | return; 127 | } 128 | 129 | if (CheckIsOnActive(go) == null) 130 | { 131 | Debug.Log("错误"); 132 | } 133 | } 134 | 135 | //角色移动创建物体后刷新场景对象状态,将此次未进入节点(status = old)的物体从显示字典中移到隐藏字典中,并将此次进入节点(status = new)的物体标记为old为下次创建做准备 136 | public void RefreshStatus() 137 | { 138 | //将即将非活动对象的泛型集合的所有对象禁用并移入非活动对象的泛型集合 139 | for (int i = 0; i < InActiveObjDic.Count; ++i) 140 | { 141 | goM[InActiveObjDic[i]].enabled = false; 142 | //InActiveObjDic[i].GetComponent().enabled = false; 143 | OnActiveObjDic.Add(InActiveObjDic[i]); 144 | InActiveObjDic.Remove(InActiveObjDic[i]); 145 | } 146 | 147 | //将活动对象的泛型集合的所有对象移入即将非活动对象的泛型集合 148 | for (int i = 0; i < ActiveObjDic.Count; ++i) 149 | { 150 | InActiveObjDic.Add(ActiveObjDic[i]); 151 | ActiveObjDic.Remove(ActiveObjDic[i]); 152 | } 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /Assets/Scripts/ResourcesManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 72609c12b0ba223409e31ba6f2618c39 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Role.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.AI; 5 | 6 | [ExecuteAlways] 7 | public class Role : MonoBehaviour 8 | { 9 | //是否移动 10 | public bool bMove = false; 11 | //用于判断角色是否移动 12 | public Vector3 lastPos = Vector3.zero; 13 | //移动速度 14 | public float moveSpeed = 5; 15 | //旋转速度 16 | public float rotSpeed = 3; 17 | //摄像机 18 | public Camera mCamera; 19 | //初始化 20 | private void Awake() 21 | { 22 | //获取摄像机组件 23 | mCamera = transform.Find("Camera").GetComponent(); 24 | } 25 | 26 | //WASD移动,并检测角色是否移动 27 | private void Update() 28 | { 29 | if (Input.GetKey(KeyCode.W)) 30 | { 31 | transform.Translate(Vector3.forward * Time.deltaTime * moveSpeed); 32 | } 33 | if (Input.GetKey(KeyCode.S)) 34 | { 35 | transform.Translate(Vector3.back * Time.deltaTime * moveSpeed); 36 | } 37 | if (Input.GetKey(KeyCode.A)) 38 | { 39 | transform.Translate(Vector3.left * Time.deltaTime * moveSpeed); 40 | transform.localEulerAngles -= new Vector3(0, rotSpeed, 0); 41 | } 42 | if (Input.GetKey(KeyCode.D)) 43 | { 44 | transform.Translate(Vector3.right * Time.deltaTime * moveSpeed); 45 | transform.localEulerAngles += new Vector3(0, rotSpeed, 0); 46 | } 47 | 48 | //检测人物是否移动。如果移动,则置bMove为true,更新lastPos 49 | if (lastPos != transform.position) 50 | { 51 | bMove = true; 52 | lastPos = transform.position; 53 | } 54 | else 55 | { 56 | bMove = false; 57 | } 58 | } 59 | 60 | //画出摄像机的视野范围 61 | private void OnDrawGizmos() 62 | { 63 | //包围盒的颜色为黄 64 | Gizmos.color = Color.yellow; 65 | //Gizmos.matrix存储 Gizmos的位置、旋转和缩放 66 | Matrix4x4 temp = Gizmos.matrix; 67 | //修改矩阵。Matrix4x4.TRS返回一个矩阵,第一个参数是位置,第二个参数是旋转定向,第三个参数是缩放 68 | Gizmos.matrix = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one); 69 | //如果该摄像机是正交摄像机 70 | if (mCamera.orthographic) 71 | { 72 | //获取摄像机远、近裁剪平面的距离差值 73 | float spread = mCamera.farClipPlane - mCamera.nearClipPlane; 74 | //获取摄像机远、近裁剪平面的距离中值 75 | float center = (mCamera.farClipPlane + mCamera.nearClipPlane) * 0.5f; 76 | //画一个线框盒体,第一个参数是中心,第二个参数是大小 77 | Gizmos.DrawWireCube(new Vector3(0, 0, center), new Vector3(mCamera.orthographicSize * 2 * mCamera.aspect, mCamera.orthographicSize * 2, spread)); 78 | } 79 | //如果该摄像机是透视摄像机 80 | else 81 | { 82 | //绘制截锥体。第一个参数是顶点,第二个参数是视野,第三个参数是该视椎体远平面的距离,第四个参数是该视椎体近平面的距离,第五个参数是宽度/高度比 83 | Gizmos.DrawFrustum(Vector3.zero, mCamera.fieldOfView, mCamera.farClipPlane, mCamera.nearClipPlane, mCamera.aspect); 84 | } 85 | //赋值,修改Gizmos的位置、旋转和缩放 86 | Gizmos.matrix = temp; 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /Assets/Scripts/Role.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fcc627bf3c6b6e7478d620e0abc5685a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SceneObjData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | //挂载于对象预制体上 6 | public class SceneObjData : MonoBehaviour 7 | { 8 | //此时所属节点 9 | public Node nodeNow; 10 | //位置 11 | public Vector3 pos; 12 | 13 | public Camera cameraM; 14 | private void Start() 15 | { 16 | cameraM = GameObject.Find("Camera").GetComponent(); 17 | pos = transform.position; 18 | } 19 | 20 | private void Update() 21 | { 22 | if(pos != transform.position) 23 | { 24 | pos = transform.position; 25 | if(!nodeNow.bound.Contains(pos)) 26 | { 27 | nodeNow.objList.Remove(gameObject); 28 | OutNode(nodeNow.parentNode, pos); 29 | Updateobj(); 30 | } 31 | } 32 | } 33 | 34 | private void OutNode(Node node, Vector3 pos) 35 | { 36 | if(node == null) 37 | { 38 | return; 39 | } 40 | 41 | if(node.bound.Contains(pos)) 42 | { 43 | node.InsertObj(gameObject); 44 | return; 45 | } 46 | else 47 | { 48 | OutNode(node.parentNode, pos); 49 | } 50 | } 51 | 52 | 53 | private void Updateobj() 54 | { 55 | //判断该节点的包围盒在不在摄像机视野范围内 56 | if(nodeNow.bound.CheckBoundIsInCamera(cameraM)) 57 | { 58 | //判断该对象是否被渲染 59 | if(gameObject.GetComponent().enabled == false) 60 | { 61 | ResourcesManager.Instance.Load(gameObject); 62 | // gameObject.GetComponent().enabled = true; 63 | // //移除该对象在OnActiveObjDic、InActiveObjDic 64 | // if(ResourcesManager.Instance.OnActiveObjDic.Contains(gameObject)) 65 | // { 66 | // ResourcesManager.Instance.OnActiveObjDic.Remove(gameObject); 67 | // } 68 | // if(ResourcesManager.Instance.InActiveObjDic.Contains(gameObject)) 69 | // { 70 | // ResourcesManager.Instance.InActiveObjDic.Remove(gameObject); 71 | // } 72 | // //添加该对象在ActiveObjDic 73 | // if(!ResourcesManager.Instance.ActiveObjDic.Contains(gameObject)) 74 | // { 75 | // ResourcesManager.Instance.ActiveObjDic.Add(gameObject); 76 | // } 77 | } 78 | } 79 | //不在 80 | else if(!nodeNow.bound.CheckBoundIsInCamera(cameraM)) 81 | { 82 | if(gameObject.GetComponent().enabled == true) 83 | { 84 | gameObject.GetComponent().enabled = false; 85 | //移除该对象在ActiveObjDic 86 | if(ResourcesManager.Instance.ActiveObjDic.Contains(gameObject)) 87 | { 88 | ResourcesManager.Instance.ActiveObjDic.Add(gameObject); 89 | } 90 | //添加该对象在OnActiveObjDic 91 | if(ResourcesManager.Instance.OnActiveObjDic.Contains(gameObject)) 92 | { 93 | ResourcesManager.Instance.OnActiveObjDic.Remove(gameObject); 94 | } 95 | } 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /Assets/Scripts/SceneObjData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cca9cc9e6bdbb564b8712acdd9a32ac4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/Tree.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | 6 | //四叉树 7 | public class Tree : INode 8 | { 9 | //树的包围盒 10 | public Bounds bound { get; set; } 11 | //根节点 12 | private Node root; 13 | //最大深度 14 | public int maxDepth { get; set; } 15 | //最大孩子数量 16 | public int maxChildCount { get; set; } 17 | //构造函数 18 | public Tree(Bounds bound,int maxDepth) 19 | { 20 | this.bound = bound; 21 | this.maxDepth = maxDepth; 22 | this.maxChildCount = 4; 23 | root = new Node(bound, 0, this, null); 24 | } 25 | 26 | public void InsertObj(GameObject go) 27 | { 28 | root.InsertObj(go); 29 | } 30 | 31 | public void TriggerMove(Camera camera) 32 | { 33 | root.TriggerMove(camera); 34 | } 35 | 36 | public void DrawBound() 37 | { 38 | root.DrawBound(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Scripts/Tree.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a95877c3105f994e905c908155eba04 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Texture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8368c57b3b2419a4099b743e96616f17 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Texture/Ground_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDuoLi/Unity_QuadTree_Scene-Object-Renderer-Management/4770ad3f31d8d920d1df91b04d8b1d27bff47295/Assets/Texture/Ground_01.jpg -------------------------------------------------------------------------------- /Assets/Texture/Ground_01.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2afb9393a8ab03c4bb146a04f5a8cac4 3 | timeCreated: 1515073252 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Texture/Ground_03.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDuoLi/Unity_QuadTree_Scene-Object-Renderer-Management/4770ad3f31d8d920d1df91b04d8b1d27bff47295/Assets/Texture/Ground_03.jpg -------------------------------------------------------------------------------- /Assets/Texture/Ground_03.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e05c95ae5c3329741ab9903b7f3f40a1 3 | timeCreated: 1515073254 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 KKKDL 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": "1.17.1", 4 | "com.unity.ide.rider": "3.0.15", 5 | "com.unity.ide.visualstudio": "2.0.16", 6 | "com.unity.ide.vscode": "1.2.5", 7 | "com.unity.test-framework": "1.1.31", 8 | "com.unity.textmeshpro": "3.0.6", 9 | "com.unity.timeline": "1.6.4", 10 | "com.unity.ugui": "1.0.0", 11 | "com.unity.visualscripting": "1.7.8", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": { 4 | "version": "1.17.1", 5 | "depth": 0, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.services.core": "1.0.1" 9 | }, 10 | "url": "https://packages.unity.cn" 11 | }, 12 | "com.unity.ext.nunit": { 13 | "version": "1.0.6", 14 | "depth": 1, 15 | "source": "registry", 16 | "dependencies": {}, 17 | "url": "https://packages.unity.cn" 18 | }, 19 | "com.unity.ide.rider": { 20 | "version": "3.0.15", 21 | "depth": 0, 22 | "source": "registry", 23 | "dependencies": { 24 | "com.unity.ext.nunit": "1.0.6" 25 | }, 26 | "url": "https://packages.unity.cn" 27 | }, 28 | "com.unity.ide.visualstudio": { 29 | "version": "2.0.16", 30 | "depth": 0, 31 | "source": "registry", 32 | "dependencies": { 33 | "com.unity.test-framework": "1.1.9" 34 | }, 35 | "url": "https://packages.unity.cn" 36 | }, 37 | "com.unity.ide.vscode": { 38 | "version": "1.2.5", 39 | "depth": 0, 40 | "source": "registry", 41 | "dependencies": {}, 42 | "url": "https://packages.unity.cn" 43 | }, 44 | "com.unity.nuget.newtonsoft-json": { 45 | "version": "3.0.2", 46 | "depth": 2, 47 | "source": "registry", 48 | "dependencies": {}, 49 | "url": "https://packages.unity.cn" 50 | }, 51 | "com.unity.services.core": { 52 | "version": "1.4.2", 53 | "depth": 1, 54 | "source": "registry", 55 | "dependencies": { 56 | "com.unity.modules.unitywebrequest": "1.0.0", 57 | "com.unity.nuget.newtonsoft-json": "3.0.2", 58 | "com.unity.modules.androidjni": "1.0.0" 59 | }, 60 | "url": "https://packages.unity.cn" 61 | }, 62 | "com.unity.test-framework": { 63 | "version": "1.1.31", 64 | "depth": 0, 65 | "source": "registry", 66 | "dependencies": { 67 | "com.unity.ext.nunit": "1.0.6", 68 | "com.unity.modules.imgui": "1.0.0", 69 | "com.unity.modules.jsonserialize": "1.0.0" 70 | }, 71 | "url": "https://packages.unity.cn" 72 | }, 73 | "com.unity.textmeshpro": { 74 | "version": "3.0.6", 75 | "depth": 0, 76 | "source": "registry", 77 | "dependencies": { 78 | "com.unity.ugui": "1.0.0" 79 | }, 80 | "url": "https://packages.unity.cn" 81 | }, 82 | "com.unity.timeline": { 83 | "version": "1.6.4", 84 | "depth": 0, 85 | "source": "registry", 86 | "dependencies": { 87 | "com.unity.modules.director": "1.0.0", 88 | "com.unity.modules.animation": "1.0.0", 89 | "com.unity.modules.audio": "1.0.0", 90 | "com.unity.modules.particlesystem": "1.0.0" 91 | }, 92 | "url": "https://packages.unity.cn" 93 | }, 94 | "com.unity.ugui": { 95 | "version": "1.0.0", 96 | "depth": 0, 97 | "source": "builtin", 98 | "dependencies": { 99 | "com.unity.modules.ui": "1.0.0", 100 | "com.unity.modules.imgui": "1.0.0" 101 | } 102 | }, 103 | "com.unity.visualscripting": { 104 | "version": "1.7.8", 105 | "depth": 0, 106 | "source": "registry", 107 | "dependencies": { 108 | "com.unity.ugui": "1.0.0", 109 | "com.unity.modules.jsonserialize": "1.0.0" 110 | }, 111 | "url": "https://packages.unity.cn" 112 | }, 113 | "com.unity.modules.ai": { 114 | "version": "1.0.0", 115 | "depth": 0, 116 | "source": "builtin", 117 | "dependencies": {} 118 | }, 119 | "com.unity.modules.androidjni": { 120 | "version": "1.0.0", 121 | "depth": 0, 122 | "source": "builtin", 123 | "dependencies": {} 124 | }, 125 | "com.unity.modules.animation": { 126 | "version": "1.0.0", 127 | "depth": 0, 128 | "source": "builtin", 129 | "dependencies": {} 130 | }, 131 | "com.unity.modules.assetbundle": { 132 | "version": "1.0.0", 133 | "depth": 0, 134 | "source": "builtin", 135 | "dependencies": {} 136 | }, 137 | "com.unity.modules.audio": { 138 | "version": "1.0.0", 139 | "depth": 0, 140 | "source": "builtin", 141 | "dependencies": {} 142 | }, 143 | "com.unity.modules.cloth": { 144 | "version": "1.0.0", 145 | "depth": 0, 146 | "source": "builtin", 147 | "dependencies": { 148 | "com.unity.modules.physics": "1.0.0" 149 | } 150 | }, 151 | "com.unity.modules.director": { 152 | "version": "1.0.0", 153 | "depth": 0, 154 | "source": "builtin", 155 | "dependencies": { 156 | "com.unity.modules.audio": "1.0.0", 157 | "com.unity.modules.animation": "1.0.0" 158 | } 159 | }, 160 | "com.unity.modules.imageconversion": { 161 | "version": "1.0.0", 162 | "depth": 0, 163 | "source": "builtin", 164 | "dependencies": {} 165 | }, 166 | "com.unity.modules.imgui": { 167 | "version": "1.0.0", 168 | "depth": 0, 169 | "source": "builtin", 170 | "dependencies": {} 171 | }, 172 | "com.unity.modules.jsonserialize": { 173 | "version": "1.0.0", 174 | "depth": 0, 175 | "source": "builtin", 176 | "dependencies": {} 177 | }, 178 | "com.unity.modules.particlesystem": { 179 | "version": "1.0.0", 180 | "depth": 0, 181 | "source": "builtin", 182 | "dependencies": {} 183 | }, 184 | "com.unity.modules.physics": { 185 | "version": "1.0.0", 186 | "depth": 0, 187 | "source": "builtin", 188 | "dependencies": {} 189 | }, 190 | "com.unity.modules.physics2d": { 191 | "version": "1.0.0", 192 | "depth": 0, 193 | "source": "builtin", 194 | "dependencies": {} 195 | }, 196 | "com.unity.modules.screencapture": { 197 | "version": "1.0.0", 198 | "depth": 0, 199 | "source": "builtin", 200 | "dependencies": { 201 | "com.unity.modules.imageconversion": "1.0.0" 202 | } 203 | }, 204 | "com.unity.modules.subsystems": { 205 | "version": "1.0.0", 206 | "depth": 1, 207 | "source": "builtin", 208 | "dependencies": { 209 | "com.unity.modules.jsonserialize": "1.0.0" 210 | } 211 | }, 212 | "com.unity.modules.terrain": { 213 | "version": "1.0.0", 214 | "depth": 0, 215 | "source": "builtin", 216 | "dependencies": {} 217 | }, 218 | "com.unity.modules.terrainphysics": { 219 | "version": "1.0.0", 220 | "depth": 0, 221 | "source": "builtin", 222 | "dependencies": { 223 | "com.unity.modules.physics": "1.0.0", 224 | "com.unity.modules.terrain": "1.0.0" 225 | } 226 | }, 227 | "com.unity.modules.tilemap": { 228 | "version": "1.0.0", 229 | "depth": 0, 230 | "source": "builtin", 231 | "dependencies": { 232 | "com.unity.modules.physics2d": "1.0.0" 233 | } 234 | }, 235 | "com.unity.modules.ui": { 236 | "version": "1.0.0", 237 | "depth": 0, 238 | "source": "builtin", 239 | "dependencies": {} 240 | }, 241 | "com.unity.modules.uielements": { 242 | "version": "1.0.0", 243 | "depth": 0, 244 | "source": "builtin", 245 | "dependencies": { 246 | "com.unity.modules.ui": "1.0.0", 247 | "com.unity.modules.imgui": "1.0.0", 248 | "com.unity.modules.jsonserialize": "1.0.0", 249 | "com.unity.modules.uielementsnative": "1.0.0" 250 | } 251 | }, 252 | "com.unity.modules.uielementsnative": { 253 | "version": "1.0.0", 254 | "depth": 1, 255 | "source": "builtin", 256 | "dependencies": { 257 | "com.unity.modules.ui": "1.0.0", 258 | "com.unity.modules.imgui": "1.0.0", 259 | "com.unity.modules.jsonserialize": "1.0.0" 260 | } 261 | }, 262 | "com.unity.modules.umbra": { 263 | "version": "1.0.0", 264 | "depth": 0, 265 | "source": "builtin", 266 | "dependencies": {} 267 | }, 268 | "com.unity.modules.unityanalytics": { 269 | "version": "1.0.0", 270 | "depth": 0, 271 | "source": "builtin", 272 | "dependencies": { 273 | "com.unity.modules.unitywebrequest": "1.0.0", 274 | "com.unity.modules.jsonserialize": "1.0.0" 275 | } 276 | }, 277 | "com.unity.modules.unitywebrequest": { 278 | "version": "1.0.0", 279 | "depth": 0, 280 | "source": "builtin", 281 | "dependencies": {} 282 | }, 283 | "com.unity.modules.unitywebrequestassetbundle": { 284 | "version": "1.0.0", 285 | "depth": 0, 286 | "source": "builtin", 287 | "dependencies": { 288 | "com.unity.modules.assetbundle": "1.0.0", 289 | "com.unity.modules.unitywebrequest": "1.0.0" 290 | } 291 | }, 292 | "com.unity.modules.unitywebrequestaudio": { 293 | "version": "1.0.0", 294 | "depth": 0, 295 | "source": "builtin", 296 | "dependencies": { 297 | "com.unity.modules.unitywebrequest": "1.0.0", 298 | "com.unity.modules.audio": "1.0.0" 299 | } 300 | }, 301 | "com.unity.modules.unitywebrequesttexture": { 302 | "version": "1.0.0", 303 | "depth": 0, 304 | "source": "builtin", 305 | "dependencies": { 306 | "com.unity.modules.unitywebrequest": "1.0.0", 307 | "com.unity.modules.imageconversion": "1.0.0" 308 | } 309 | }, 310 | "com.unity.modules.unitywebrequestwww": { 311 | "version": "1.0.0", 312 | "depth": 0, 313 | "source": "builtin", 314 | "dependencies": { 315 | "com.unity.modules.unitywebrequest": "1.0.0", 316 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 317 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 318 | "com.unity.modules.audio": "1.0.0", 319 | "com.unity.modules.assetbundle": "1.0.0", 320 | "com.unity.modules.imageconversion": "1.0.0" 321 | } 322 | }, 323 | "com.unity.modules.vehicles": { 324 | "version": "1.0.0", 325 | "depth": 0, 326 | "source": "builtin", 327 | "dependencies": { 328 | "com.unity.modules.physics": "1.0.0" 329 | } 330 | }, 331 | "com.unity.modules.video": { 332 | "version": "1.0.0", 333 | "depth": 0, 334 | "source": "builtin", 335 | "dependencies": { 336 | "com.unity.modules.audio": "1.0.0", 337 | "com.unity.modules.ui": "1.0.0", 338 | "com.unity.modules.unitywebrequest": "1.0.0" 339 | } 340 | }, 341 | "com.unity.modules.vr": { 342 | "version": "1.0.0", 343 | "depth": 0, 344 | "source": "builtin", 345 | "dependencies": { 346 | "com.unity.modules.jsonserialize": "1.0.0", 347 | "com.unity.modules.physics": "1.0.0", 348 | "com.unity.modules.xr": "1.0.0" 349 | } 350 | }, 351 | "com.unity.modules.wind": { 352 | "version": "1.0.0", 353 | "depth": 0, 354 | "source": "builtin", 355 | "dependencies": {} 356 | }, 357 | "com.unity.modules.xr": { 358 | "version": "1.0.0", 359 | "depth": 0, 360 | "source": "builtin", 361 | "dependencies": { 362 | "com.unity.modules.physics": "1.0.0", 363 | "com.unity.modules.jsonserialize": "1.0.0", 364 | "com.unity.modules.subsystems": "1.0.0" 365 | } 366 | } 367 | } 368 | } 369 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /ProjectSettings/AutoStreamingSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1200 &1 4 | AutoStreamingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | mSearchMode: 15 8 | mCustomSearchFile: 9 | mTextureSearchString: 10 | mMeshSearchString: 11 | mTextures: [] 12 | mAudios: [] 13 | mMeshes: [] 14 | mScenes: [] 15 | mConfigCCD: 16 | useCCD: 0 17 | cosKey: 18 | projectGuid: 19 | bucketUuid: 20 | bucketName: 21 | badgeName: 22 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/1.unity 10 | guid: 7fe47dd688bcf664ca58be04d8b1643f 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 31 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 13 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | m_PreloadedShaders: [] 39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 40 | type: 0} 41 | m_CustomRenderPipeline: {fileID: 0} 42 | m_TransparencySortMode: 0 43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 44 | m_DefaultRenderingPath: 1 45 | m_DefaultMobileRenderingPath: 1 46 | m_TierSettings: [] 47 | m_LightmapStripping: 0 48 | m_FogStripping: 0 49 | m_InstancingStripping: 0 50 | m_LightmapKeepPlain: 1 51 | m_LightmapKeepDirCombined: 1 52 | m_LightmapKeepDynamicPlain: 1 53 | m_LightmapKeepDynamicDirCombined: 1 54 | m_LightmapKeepShadowMask: 1 55 | m_LightmapKeepSubtractive: 1 56 | m_FogKeepLinear: 1 57 | m_FogKeepExp: 1 58 | m_FogKeepExp2: 1 59 | m_AlbedoSwatchInfos: [] 60 | m_LightsUseLinearIntensity: 0 61 | m_LightsUseColorTemperature: 0 62 | m_LogWhenShaderIsCompiled: 0 63 | m_AllowEnlightenSupportForUpgradedProject: 0 64 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.cn 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_UserSelectedRegistryName: 29 | m_UserAddingNewScopedRegistry: 0 30 | m_RegistryInfoDraft: 31 | m_Modified: 0 32 | m_ErrorMessage: 33 | m_UserModificationsInstanceId: -834 34 | m_OriginalInstanceId: -836 35 | m_LoadAssets: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "m_Name": "Settings", 3 | "m_Path": "ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json", 4 | "m_Dictionary": { 5 | "m_DictionaryValues": [] 6 | } 7 | } -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 23 7 | productGUID: 02f46f1836a020145aad022ba8de39eb 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: QuadSJ 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_ShowUnitySplashAds: 0 45 | m_AdsAndroidGameId: 46 | m_AdsIosGameId: 47 | m_ShowSplashAdsSlogan: 0 48 | m_SloganImage: {fileID: 0} 49 | m_SloganHeight: 150 50 | m_HolographicTrackingLossScreen: {fileID: 0} 51 | defaultScreenWidth: 1920 52 | defaultScreenHeight: 1080 53 | defaultScreenWidthWeb: 960 54 | defaultScreenHeightWeb: 600 55 | m_StereoRenderingPath: 0 56 | m_ActiveColorSpace: 0 57 | m_MTRendering: 1 58 | mipStripping: 0 59 | numberOfMipsStripped: 0 60 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 61 | iosShowActivityIndicatorOnLoading: -1 62 | androidShowActivityIndicatorOnLoading: -1 63 | iosUseCustomAppBackgroundBehavior: 0 64 | iosAllowHTTPDownload: 1 65 | allowedAutorotateToPortrait: 1 66 | allowedAutorotateToPortraitUpsideDown: 1 67 | allowedAutorotateToLandscapeRight: 1 68 | allowedAutorotateToLandscapeLeft: 1 69 | useOSAutorotation: 1 70 | use32BitDisplayBuffer: 1 71 | preserveFramebufferAlpha: 0 72 | disableDepthAndStencilBuffers: 0 73 | androidStartInFullscreen: 1 74 | androidRenderOutsideSafeArea: 1 75 | androidUseSwappy: 1 76 | androidBlitType: 0 77 | androidResizableWindow: 0 78 | androidDefaultWindowWidth: 1920 79 | androidDefaultWindowHeight: 1080 80 | androidMinimumWindowWidth: 400 81 | androidMinimumWindowHeight: 300 82 | androidFullscreenMode: 1 83 | defaultIsNativeResolution: 1 84 | macRetinaSupport: 1 85 | runInBackground: 1 86 | captureSingleScreen: 0 87 | muteOtherAudioSources: 0 88 | Prepare IOS For Recording: 0 89 | Force IOS Speakers When Recording: 0 90 | deferSystemGesturesMode: 0 91 | hideHomeButton: 0 92 | submitAnalytics: 1 93 | usePlayerLog: 1 94 | autoStreaming: 0 95 | useAnimationStreaming: 0 96 | useFontStreaming: 0 97 | autoStreamingId: 98 | instantGameAppId: 99 | bakeCollisionMeshes: 0 100 | forceSingleInstance: 0 101 | useFlipModelSwapchain: 1 102 | resizableWindow: 0 103 | useMacAppStoreValidation: 0 104 | macAppStoreCategory: public.app-category.games 105 | gpuSkinning: 1 106 | xboxPIXTextureCapture: 0 107 | xboxEnableAvatar: 0 108 | xboxEnableKinect: 0 109 | xboxEnableKinectAutoTracking: 0 110 | xboxEnableFitness: 0 111 | visibleInBackground: 1 112 | allowFullscreenSwitch: 1 113 | fullscreenMode: 1 114 | xboxSpeechDB: 0 115 | xboxEnableHeadOrientation: 0 116 | xboxEnableGuest: 0 117 | xboxEnablePIXSampling: 0 118 | metalFramebufferOnly: 0 119 | xboxOneResolution: 0 120 | xboxOneSResolution: 0 121 | xboxOneXResolution: 3 122 | xboxOneMonoLoggingLevel: 0 123 | xboxOneLoggingLevel: 1 124 | xboxOneDisableEsram: 0 125 | xboxOneEnableTypeOptimization: 0 126 | xboxOnePresentImmediateThreshold: 0 127 | switchQueueCommandMemory: 0 128 | switchQueueControlMemory: 16384 129 | switchQueueComputeMemory: 262144 130 | switchNVNShaderPoolsGranularity: 33554432 131 | switchNVNDefaultPoolsGranularity: 16777216 132 | switchNVNOtherPoolsGranularity: 16777216 133 | switchNVNMaxPublicTextureIDCount: 0 134 | switchNVNMaxPublicSamplerIDCount: 0 135 | stadiaPresentMode: 0 136 | stadiaTargetFramerate: 0 137 | vulkanNumSwapchainBuffers: 3 138 | vulkanEnableSetSRGBWrite: 0 139 | vulkanEnablePreTransform: 1 140 | vulkanEnableLateAcquireNextImage: 0 141 | vulkanEnableCommandBufferRecycling: 1 142 | m_SupportedAspectRatios: 143 | 4:3: 1 144 | 5:4: 1 145 | 16:10: 1 146 | 16:9: 1 147 | Others: 1 148 | bundleVersion: 0.1 149 | preloadedAssets: [] 150 | metroInputSource: 0 151 | wsaTransparentSwapchain: 0 152 | m_HolographicPauseOnTrackingLoss: 1 153 | xboxOneDisableKinectGpuReservation: 1 154 | xboxOneEnable7thCore: 1 155 | vrSettings: 156 | enable360StereoCapture: 0 157 | isWsaHolographicRemotingEnabled: 0 158 | enableFrameTimingStats: 0 159 | enableOpenGLProfilerGPURecorders: 1 160 | useHDRDisplay: 0 161 | D3DHDRBitDepth: 0 162 | m_ColorGamuts: 00000000 163 | targetPixelDensity: 30 164 | resolutionScalingMode: 0 165 | resetResolutionOnWindowResize: 0 166 | androidSupportedAspectRatio: 1 167 | androidMaxAspectRatio: 2.1 168 | applicationIdentifier: {} 169 | buildNumber: 170 | Standalone: 0 171 | iPhone: 0 172 | tvOS: 0 173 | overrideDefaultApplicationIdentifier: 0 174 | AndroidBundleVersionCode: 1 175 | AndroidMinSdkVersion: 22 176 | AndroidTargetSdkVersion: 0 177 | AndroidPreferredInstallLocation: 1 178 | aotOptions: 179 | stripEngineCode: 1 180 | iPhoneStrippingLevel: 0 181 | iPhoneScriptCallOptimization: 0 182 | ForceInternetPermission: 0 183 | ForceSDCardPermission: 0 184 | CreateWallpaper: 0 185 | APKExpansionFiles: 0 186 | keepLoadedShadersAlive: 0 187 | StripUnusedMeshComponents: 1 188 | VertexChannelCompressionMask: 4054 189 | iPhoneSdkVersion: 988 190 | iOSTargetOSVersionString: 11.0 191 | tvOSSdkVersion: 0 192 | tvOSRequireExtendedGameController: 0 193 | tvOSTargetOSVersionString: 11.0 194 | uIPrerenderedIcon: 0 195 | uIRequiresPersistentWiFi: 0 196 | uIRequiresFullScreen: 1 197 | uIStatusBarHidden: 1 198 | uIExitOnSuspend: 0 199 | uIStatusBarStyle: 0 200 | appleTVSplashScreen: {fileID: 0} 201 | appleTVSplashScreen2x: {fileID: 0} 202 | tvOSSmallIconLayers: [] 203 | tvOSSmallIconLayers2x: [] 204 | tvOSLargeIconLayers: [] 205 | tvOSLargeIconLayers2x: [] 206 | tvOSTopShelfImageLayers: [] 207 | tvOSTopShelfImageLayers2x: [] 208 | tvOSTopShelfImageWideLayers: [] 209 | tvOSTopShelfImageWideLayers2x: [] 210 | iOSLaunchScreenType: 0 211 | iOSLaunchScreenPortrait: {fileID: 0} 212 | iOSLaunchScreenLandscape: {fileID: 0} 213 | iOSLaunchScreenBackgroundColor: 214 | serializedVersion: 2 215 | rgba: 0 216 | iOSLaunchScreenFillPct: 100 217 | iOSLaunchScreenSize: 100 218 | iOSLaunchScreenCustomXibPath: 219 | iOSLaunchScreeniPadType: 0 220 | iOSLaunchScreeniPadImage: {fileID: 0} 221 | iOSLaunchScreeniPadBackgroundColor: 222 | serializedVersion: 2 223 | rgba: 0 224 | iOSLaunchScreeniPadFillPct: 100 225 | iOSLaunchScreeniPadSize: 100 226 | iOSLaunchScreeniPadCustomXibPath: 227 | iOSLaunchScreenCustomStoryboardPath: 228 | iOSLaunchScreeniPadCustomStoryboardPath: 229 | iOSDeviceRequirements: [] 230 | iOSURLSchemes: [] 231 | macOSURLSchemes: [] 232 | iOSBackgroundModes: 0 233 | iOSMetalForceHardShadows: 0 234 | metalEditorSupport: 1 235 | metalAPIValidation: 1 236 | iOSRenderExtraFrameOnPause: 0 237 | iosCopyPluginsCodeInsteadOfSymlink: 0 238 | appleDeveloperTeamID: 239 | iOSManualSigningProvisioningProfileID: 240 | tvOSManualSigningProvisioningProfileID: 241 | iOSManualSigningProvisioningProfileType: 0 242 | tvOSManualSigningProvisioningProfileType: 0 243 | appleEnableAutomaticSigning: 0 244 | iOSRequireARKit: 0 245 | iOSAutomaticallyDetectAndAddCapabilities: 1 246 | appleEnableProMotion: 0 247 | shaderPrecisionModel: 0 248 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea 249 | templatePackageId: com.unity.template.3d@8.1.0 250 | templateDefaultScene: Assets/Scenes/SampleScene.unity 251 | useCustomMainManifest: 0 252 | useCustomLauncherManifest: 0 253 | useCustomMainGradleTemplate: 0 254 | useCustomLauncherGradleManifest: 0 255 | useCustomBaseGradleTemplate: 0 256 | useCustomGradlePropertiesTemplate: 0 257 | useCustomProguardFile: 0 258 | AndroidTargetArchitectures: 1 259 | AndroidTargetDevices: 0 260 | AndroidSplashScreenScale: 0 261 | androidSplashScreen: {fileID: 0} 262 | AndroidKeystoreName: 263 | AndroidKeyaliasName: 264 | AndroidBuildApkPerCpuArchitecture: 0 265 | AndroidTVCompatibility: 0 266 | AndroidIsGame: 1 267 | AndroidEnableTango: 0 268 | androidEnableBanner: 1 269 | androidUseLowAccuracyLocation: 0 270 | androidUseCustomKeystore: 0 271 | m_AndroidBanners: 272 | - width: 320 273 | height: 180 274 | banner: {fileID: 0} 275 | androidGamepadSupportLevel: 0 276 | chromeosInputEmulation: 1 277 | AndroidMinifyWithR8: 0 278 | AndroidMinifyRelease: 0 279 | AndroidMinifyDebug: 0 280 | AndroidValidateAppBundleSize: 1 281 | AndroidAppBundleSizeToValidate: 150 282 | m_BuildTargetIcons: [] 283 | m_BuildTargetPlatformIcons: 284 | - m_BuildTarget: Android 285 | m_Icons: 286 | - m_Textures: [] 287 | m_Width: 432 288 | m_Height: 432 289 | m_Kind: 2 290 | m_SubKind: 291 | - m_Textures: [] 292 | m_Width: 324 293 | m_Height: 324 294 | m_Kind: 2 295 | m_SubKind: 296 | - m_Textures: [] 297 | m_Width: 216 298 | m_Height: 216 299 | m_Kind: 2 300 | m_SubKind: 301 | - m_Textures: [] 302 | m_Width: 162 303 | m_Height: 162 304 | m_Kind: 2 305 | m_SubKind: 306 | - m_Textures: [] 307 | m_Width: 108 308 | m_Height: 108 309 | m_Kind: 2 310 | m_SubKind: 311 | - m_Textures: [] 312 | m_Width: 81 313 | m_Height: 81 314 | m_Kind: 2 315 | m_SubKind: 316 | - m_Textures: [] 317 | m_Width: 192 318 | m_Height: 192 319 | m_Kind: 1 320 | m_SubKind: 321 | - m_Textures: [] 322 | m_Width: 144 323 | m_Height: 144 324 | m_Kind: 1 325 | m_SubKind: 326 | - m_Textures: [] 327 | m_Width: 96 328 | m_Height: 96 329 | m_Kind: 1 330 | m_SubKind: 331 | - m_Textures: [] 332 | m_Width: 72 333 | m_Height: 72 334 | m_Kind: 1 335 | m_SubKind: 336 | - m_Textures: [] 337 | m_Width: 48 338 | m_Height: 48 339 | m_Kind: 1 340 | m_SubKind: 341 | - m_Textures: [] 342 | m_Width: 36 343 | m_Height: 36 344 | m_Kind: 1 345 | m_SubKind: 346 | - m_Textures: [] 347 | m_Width: 192 348 | m_Height: 192 349 | m_Kind: 0 350 | m_SubKind: 351 | - m_Textures: [] 352 | m_Width: 144 353 | m_Height: 144 354 | m_Kind: 0 355 | m_SubKind: 356 | - m_Textures: [] 357 | m_Width: 96 358 | m_Height: 96 359 | m_Kind: 0 360 | m_SubKind: 361 | - m_Textures: [] 362 | m_Width: 72 363 | m_Height: 72 364 | m_Kind: 0 365 | m_SubKind: 366 | - m_Textures: [] 367 | m_Width: 48 368 | m_Height: 48 369 | m_Kind: 0 370 | m_SubKind: 371 | - m_Textures: [] 372 | m_Width: 36 373 | m_Height: 36 374 | m_Kind: 0 375 | m_SubKind: 376 | m_BuildTargetBatching: 377 | - m_BuildTarget: Standalone 378 | m_StaticBatching: 1 379 | m_DynamicBatching: 0 380 | - m_BuildTarget: tvOS 381 | m_StaticBatching: 1 382 | m_DynamicBatching: 0 383 | - m_BuildTarget: Android 384 | m_StaticBatching: 1 385 | m_DynamicBatching: 0 386 | - m_BuildTarget: iPhone 387 | m_StaticBatching: 1 388 | m_DynamicBatching: 0 389 | - m_BuildTarget: WebGL 390 | m_StaticBatching: 0 391 | m_DynamicBatching: 0 392 | m_BuildTargetGraphicsJobs: 393 | - m_BuildTarget: MacStandaloneSupport 394 | m_GraphicsJobs: 0 395 | - m_BuildTarget: Switch 396 | m_GraphicsJobs: 1 397 | - m_BuildTarget: MetroSupport 398 | m_GraphicsJobs: 1 399 | - m_BuildTarget: AppleTVSupport 400 | m_GraphicsJobs: 0 401 | - m_BuildTarget: BJMSupport 402 | m_GraphicsJobs: 1 403 | - m_BuildTarget: LinuxStandaloneSupport 404 | m_GraphicsJobs: 1 405 | - m_BuildTarget: PS4Player 406 | m_GraphicsJobs: 1 407 | - m_BuildTarget: iOSSupport 408 | m_GraphicsJobs: 0 409 | - m_BuildTarget: WindowsStandaloneSupport 410 | m_GraphicsJobs: 1 411 | - m_BuildTarget: XboxOnePlayer 412 | m_GraphicsJobs: 1 413 | - m_BuildTarget: LuminSupport 414 | m_GraphicsJobs: 0 415 | - m_BuildTarget: AndroidPlayer 416 | m_GraphicsJobs: 0 417 | - m_BuildTarget: WebGLSupport 418 | m_GraphicsJobs: 0 419 | m_BuildTargetGraphicsJobMode: 420 | - m_BuildTarget: PS4Player 421 | m_GraphicsJobMode: 0 422 | - m_BuildTarget: XboxOnePlayer 423 | m_GraphicsJobMode: 0 424 | m_BuildTargetGraphicsAPIs: 425 | - m_BuildTarget: AndroidPlayer 426 | m_APIs: 150000000b000000 427 | m_Automatic: 1 428 | - m_BuildTarget: iOSSupport 429 | m_APIs: 10000000 430 | m_Automatic: 1 431 | - m_BuildTarget: AppleTVSupport 432 | m_APIs: 10000000 433 | m_Automatic: 1 434 | - m_BuildTarget: WebGLSupport 435 | m_APIs: 0b000000 436 | m_Automatic: 1 437 | m_BuildTargetVRSettings: 438 | - m_BuildTarget: Standalone 439 | m_Enabled: 0 440 | m_Devices: 441 | - Oculus 442 | - OpenVR 443 | openGLRequireES31: 0 444 | openGLRequireES31AEP: 0 445 | openGLRequireES32: 0 446 | m_TemplateCustomTags: {} 447 | mobileMTRendering: 448 | Android: 1 449 | iPhone: 1 450 | tvOS: 1 451 | m_BuildTargetGroupLightmapEncodingQuality: 452 | - m_BuildTarget: Android 453 | m_EncodingQuality: 1 454 | - m_BuildTarget: iPhone 455 | m_EncodingQuality: 1 456 | - m_BuildTarget: tvOS 457 | m_EncodingQuality: 1 458 | m_BuildTargetGroupLightmapSettings: [] 459 | m_BuildTargetNormalMapEncoding: 460 | - m_BuildTarget: Android 461 | m_Encoding: 1 462 | - m_BuildTarget: iPhone 463 | m_Encoding: 1 464 | - m_BuildTarget: tvOS 465 | m_Encoding: 1 466 | m_BuildTargetDefaultTextureCompressionFormat: 467 | - m_BuildTarget: Android 468 | m_Format: 3 469 | playModeTestRunnerEnabled: 0 470 | runPlayModeTestAsEditModeTest: 0 471 | actionOnDotNetUnhandledException: 1 472 | enableInternalProfiler: 0 473 | logObjCUncaughtExceptions: 1 474 | enableCrashReportAPI: 0 475 | cameraUsageDescription: 476 | locationUsageDescription: 477 | microphoneUsageDescription: 478 | bluetoothUsageDescription: 479 | switchNMETAOverride: 480 | switchNetLibKey: 481 | switchSocketMemoryPoolSize: 6144 482 | switchSocketAllocatorPoolSize: 128 483 | switchSocketConcurrencyLimit: 14 484 | switchScreenResolutionBehavior: 2 485 | switchUseCPUProfiler: 0 486 | switchUseGOLDLinker: 0 487 | switchLTOSetting: 0 488 | switchApplicationID: 0x01004b9000490000 489 | switchNSODependencies: 490 | switchTitleNames_0: 491 | switchTitleNames_1: 492 | switchTitleNames_2: 493 | switchTitleNames_3: 494 | switchTitleNames_4: 495 | switchTitleNames_5: 496 | switchTitleNames_6: 497 | switchTitleNames_7: 498 | switchTitleNames_8: 499 | switchTitleNames_9: 500 | switchTitleNames_10: 501 | switchTitleNames_11: 502 | switchTitleNames_12: 503 | switchTitleNames_13: 504 | switchTitleNames_14: 505 | switchTitleNames_15: 506 | switchPublisherNames_0: 507 | switchPublisherNames_1: 508 | switchPublisherNames_2: 509 | switchPublisherNames_3: 510 | switchPublisherNames_4: 511 | switchPublisherNames_5: 512 | switchPublisherNames_6: 513 | switchPublisherNames_7: 514 | switchPublisherNames_8: 515 | switchPublisherNames_9: 516 | switchPublisherNames_10: 517 | switchPublisherNames_11: 518 | switchPublisherNames_12: 519 | switchPublisherNames_13: 520 | switchPublisherNames_14: 521 | switchPublisherNames_15: 522 | switchIcons_0: {fileID: 0} 523 | switchIcons_1: {fileID: 0} 524 | switchIcons_2: {fileID: 0} 525 | switchIcons_3: {fileID: 0} 526 | switchIcons_4: {fileID: 0} 527 | switchIcons_5: {fileID: 0} 528 | switchIcons_6: {fileID: 0} 529 | switchIcons_7: {fileID: 0} 530 | switchIcons_8: {fileID: 0} 531 | switchIcons_9: {fileID: 0} 532 | switchIcons_10: {fileID: 0} 533 | switchIcons_11: {fileID: 0} 534 | switchIcons_12: {fileID: 0} 535 | switchIcons_13: {fileID: 0} 536 | switchIcons_14: {fileID: 0} 537 | switchIcons_15: {fileID: 0} 538 | switchSmallIcons_0: {fileID: 0} 539 | switchSmallIcons_1: {fileID: 0} 540 | switchSmallIcons_2: {fileID: 0} 541 | switchSmallIcons_3: {fileID: 0} 542 | switchSmallIcons_4: {fileID: 0} 543 | switchSmallIcons_5: {fileID: 0} 544 | switchSmallIcons_6: {fileID: 0} 545 | switchSmallIcons_7: {fileID: 0} 546 | switchSmallIcons_8: {fileID: 0} 547 | switchSmallIcons_9: {fileID: 0} 548 | switchSmallIcons_10: {fileID: 0} 549 | switchSmallIcons_11: {fileID: 0} 550 | switchSmallIcons_12: {fileID: 0} 551 | switchSmallIcons_13: {fileID: 0} 552 | switchSmallIcons_14: {fileID: 0} 553 | switchSmallIcons_15: {fileID: 0} 554 | switchManualHTML: 555 | switchAccessibleURLs: 556 | switchLegalInformation: 557 | switchMainThreadStackSize: 1048576 558 | switchPresenceGroupId: 559 | switchLogoHandling: 0 560 | switchReleaseVersion: 0 561 | switchDisplayVersion: 1.0.0 562 | switchStartupUserAccount: 0 563 | switchTouchScreenUsage: 0 564 | switchSupportedLanguagesMask: 0 565 | switchLogoType: 0 566 | switchApplicationErrorCodeCategory: 567 | switchUserAccountSaveDataSize: 0 568 | switchUserAccountSaveDataJournalSize: 0 569 | switchApplicationAttribute: 0 570 | switchCardSpecSize: -1 571 | switchCardSpecClock: -1 572 | switchRatingsMask: 0 573 | switchRatingsInt_0: 0 574 | switchRatingsInt_1: 0 575 | switchRatingsInt_2: 0 576 | switchRatingsInt_3: 0 577 | switchRatingsInt_4: 0 578 | switchRatingsInt_5: 0 579 | switchRatingsInt_6: 0 580 | switchRatingsInt_7: 0 581 | switchRatingsInt_8: 0 582 | switchRatingsInt_9: 0 583 | switchRatingsInt_10: 0 584 | switchRatingsInt_11: 0 585 | switchRatingsInt_12: 0 586 | switchLocalCommunicationIds_0: 587 | switchLocalCommunicationIds_1: 588 | switchLocalCommunicationIds_2: 589 | switchLocalCommunicationIds_3: 590 | switchLocalCommunicationIds_4: 591 | switchLocalCommunicationIds_5: 592 | switchLocalCommunicationIds_6: 593 | switchLocalCommunicationIds_7: 594 | switchParentalControl: 0 595 | switchAllowsScreenshot: 1 596 | switchAllowsVideoCapturing: 1 597 | switchAllowsRuntimeAddOnContentInstall: 0 598 | switchDataLossConfirmation: 0 599 | switchUserAccountLockEnabled: 0 600 | switchSystemResourceMemory: 16777216 601 | switchSupportedNpadStyles: 22 602 | switchNativeFsCacheSize: 32 603 | switchIsHoldTypeHorizontal: 0 604 | switchSupportedNpadCount: 8 605 | switchSocketConfigEnabled: 0 606 | switchTcpInitialSendBufferSize: 32 607 | switchTcpInitialReceiveBufferSize: 64 608 | switchTcpAutoSendBufferSizeMax: 256 609 | switchTcpAutoReceiveBufferSizeMax: 256 610 | switchUdpSendBufferSize: 9 611 | switchUdpReceiveBufferSize: 42 612 | switchSocketBufferEfficiency: 4 613 | switchSocketInitializeEnabled: 1 614 | switchNetworkInterfaceManagerInitializeEnabled: 1 615 | switchPlayerConnectionEnabled: 1 616 | switchUseNewStyleFilepaths: 0 617 | switchUseMicroSleepForYield: 1 618 | switchEnableRamDiskSupport: 0 619 | switchMicroSleepForYieldTime: 25 620 | switchRamDiskSpaceSize: 12 621 | ps4NPAgeRating: 12 622 | ps4NPTitleSecret: 623 | ps4NPTrophyPackPath: 624 | ps4ParentalLevel: 11 625 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 626 | ps4Category: 0 627 | ps4MasterVersion: 01.00 628 | ps4AppVersion: 01.00 629 | ps4AppType: 0 630 | ps4ParamSfxPath: 631 | ps4VideoOutPixelFormat: 0 632 | ps4VideoOutInitialWidth: 1920 633 | ps4VideoOutBaseModeInitialWidth: 1920 634 | ps4VideoOutReprojectionRate: 60 635 | ps4PronunciationXMLPath: 636 | ps4PronunciationSIGPath: 637 | ps4BackgroundImagePath: 638 | ps4StartupImagePath: 639 | ps4StartupImagesFolder: 640 | ps4IconImagesFolder: 641 | ps4SaveDataImagePath: 642 | ps4SdkOverride: 643 | ps4BGMPath: 644 | ps4ShareFilePath: 645 | ps4ShareOverlayImagePath: 646 | ps4PrivacyGuardImagePath: 647 | ps4ExtraSceSysFile: 648 | ps4NPtitleDatPath: 649 | ps4RemotePlayKeyAssignment: -1 650 | ps4RemotePlayKeyMappingDir: 651 | ps4PlayTogetherPlayerCount: 0 652 | ps4EnterButtonAssignment: 1 653 | ps4ApplicationParam1: 0 654 | ps4ApplicationParam2: 0 655 | ps4ApplicationParam3: 0 656 | ps4ApplicationParam4: 0 657 | ps4DownloadDataSize: 0 658 | ps4GarlicHeapSize: 2048 659 | ps4ProGarlicHeapSize: 2560 660 | playerPrefsMaxSize: 32768 661 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 662 | ps4pnSessions: 1 663 | ps4pnPresence: 1 664 | ps4pnFriends: 1 665 | ps4pnGameCustomData: 1 666 | playerPrefsSupport: 0 667 | enableApplicationExit: 0 668 | resetTempFolder: 1 669 | restrictedAudioUsageRights: 0 670 | ps4UseResolutionFallback: 0 671 | ps4ReprojectionSupport: 0 672 | ps4UseAudio3dBackend: 0 673 | ps4UseLowGarlicFragmentationMode: 1 674 | ps4SocialScreenEnabled: 0 675 | ps4ScriptOptimizationLevel: 0 676 | ps4Audio3dVirtualSpeakerCount: 14 677 | ps4attribCpuUsage: 0 678 | ps4PatchPkgPath: 679 | ps4PatchLatestPkgPath: 680 | ps4PatchChangeinfoPath: 681 | ps4PatchDayOne: 0 682 | ps4attribUserManagement: 0 683 | ps4attribMoveSupport: 0 684 | ps4attrib3DSupport: 0 685 | ps4attribShareSupport: 0 686 | ps4attribExclusiveVR: 0 687 | ps4disableAutoHideSplash: 0 688 | ps4videoRecordingFeaturesUsed: 0 689 | ps4contentSearchFeaturesUsed: 0 690 | ps4CompatibilityPS5: 0 691 | ps4AllowPS5Detection: 0 692 | ps4GPU800MHz: 1 693 | ps4attribEyeToEyeDistanceSettingVR: 0 694 | ps4IncludedModules: [] 695 | ps4attribVROutputEnabled: 0 696 | monoEnv: 697 | splashScreenBackgroundSourceLandscape: {fileID: 0} 698 | splashScreenBackgroundSourcePortrait: {fileID: 0} 699 | blurSplashScreenBackground: 1 700 | spritePackerPolicy: 701 | webGLMemorySize: 16 702 | webGLExceptionSupport: 1 703 | webGLNameFilesAsHashes: 0 704 | webGLDataCaching: 1 705 | webGLDebugSymbols: 0 706 | webGLEmscriptenArgs: 707 | webGLModulesDirectory: 708 | webGLTemplate: APPLICATION:Default 709 | webGLAnalyzeBuildSize: 0 710 | webGLUseEmbeddedResources: 0 711 | webGLCompressionFormat: 1 712 | webGLWasmArithmeticExceptions: 0 713 | webGLLinkerTarget: 1 714 | webGLThreadsSupport: 0 715 | webGLDecompressionFallback: 0 716 | scriptingDefineSymbols: {} 717 | additionalCompilerArguments: {} 718 | platformArchitecture: {} 719 | scriptingBackend: {} 720 | il2cppCompilerConfiguration: {} 721 | managedStrippingLevel: {} 722 | incrementalIl2cppBuild: {} 723 | suppressCommonWarnings: 1 724 | allowUnsafeCode: 0 725 | useDeterministicCompilation: 1 726 | enableRoslynAnalyzers: 1 727 | additionalIl2CppArgs: 728 | scriptingRuntimeVersion: 1 729 | gcIncremental: 1 730 | assemblyVersionValidation: 1 731 | gcWBarrierValidation: 0 732 | apiCompatibilityLevelPerPlatform: {} 733 | m_RenderingPath: 1 734 | m_MobileRenderingPath: 1 735 | metroPackageName: Template_3D 736 | metroPackageVersion: 737 | metroCertificatePath: 738 | metroCertificatePassword: 739 | metroCertificateSubject: 740 | metroCertificateIssuer: 741 | metroCertificateNotAfter: 0000000000000000 742 | metroApplicationDescription: Template_3D 743 | wsaImages: {} 744 | metroTileShortName: 745 | metroTileShowName: 0 746 | metroMediumTileShowName: 0 747 | metroLargeTileShowName: 0 748 | metroWideTileShowName: 0 749 | metroSupportStreamingInstall: 0 750 | metroLastRequiredScene: 0 751 | metroDefaultTileSize: 1 752 | metroTileForegroundText: 2 753 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 754 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} 755 | metroSplashScreenUseBackgroundColor: 0 756 | platformCapabilities: {} 757 | metroTargetDeviceFamilies: {} 758 | metroFTAName: 759 | metroFTAFileTypes: [] 760 | metroProtocolName: 761 | vcxProjDefaultLanguage: 762 | XboxOneProductId: 763 | XboxOneUpdateKey: 764 | XboxOneSandboxId: 765 | XboxOneContentId: 766 | XboxOneTitleId: 767 | XboxOneSCId: 768 | XboxOneGameOsOverridePath: 769 | XboxOnePackagingOverridePath: 770 | XboxOneAppManifestOverridePath: 771 | XboxOneVersion: 1.0.0.0 772 | XboxOnePackageEncryption: 0 773 | XboxOnePackageUpdateGranularity: 2 774 | XboxOneDescription: 775 | XboxOneLanguage: 776 | - enus 777 | XboxOneCapability: [] 778 | XboxOneGameRating: {} 779 | XboxOneIsContentPackage: 0 780 | XboxOneEnhancedXboxCompatibilityMode: 0 781 | XboxOneEnableGPUVariability: 1 782 | XboxOneSockets: {} 783 | XboxOneSplashScreen: {fileID: 0} 784 | XboxOneAllowedProductIds: [] 785 | XboxOnePersistentLocalStorageSize: 0 786 | XboxOneXTitleMemory: 8 787 | XboxOneOverrideIdentityName: 788 | XboxOneOverrideIdentityPublisher: 789 | vrEditorSettings: {} 790 | cloudServicesEnabled: 791 | UNet: 1 792 | luminIcon: 793 | m_Name: 794 | m_ModelFolderPath: 795 | m_PortalFolderPath: 796 | luminCert: 797 | m_CertPath: 798 | m_SignPackage: 1 799 | luminIsChannelApp: 0 800 | luminVersion: 801 | m_VersionCode: 1 802 | m_VersionName: 803 | apiCompatibilityLevel: 6 804 | activeInputHandler: 0 805 | cloudProjectId: 806 | framebufferDepthMemorylessMode: 0 807 | qualitySettingsNames: [] 808 | projectName: 809 | organizationId: 810 | cloudEnabled: 0 811 | legacyClampBlendShapeWeights: 0 812 | playerDataPath: 813 | forceSRGBBlit: 1 814 | virtualTexturingSupportEnabled: 0 815 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.3.8f1c1 2 | m_EditorVersionWithRevision: 2021.3.8f1c1 (c20728c1e961) 3 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | excludedTargetPlatforms: [] 44 | - serializedVersion: 2 45 | name: Low 46 | pixelLightCount: 0 47 | shadows: 0 48 | shadowResolution: 0 49 | shadowProjection: 1 50 | shadowCascades: 1 51 | shadowDistance: 20 52 | shadowNearPlaneOffset: 3 53 | shadowCascade2Split: 0.33333334 54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 55 | shadowmaskMode: 0 56 | blendWeights: 2 57 | textureQuality: 0 58 | anisotropicTextures: 0 59 | antiAliasing: 0 60 | softParticles: 0 61 | softVegetation: 0 62 | realtimeReflectionProbes: 0 63 | billboardsFaceCameraPosition: 0 64 | vSyncCount: 0 65 | lodBias: 0.4 66 | maximumLODLevel: 0 67 | streamingMipmapsActive: 0 68 | streamingMipmapsAddAllCameras: 1 69 | streamingMipmapsMemoryBudget: 512 70 | streamingMipmapsRenderersPerFrame: 512 71 | streamingMipmapsMaxLevelReduction: 2 72 | streamingMipmapsMaxFileIORequests: 1024 73 | particleRaycastBudget: 16 74 | asyncUploadTimeSlice: 2 75 | asyncUploadBufferSize: 16 76 | asyncUploadPersistentBuffer: 1 77 | resolutionScalingFixedDPIFactor: 1 78 | excludedTargetPlatforms: [] 79 | - serializedVersion: 2 80 | name: Medium 81 | pixelLightCount: 1 82 | shadows: 1 83 | shadowResolution: 0 84 | shadowProjection: 1 85 | shadowCascades: 1 86 | shadowDistance: 20 87 | shadowNearPlaneOffset: 3 88 | shadowCascade2Split: 0.33333334 89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 90 | shadowmaskMode: 0 91 | blendWeights: 2 92 | textureQuality: 0 93 | anisotropicTextures: 1 94 | antiAliasing: 0 95 | softParticles: 0 96 | softVegetation: 0 97 | realtimeReflectionProbes: 0 98 | billboardsFaceCameraPosition: 0 99 | vSyncCount: 1 100 | lodBias: 0.7 101 | maximumLODLevel: 0 102 | streamingMipmapsActive: 0 103 | streamingMipmapsAddAllCameras: 1 104 | streamingMipmapsMemoryBudget: 512 105 | streamingMipmapsRenderersPerFrame: 512 106 | streamingMipmapsMaxLevelReduction: 2 107 | streamingMipmapsMaxFileIORequests: 1024 108 | particleRaycastBudget: 64 109 | asyncUploadTimeSlice: 2 110 | asyncUploadBufferSize: 16 111 | asyncUploadPersistentBuffer: 1 112 | resolutionScalingFixedDPIFactor: 1 113 | excludedTargetPlatforms: [] 114 | - serializedVersion: 2 115 | name: High 116 | pixelLightCount: 2 117 | shadows: 2 118 | shadowResolution: 1 119 | shadowProjection: 1 120 | shadowCascades: 2 121 | shadowDistance: 40 122 | shadowNearPlaneOffset: 3 123 | shadowCascade2Split: 0.33333334 124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 125 | shadowmaskMode: 1 126 | blendWeights: 2 127 | textureQuality: 0 128 | anisotropicTextures: 1 129 | antiAliasing: 0 130 | softParticles: 0 131 | softVegetation: 1 132 | realtimeReflectionProbes: 1 133 | billboardsFaceCameraPosition: 1 134 | vSyncCount: 1 135 | lodBias: 1 136 | maximumLODLevel: 0 137 | streamingMipmapsActive: 0 138 | streamingMipmapsAddAllCameras: 1 139 | streamingMipmapsMemoryBudget: 512 140 | streamingMipmapsRenderersPerFrame: 512 141 | streamingMipmapsMaxLevelReduction: 2 142 | streamingMipmapsMaxFileIORequests: 1024 143 | particleRaycastBudget: 256 144 | asyncUploadTimeSlice: 2 145 | asyncUploadBufferSize: 16 146 | asyncUploadPersistentBuffer: 1 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Very High 151 | pixelLightCount: 3 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 2 156 | shadowDistance: 70 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 1.5 171 | maximumLODLevel: 0 172 | streamingMipmapsActive: 0 173 | streamingMipmapsAddAllCameras: 1 174 | streamingMipmapsMemoryBudget: 512 175 | streamingMipmapsRenderersPerFrame: 512 176 | streamingMipmapsMaxLevelReduction: 2 177 | streamingMipmapsMaxFileIORequests: 1024 178 | particleRaycastBudget: 1024 179 | asyncUploadTimeSlice: 2 180 | asyncUploadBufferSize: 16 181 | asyncUploadPersistentBuffer: 1 182 | resolutionScalingFixedDPIFactor: 1 183 | excludedTargetPlatforms: [] 184 | - serializedVersion: 2 185 | name: Ultra 186 | pixelLightCount: 4 187 | shadows: 2 188 | shadowResolution: 2 189 | shadowProjection: 1 190 | shadowCascades: 4 191 | shadowDistance: 150 192 | shadowNearPlaneOffset: 3 193 | shadowCascade2Split: 0.33333334 194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 195 | shadowmaskMode: 1 196 | blendWeights: 4 197 | textureQuality: 0 198 | anisotropicTextures: 2 199 | antiAliasing: 2 200 | softParticles: 1 201 | softVegetation: 1 202 | realtimeReflectionProbes: 1 203 | billboardsFaceCameraPosition: 1 204 | vSyncCount: 1 205 | lodBias: 2 206 | maximumLODLevel: 0 207 | streamingMipmapsActive: 0 208 | streamingMipmapsAddAllCameras: 1 209 | streamingMipmapsMemoryBudget: 512 210 | streamingMipmapsRenderersPerFrame: 512 211 | streamingMipmapsMaxLevelReduction: 2 212 | streamingMipmapsMaxFileIORequests: 1024 213 | particleRaycastBudget: 4096 214 | asyncUploadTimeSlice: 2 215 | asyncUploadBufferSize: 16 216 | asyncUploadPersistentBuffer: 1 217 | resolutionScalingFixedDPIFactor: 1 218 | excludedTargetPlatforms: [] 219 | m_PerPlatformDefaultQuality: 220 | Android: 2 221 | Lumin: 5 222 | Nintendo 3DS: 5 223 | Nintendo Switch: 5 224 | PS4: 5 225 | PSP2: 2 226 | Stadia: 5 227 | Standalone: 5 228 | WebGL: 3 229 | Windows Store Apps: 5 230 | XboxOne: 5 231 | iPhone: 2 232 | tvOS: 2 233 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_CNEventUrl: https://cdp.cloud.unity.cn/v1/events 14 | m_CNConfigUrl: https://cdp.cloud.unity.cn/config 15 | m_TestInitMode: 0 16 | CrashReportingSettings: 17 | m_EventUrl: https://perf-events.cloud.unity.cn 18 | m_Enabled: 0 19 | m_LogBufferSize: 10 20 | m_CaptureEditorExceptions: 1 21 | UnityPurchasingSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | UnityAnalyticsSettings: 25 | m_Enabled: 1 26 | m_TestMode: 0 27 | m_InitializeOnStartup: 1 28 | UnityAdsSettings: 29 | m_Enabled: 0 30 | m_InitializeOnStartup: 1 31 | m_TestMode: 0 32 | m_IosGameId: 33 | m_AndroidGameId: 34 | m_GameIds: {} 35 | m_GameId: 36 | PerformanceReportingSettings: 37 | m_Enabled: 0 38 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /ProjectSettings/boot.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KDuoLi/Unity_QuadTree_Scene-Object-Renderer-Management/4770ad3f31d8d920d1df91b04d8b1d27bff47295/ProjectSettings/boot.config -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # QuadTree 2 | - Unity版本:2021.3(LTS) 3 | - 使用四叉树对场景物体的静态物体和动态物体进行渲染管理 4 | - 几个问题: 5 | 1. 为什么需要四叉树? 6 | - 虽然Unity默认开启视锥体剔除,视锥体剔除是在应用阶段通过视锥体与模型的AABB包围盒的八个顶点来判断该模型是否被剔除。但是,如果场景中的物体过多时,每次渲染前都要进行很多次判断,时间复杂度为O(n),所以需要四叉树来划分区域,将某一部分区域的物体划分到一个包围盒中,从而来减少判断次数,提高效率 7 | 8 | 2. 如何计算包围盒是否在摄像机的视野范围内 9 | - 渲染管线是局部坐标系=》世界坐标系=》摄像机坐标系=》裁剪坐标系=》屏幕坐标系,其中在后三个坐标系中可以很便捷的得到某个点是否处于摄像机可视范围内。先将包围盒的八个点变换到裁剪坐标系下,再对其进行可视判断,一般情况下,如果八个点都不在摄像机视野范围内,则该包围盒不在摄像机视野范围内,否则在摄像机视野范围内。但是由于包围盒的x、y、z轴长度可变,如果任一轴过大,则会出现包围盒的一部分在视锥体上,而包围盒的八个点不在视锥体上,导致不准确,所以这里,对Bound来说,它有8个点,当它的8个点同时处于摄像机裁剪块上方/下方/前方/后方/左方/右方,那么该bound不与摄像机可视范围交叉,即包围盒视锥体范围内。具体代码在Expand.cs 10 | 3. 如何对物体进行渲染管理 11 | - 当玩家移动时,将刷新场景对象状态。即先将存在activeObjDic的对象放入inActiveObjDic和存在inActiveObjDic的对象放入onActiveObjDic,然后从根节点出发,刷新节点下的对象,其次对每个子节点的包围盒进行摄像机视野范围判断,如果在,刷新子节点下的物体状态并将这些物体放入activeObjDic中,直至到达最大深度或者该节点下没有子节点(如果该节点下没有物体,则不会继续创建子节点)。activeObjDic是存放当前状态渲染的对象,inActiveObjDic是存放下一帧不渲染的对象,onActiveObjDic是存放当前状态不渲染的对象 12 | ![](https://github.com/KDuoLi/myBlog-Picture/blob/main/QuadTree/%E6%B8%B2%E6%9F%93%E7%AE%A1%E7%90%86.png?raw=true) 13 | 4. 物体如何存放节点下 14 | - Awake时,将所有物体放入四叉树中,如果物体同时被两个及以上包围盒的范围内,则该物体属于它们的父物体,否则属于唯一的子节点 15 | ![](https://github.com/KDuoLi/myBlog-Picture/blob/main/QuadTree/%E6%8F%92%E5%85%A5%E7%89%A9%E4%BD%93.png?raw=true) 16 | 5. 动态物体管理 17 | ![](https://github.com/KDuoLi/myBlog-Picture/blob/main/QuadTree/%E5%8A%A8%E6%80%81%E7%89%A9%E4%BD%93%E7%AE%A1%E7%90%86.png?raw=true) 18 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedSceneGuid-0: 9 | value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a 10 | flags: 0 11 | RecentlyUsedSceneGuid-1: 12 | value: 5457515252510d0d55560e211675094415164d722e2d766429711f62b4b4673e 13 | flags: 0 14 | vcSharedLogLevel: 15 | value: 0d5e400f0650 16 | flags: 0 17 | m_VCAutomaticAdd: 1 18 | m_VCDebugCom: 0 19 | m_VCDebugCmd: 0 20 | m_VCDebugOut: 0 21 | m_SemanticMergeMode: 2 22 | m_DesiredImportWorkerCount: 2 23 | m_StandbyImportWorkerCount: 2 24 | m_IdleImportWorkerShutdownDelay: 60000 25 | m_VCShowFailedCheckout: 1 26 | m_VCOverwriteFailedCheckoutAssets: 1 27 | m_VCProjectOverlayIcons: 1 28 | m_VCHierarchyOverlayIcons: 1 29 | m_VCOtherOverlayIcons: 1 30 | m_VCAllowAsyncUpdate: 1 31 | m_ArtifactGarbageCollection: 1 32 | -------------------------------------------------------------------------------- /UserSettings/Layouts/default-2021.dwlt: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 52 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 1 12 | m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_PixelRect: 16 | serializedVersion: 2 17 | x: 0 18 | y: 43.2 19 | width: 1536 20 | height: 790.4 21 | m_ShowMode: 4 22 | m_Title: Game 23 | m_RootView: {fileID: 4} 24 | m_MinSize: {x: 875, y: 300} 25 | m_MaxSize: {x: 10000, y: 10000} 26 | m_Maximized: 1 27 | --- !u!114 &2 28 | MonoBehaviour: 29 | m_ObjectHideFlags: 52 30 | m_CorrespondingSourceObject: {fileID: 0} 31 | m_PrefabInstance: {fileID: 0} 32 | m_PrefabAsset: {fileID: 0} 33 | m_GameObject: {fileID: 0} 34 | m_Enabled: 1 35 | m_EditorHideFlags: 0 36 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 37 | m_Name: ProjectBrowser 38 | m_EditorClassIdentifier: 39 | m_Children: [] 40 | m_Position: 41 | serializedVersion: 2 42 | x: 0 43 | y: 372.8 44 | width: 356 45 | height: 367.60004 46 | m_MinSize: {x: 232, y: 271} 47 | m_MaxSize: {x: 10002, y: 10021} 48 | m_ActualView: {fileID: 16} 49 | m_Panes: 50 | - {fileID: 16} 51 | m_Selected: 0 52 | m_LastSelected: -1 53 | --- !u!114 &3 54 | MonoBehaviour: 55 | m_ObjectHideFlags: 52 56 | m_CorrespondingSourceObject: {fileID: 0} 57 | m_PrefabInstance: {fileID: 0} 58 | m_PrefabAsset: {fileID: 0} 59 | m_GameObject: {fileID: 0} 60 | m_Enabled: 1 61 | m_EditorHideFlags: 0 62 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 63 | m_Name: 64 | m_EditorClassIdentifier: 65 | m_Children: 66 | - {fileID: 9} 67 | - {fileID: 2} 68 | m_Position: 69 | serializedVersion: 2 70 | x: 725.6 71 | y: 0 72 | width: 356 73 | height: 740.4 74 | m_MinSize: {x: 100, y: 200} 75 | m_MaxSize: {x: 8096, y: 16192} 76 | vertical: 1 77 | controlID: 19 78 | --- !u!114 &4 79 | MonoBehaviour: 80 | m_ObjectHideFlags: 52 81 | m_CorrespondingSourceObject: {fileID: 0} 82 | m_PrefabInstance: {fileID: 0} 83 | m_PrefabAsset: {fileID: 0} 84 | m_GameObject: {fileID: 0} 85 | m_Enabled: 1 86 | m_EditorHideFlags: 1 87 | m_Script: {fileID: 12008, guid: 0000000000000000e000000000000000, type: 0} 88 | m_Name: 89 | m_EditorClassIdentifier: 90 | m_Children: 91 | - {fileID: 5} 92 | - {fileID: 6} 93 | - {fileID: 7} 94 | m_Position: 95 | serializedVersion: 2 96 | x: 0 97 | y: 0 98 | width: 1536 99 | height: 790.4 100 | m_MinSize: {x: 875, y: 300} 101 | m_MaxSize: {x: 10000, y: 10000} 102 | m_UseTopView: 1 103 | m_TopViewHeight: 30 104 | m_UseBottomView: 1 105 | m_BottomViewHeight: 20 106 | --- !u!114 &5 107 | MonoBehaviour: 108 | m_ObjectHideFlags: 52 109 | m_CorrespondingSourceObject: {fileID: 0} 110 | m_PrefabInstance: {fileID: 0} 111 | m_PrefabAsset: {fileID: 0} 112 | m_GameObject: {fileID: 0} 113 | m_Enabled: 1 114 | m_EditorHideFlags: 1 115 | m_Script: {fileID: 12011, guid: 0000000000000000e000000000000000, type: 0} 116 | m_Name: 117 | m_EditorClassIdentifier: 118 | m_Children: [] 119 | m_Position: 120 | serializedVersion: 2 121 | x: 0 122 | y: 0 123 | width: 1536 124 | height: 30 125 | m_MinSize: {x: 0, y: 0} 126 | m_MaxSize: {x: 0, y: 0} 127 | m_LastLoadedLayoutName: 128 | --- !u!114 &6 129 | MonoBehaviour: 130 | m_ObjectHideFlags: 52 131 | m_CorrespondingSourceObject: {fileID: 0} 132 | m_PrefabInstance: {fileID: 0} 133 | m_PrefabAsset: {fileID: 0} 134 | m_GameObject: {fileID: 0} 135 | m_Enabled: 1 136 | m_EditorHideFlags: 1 137 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 138 | m_Name: 139 | m_EditorClassIdentifier: 140 | m_Children: 141 | - {fileID: 8} 142 | - {fileID: 3} 143 | - {fileID: 10} 144 | m_Position: 145 | serializedVersion: 2 146 | x: 0 147 | y: 30 148 | width: 1536 149 | height: 740.4 150 | m_MinSize: {x: 300, y: 200} 151 | m_MaxSize: {x: 24288, y: 16192} 152 | vertical: 0 153 | controlID: 18 154 | --- !u!114 &7 155 | MonoBehaviour: 156 | m_ObjectHideFlags: 52 157 | m_CorrespondingSourceObject: {fileID: 0} 158 | m_PrefabInstance: {fileID: 0} 159 | m_PrefabAsset: {fileID: 0} 160 | m_GameObject: {fileID: 0} 161 | m_Enabled: 1 162 | m_EditorHideFlags: 1 163 | m_Script: {fileID: 12042, guid: 0000000000000000e000000000000000, type: 0} 164 | m_Name: 165 | m_EditorClassIdentifier: 166 | m_Children: [] 167 | m_Position: 168 | serializedVersion: 2 169 | x: 0 170 | y: 770.4 171 | width: 1536 172 | height: 20 173 | m_MinSize: {x: 0, y: 0} 174 | m_MaxSize: {x: 0, y: 0} 175 | --- !u!114 &8 176 | MonoBehaviour: 177 | m_ObjectHideFlags: 52 178 | m_CorrespondingSourceObject: {fileID: 0} 179 | m_PrefabInstance: {fileID: 0} 180 | m_PrefabAsset: {fileID: 0} 181 | m_GameObject: {fileID: 0} 182 | m_Enabled: 1 183 | m_EditorHideFlags: 1 184 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 185 | m_Name: 186 | m_EditorClassIdentifier: 187 | m_Children: 188 | - {fileID: 11} 189 | - {fileID: 12} 190 | m_Position: 191 | serializedVersion: 2 192 | x: 0 193 | y: 0 194 | width: 725.6 195 | height: 740.4 196 | m_MinSize: {x: 100, y: 200} 197 | m_MaxSize: {x: 8096, y: 16192} 198 | vertical: 1 199 | controlID: 89 200 | --- !u!114 &9 201 | MonoBehaviour: 202 | m_ObjectHideFlags: 52 203 | m_CorrespondingSourceObject: {fileID: 0} 204 | m_PrefabInstance: {fileID: 0} 205 | m_PrefabAsset: {fileID: 0} 206 | m_GameObject: {fileID: 0} 207 | m_Enabled: 1 208 | m_EditorHideFlags: 1 209 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 210 | m_Name: 211 | m_EditorClassIdentifier: 212 | m_Children: [] 213 | m_Position: 214 | serializedVersion: 2 215 | x: 0 216 | y: 0 217 | width: 356 218 | height: 372.8 219 | m_MinSize: {x: 200, y: 200} 220 | m_MaxSize: {x: 4000, y: 4000} 221 | m_ActualView: {fileID: 14} 222 | m_Panes: 223 | - {fileID: 14} 224 | m_Selected: 0 225 | m_LastSelected: 0 226 | --- !u!114 &10 227 | MonoBehaviour: 228 | m_ObjectHideFlags: 52 229 | m_CorrespondingSourceObject: {fileID: 0} 230 | m_PrefabInstance: {fileID: 0} 231 | m_PrefabAsset: {fileID: 0} 232 | m_GameObject: {fileID: 0} 233 | m_Enabled: 1 234 | m_EditorHideFlags: 1 235 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 236 | m_Name: 237 | m_EditorClassIdentifier: 238 | m_Children: [] 239 | m_Position: 240 | serializedVersion: 2 241 | x: 1081.6 242 | y: 0 243 | width: 454.40002 244 | height: 740.4 245 | m_MinSize: {x: 275, y: 50} 246 | m_MaxSize: {x: 4000, y: 4000} 247 | m_ActualView: {fileID: 15} 248 | m_Panes: 249 | - {fileID: 15} 250 | m_Selected: 0 251 | m_LastSelected: 0 252 | --- !u!114 &11 253 | MonoBehaviour: 254 | m_ObjectHideFlags: 52 255 | m_CorrespondingSourceObject: {fileID: 0} 256 | m_PrefabInstance: {fileID: 0} 257 | m_PrefabAsset: {fileID: 0} 258 | m_GameObject: {fileID: 0} 259 | m_Enabled: 1 260 | m_EditorHideFlags: 1 261 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 262 | m_Name: SceneView 263 | m_EditorClassIdentifier: 264 | m_Children: [] 265 | m_Position: 266 | serializedVersion: 2 267 | x: 0 268 | y: 0 269 | width: 725.6 270 | height: 377.6 271 | m_MinSize: {x: 200, y: 200} 272 | m_MaxSize: {x: 4000, y: 4000} 273 | m_ActualView: {fileID: 18} 274 | m_Panes: 275 | - {fileID: 18} 276 | - {fileID: 13} 277 | m_Selected: 0 278 | m_LastSelected: 1 279 | --- !u!114 &12 280 | MonoBehaviour: 281 | m_ObjectHideFlags: 52 282 | m_CorrespondingSourceObject: {fileID: 0} 283 | m_PrefabInstance: {fileID: 0} 284 | m_PrefabAsset: {fileID: 0} 285 | m_GameObject: {fileID: 0} 286 | m_Enabled: 1 287 | m_EditorHideFlags: 1 288 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 289 | m_Name: 290 | m_EditorClassIdentifier: 291 | m_Children: [] 292 | m_Position: 293 | serializedVersion: 2 294 | x: 0 295 | y: 377.6 296 | width: 725.6 297 | height: 362.80002 298 | m_MinSize: {x: 200, y: 200} 299 | m_MaxSize: {x: 4000, y: 4000} 300 | m_ActualView: {fileID: 17} 301 | m_Panes: 302 | - {fileID: 17} 303 | m_Selected: 0 304 | m_LastSelected: 0 305 | --- !u!114 &13 306 | MonoBehaviour: 307 | m_ObjectHideFlags: 52 308 | m_CorrespondingSourceObject: {fileID: 0} 309 | m_PrefabInstance: {fileID: 0} 310 | m_PrefabAsset: {fileID: 0} 311 | m_GameObject: {fileID: 0} 312 | m_Enabled: 1 313 | m_EditorHideFlags: 0 314 | m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} 315 | m_Name: 316 | m_EditorClassIdentifier: 317 | m_MinSize: {x: 100, y: 100} 318 | m_MaxSize: {x: 4000, y: 4000} 319 | m_TitleContent: 320 | m_Text: Console 321 | m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, type: 0} 322 | m_Tooltip: 323 | m_Pos: 324 | serializedVersion: 2 325 | x: 0 326 | y: 73.6 327 | width: 724.6 328 | height: 356.6 329 | m_ViewDataDictionary: {fileID: 0} 330 | m_OverlayCanvas: 331 | m_LastAppliedPresetName: Default 332 | m_SaveData: [] 333 | --- !u!114 &14 334 | MonoBehaviour: 335 | m_ObjectHideFlags: 52 336 | m_CorrespondingSourceObject: {fileID: 0} 337 | m_PrefabInstance: {fileID: 0} 338 | m_PrefabAsset: {fileID: 0} 339 | m_GameObject: {fileID: 0} 340 | m_Enabled: 1 341 | m_EditorHideFlags: 1 342 | m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} 343 | m_Name: 344 | m_EditorClassIdentifier: 345 | m_MinSize: {x: 200, y: 200} 346 | m_MaxSize: {x: 4000, y: 4000} 347 | m_TitleContent: 348 | m_Text: Hierarchy 349 | m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, type: 0} 350 | m_Tooltip: 351 | m_Pos: 352 | serializedVersion: 2 353 | x: 725.60004 354 | y: 73.6 355 | width: 354 356 | height: 351.8 357 | m_ViewDataDictionary: {fileID: 0} 358 | m_OverlayCanvas: 359 | m_LastAppliedPresetName: Default 360 | m_SaveData: [] 361 | m_SceneHierarchy: 362 | m_TreeViewState: 363 | scrollPos: {x: 0, y: 0} 364 | m_SelectedIDs: 365 | m_LastClickedID: 0 366 | m_ExpandedIDs: 34fbffff 367 | m_RenameOverlay: 368 | m_UserAcceptedRename: 0 369 | m_Name: 370 | m_OriginalName: 371 | m_EditFieldRect: 372 | serializedVersion: 2 373 | x: 0 374 | y: 0 375 | width: 0 376 | height: 0 377 | m_UserData: 0 378 | m_IsWaitingForDelay: 0 379 | m_IsRenaming: 0 380 | m_OriginalEventType: 11 381 | m_IsRenamingFilename: 0 382 | m_ClientGUIView: {fileID: 0} 383 | m_SearchString: 384 | m_ExpandedScenes: [] 385 | m_CurrenRootInstanceID: 0 386 | m_LockTracker: 387 | m_IsLocked: 0 388 | m_CurrentSortingName: TransformSorting 389 | m_WindowGUID: f93c776a137c32048ba6acdb8225b3cd 390 | --- !u!114 &15 391 | MonoBehaviour: 392 | m_ObjectHideFlags: 52 393 | m_CorrespondingSourceObject: {fileID: 0} 394 | m_PrefabInstance: {fileID: 0} 395 | m_PrefabAsset: {fileID: 0} 396 | m_GameObject: {fileID: 0} 397 | m_Enabled: 1 398 | m_EditorHideFlags: 1 399 | m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} 400 | m_Name: 401 | m_EditorClassIdentifier: 402 | m_MinSize: {x: 275, y: 50} 403 | m_MaxSize: {x: 4000, y: 4000} 404 | m_TitleContent: 405 | m_Text: Inspector 406 | m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, type: 0} 407 | m_Tooltip: 408 | m_Pos: 409 | serializedVersion: 2 410 | x: 1081.6 411 | y: 73.6 412 | width: 453.40002 413 | height: 719.4 414 | m_ViewDataDictionary: {fileID: 0} 415 | m_OverlayCanvas: 416 | m_LastAppliedPresetName: Default 417 | m_SaveData: [] 418 | m_ObjectsLockedBeforeSerialization: [] 419 | m_InstanceIDsLockedBeforeSerialization: 420 | m_PreviewResizer: 421 | m_CachedPref: -160 422 | m_ControlHash: -371814159 423 | m_PrefName: Preview_InspectorPreview 424 | m_LastInspectedObjectInstanceID: -1 425 | m_LastVerticalScrollValue: 0 426 | m_GlobalObjectId: 427 | m_InspectorMode: 0 428 | m_LockTracker: 429 | m_IsLocked: 0 430 | m_PreviewWindow: {fileID: 0} 431 | --- !u!114 &16 432 | MonoBehaviour: 433 | m_ObjectHideFlags: 52 434 | m_CorrespondingSourceObject: {fileID: 0} 435 | m_PrefabInstance: {fileID: 0} 436 | m_PrefabAsset: {fileID: 0} 437 | m_GameObject: {fileID: 0} 438 | m_Enabled: 1 439 | m_EditorHideFlags: 1 440 | m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} 441 | m_Name: 442 | m_EditorClassIdentifier: 443 | m_MinSize: {x: 230, y: 250} 444 | m_MaxSize: {x: 10000, y: 10000} 445 | m_TitleContent: 446 | m_Text: Project 447 | m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, type: 0} 448 | m_Tooltip: 449 | m_Pos: 450 | serializedVersion: 2 451 | x: 725.60004 452 | y: 446.4 453 | width: 354 454 | height: 346.60004 455 | m_ViewDataDictionary: {fileID: 0} 456 | m_OverlayCanvas: 457 | m_LastAppliedPresetName: Default 458 | m_SaveData: [] 459 | m_SearchFilter: 460 | m_NameFilter: 461 | m_ClassNames: [] 462 | m_AssetLabels: [] 463 | m_AssetBundleNames: [] 464 | m_VersionControlStates: [] 465 | m_SoftLockControlStates: [] 466 | m_ReferencingInstanceIDs: 467 | m_SceneHandles: 468 | m_ShowAllHits: 0 469 | m_SkipHidden: 0 470 | m_SearchArea: 1 471 | m_Folders: 472 | - Assets/Scripts 473 | m_Globs: [] 474 | m_OriginalText: 475 | m_ViewMode: 0 476 | m_StartGridSize: 64 477 | m_LastFolders: [] 478 | m_LastFoldersGridSize: -1 479 | m_LastProjectPath: C:\Users\hp\Documents\GitHub\QuadTree 480 | m_LockTracker: 481 | m_IsLocked: 0 482 | m_FolderTreeState: 483 | scrollPos: {x: 0, y: 0} 484 | m_SelectedIDs: 325d0000 485 | m_LastClickedID: 23858 486 | m_ExpandedIDs: 00000000a85a0000aa5a0000ac5a0000ae5a0000b05a0000 487 | m_RenameOverlay: 488 | m_UserAcceptedRename: 0 489 | m_Name: 490 | m_OriginalName: 491 | m_EditFieldRect: 492 | serializedVersion: 2 493 | x: 0 494 | y: 0 495 | width: 0 496 | height: 0 497 | m_UserData: 0 498 | m_IsWaitingForDelay: 0 499 | m_IsRenaming: 0 500 | m_OriginalEventType: 11 501 | m_IsRenamingFilename: 1 502 | m_ClientGUIView: {fileID: 0} 503 | m_SearchString: 504 | m_CreateAssetUtility: 505 | m_EndAction: {fileID: 0} 506 | m_InstanceID: 0 507 | m_Path: 508 | m_Icon: {fileID: 0} 509 | m_ResourceFile: 510 | m_AssetTreeState: 511 | scrollPos: {x: 0, y: 0} 512 | m_SelectedIDs: 513 | m_LastClickedID: 0 514 | m_ExpandedIDs: ffffffff00000000a85a0000aa5a0000ac5a0000ae5a0000b05a0000 515 | m_RenameOverlay: 516 | m_UserAcceptedRename: 0 517 | m_Name: 518 | m_OriginalName: 519 | m_EditFieldRect: 520 | serializedVersion: 2 521 | x: 0 522 | y: 0 523 | width: 0 524 | height: 0 525 | m_UserData: 0 526 | m_IsWaitingForDelay: 0 527 | m_IsRenaming: 0 528 | m_OriginalEventType: 11 529 | m_IsRenamingFilename: 1 530 | m_ClientGUIView: {fileID: 2} 531 | m_SearchString: 532 | m_CreateAssetUtility: 533 | m_EndAction: {fileID: 0} 534 | m_InstanceID: 0 535 | m_Path: 536 | m_Icon: {fileID: 0} 537 | m_ResourceFile: 538 | m_ListAreaState: 539 | m_SelectedInstanceIDs: 540 | m_LastClickedInstanceID: 0 541 | m_HadKeyboardFocusLastEvent: 0 542 | m_ExpandedInstanceIDs: 543 | m_RenameOverlay: 544 | m_UserAcceptedRename: 0 545 | m_Name: 546 | m_OriginalName: 547 | m_EditFieldRect: 548 | serializedVersion: 2 549 | x: 0 550 | y: 0 551 | width: 0 552 | height: 0 553 | m_UserData: 0 554 | m_IsWaitingForDelay: 0 555 | m_IsRenaming: 0 556 | m_OriginalEventType: 11 557 | m_IsRenamingFilename: 1 558 | m_ClientGUIView: {fileID: 0} 559 | m_CreateAssetUtility: 560 | m_EndAction: {fileID: 0} 561 | m_InstanceID: 0 562 | m_Path: 563 | m_Icon: {fileID: 0} 564 | m_ResourceFile: 565 | m_NewAssetIndexInList: -1 566 | m_ScrollPosition: {x: 0, y: 0} 567 | m_GridSize: 64 568 | m_SkipHiddenPackages: 0 569 | m_DirectoriesAreaWidth: 115 570 | --- !u!114 &17 571 | MonoBehaviour: 572 | m_ObjectHideFlags: 52 573 | m_CorrespondingSourceObject: {fileID: 0} 574 | m_PrefabInstance: {fileID: 0} 575 | m_PrefabAsset: {fileID: 0} 576 | m_GameObject: {fileID: 0} 577 | m_Enabled: 1 578 | m_EditorHideFlags: 1 579 | m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} 580 | m_Name: 581 | m_EditorClassIdentifier: 582 | m_MinSize: {x: 200, y: 200} 583 | m_MaxSize: {x: 4000, y: 4000} 584 | m_TitleContent: 585 | m_Text: Game 586 | m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, type: 0} 587 | m_Tooltip: 588 | m_Pos: 589 | serializedVersion: 2 590 | x: 0 591 | y: 451.2 592 | width: 724.6 593 | height: 341.80002 594 | m_ViewDataDictionary: {fileID: 0} 595 | m_OverlayCanvas: 596 | m_LastAppliedPresetName: Default 597 | m_SaveData: [] 598 | m_SerializedViewNames: [] 599 | m_SerializedViewValues: [] 600 | m_PlayModeViewName: GameView 601 | m_ShowGizmos: 0 602 | m_TargetDisplay: 0 603 | m_ClearColor: {r: 0, g: 0, b: 0, a: 0} 604 | m_TargetSize: {x: 905.75, y: 401.00003} 605 | m_TextureFilterMode: 0 606 | m_TextureHideFlags: 61 607 | m_RenderIMGUI: 1 608 | m_EnterPlayModeBehavior: 0 609 | m_UseMipMap: 0 610 | m_VSyncEnabled: 0 611 | m_Gizmos: 0 612 | m_Stats: 1 613 | m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 614 | m_ZoomArea: 615 | m_HRangeLocked: 0 616 | m_VRangeLocked: 0 617 | hZoomLockedByDefault: 0 618 | vZoomLockedByDefault: 0 619 | m_HBaseRangeMin: -362.30002 620 | m_HBaseRangeMax: 362.30002 621 | m_VBaseRangeMin: -160.40001 622 | m_VBaseRangeMax: 160.40001 623 | m_HAllowExceedBaseRangeMin: 1 624 | m_HAllowExceedBaseRangeMax: 1 625 | m_VAllowExceedBaseRangeMin: 1 626 | m_VAllowExceedBaseRangeMax: 1 627 | m_ScaleWithWindow: 0 628 | m_HSlider: 0 629 | m_VSlider: 0 630 | m_IgnoreScrollWheelUntilClicked: 0 631 | m_EnableMouseInput: 1 632 | m_EnableSliderZoomHorizontal: 0 633 | m_EnableSliderZoomVertical: 0 634 | m_UniformScale: 1 635 | m_UpDirection: 1 636 | m_DrawArea: 637 | serializedVersion: 2 638 | x: 0 639 | y: 21 640 | width: 724.6 641 | height: 320.80002 642 | m_Scale: {x: 0.99999994, y: 0.9999999} 643 | m_Translation: {x: 362.3, y: 160.40001} 644 | m_MarginLeft: 0 645 | m_MarginRight: 0 646 | m_MarginTop: 0 647 | m_MarginBottom: 0 648 | m_LastShownAreaInsideMargins: 649 | serializedVersion: 2 650 | x: -362.30002 651 | y: -160.40002 652 | width: 724.60004 653 | height: 320.80005 654 | m_MinimalGUI: 1 655 | m_defaultScale: 0.99999994 656 | m_LastWindowPixelSize: {x: 905.75, y: 427.25003} 657 | m_ClearInEditMode: 1 658 | m_NoCameraWarning: 1 659 | m_LowResolutionForAspectRatios: 00000000000000000000 660 | m_XRRenderMode: 0 661 | m_RenderTexture: {fileID: 0} 662 | --- !u!114 &18 663 | MonoBehaviour: 664 | m_ObjectHideFlags: 52 665 | m_CorrespondingSourceObject: {fileID: 0} 666 | m_PrefabInstance: {fileID: 0} 667 | m_PrefabAsset: {fileID: 0} 668 | m_GameObject: {fileID: 0} 669 | m_Enabled: 1 670 | m_EditorHideFlags: 1 671 | m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} 672 | m_Name: 673 | m_EditorClassIdentifier: 674 | m_MinSize: {x: 200, y: 200} 675 | m_MaxSize: {x: 4000, y: 4000} 676 | m_TitleContent: 677 | m_Text: Scene 678 | m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, type: 0} 679 | m_Tooltip: 680 | m_Pos: 681 | serializedVersion: 2 682 | x: 0 683 | y: 73.6 684 | width: 724.6 685 | height: 356.6 686 | m_ViewDataDictionary: {fileID: 0} 687 | m_OverlayCanvas: 688 | m_LastAppliedPresetName: Default 689 | m_SaveData: 690 | - dockPosition: 0 691 | containerId: overlay-toolbar__top 692 | floating: 0 693 | collapsed: 0 694 | displayed: 1 695 | snapOffset: {x: 0, y: 0} 696 | snapOffsetDelta: {x: -100, y: -25.600006} 697 | snapCorner: 3 698 | id: Tool Settings 699 | index: 0 700 | layout: 1 701 | - dockPosition: 0 702 | containerId: overlay-toolbar__top 703 | floating: 0 704 | collapsed: 0 705 | displayed: 1 706 | snapOffset: {x: -141, y: 149} 707 | snapOffsetDelta: {x: 0, y: 0} 708 | snapCorner: 1 709 | id: unity-grid-and-snap-toolbar 710 | index: 1 711 | layout: 1 712 | - dockPosition: 1 713 | containerId: overlay-toolbar__top 714 | floating: 0 715 | collapsed: 0 716 | displayed: 1 717 | snapOffset: {x: 0, y: 0} 718 | snapOffsetDelta: {x: 0, y: 0} 719 | snapCorner: 0 720 | id: unity-scene-view-toolbar 721 | index: 0 722 | layout: 1 723 | - dockPosition: 1 724 | containerId: overlay-toolbar__top 725 | floating: 0 726 | collapsed: 0 727 | displayed: 0 728 | snapOffset: {x: 0, y: 0} 729 | snapOffsetDelta: {x: 0, y: 0} 730 | snapCorner: 1 731 | id: unity-search-toolbar 732 | index: 1 733 | layout: 1 734 | - dockPosition: 0 735 | containerId: overlay-container--left 736 | floating: 0 737 | collapsed: 0 738 | displayed: 1 739 | snapOffset: {x: 0, y: 0} 740 | snapOffsetDelta: {x: 0, y: 0} 741 | snapCorner: 0 742 | id: unity-transform-toolbar 743 | index: 0 744 | layout: 2 745 | - dockPosition: 0 746 | containerId: overlay-container--right 747 | floating: 0 748 | collapsed: 0 749 | displayed: 1 750 | snapOffset: {x: 67.5, y: 86} 751 | snapOffsetDelta: {x: 0, y: 0} 752 | snapCorner: 0 753 | id: Orientation 754 | index: 0 755 | layout: 4 756 | - dockPosition: 1 757 | containerId: overlay-container--right 758 | floating: 0 759 | collapsed: 0 760 | displayed: 0 761 | snapOffset: {x: 0, y: 0} 762 | snapOffsetDelta: {x: 0, y: 0} 763 | snapCorner: 0 764 | id: Scene View/Light Settings 765 | index: 0 766 | layout: 4 767 | - dockPosition: 1 768 | containerId: overlay-container--right 769 | floating: 0 770 | collapsed: 0 771 | displayed: 0 772 | snapOffset: {x: 0, y: 0} 773 | snapOffsetDelta: {x: 0, y: 0} 774 | snapCorner: 0 775 | id: Scene View/Camera 776 | index: 1 777 | layout: 4 778 | - dockPosition: 1 779 | containerId: overlay-container--right 780 | floating: 0 781 | collapsed: 0 782 | displayed: 0 783 | snapOffset: {x: 0, y: 0} 784 | snapOffsetDelta: {x: 0, y: 0} 785 | snapCorner: 0 786 | id: Scene View/Cloth Constraints 787 | index: 2 788 | layout: 4 789 | - dockPosition: 1 790 | containerId: overlay-container--right 791 | floating: 0 792 | collapsed: 0 793 | displayed: 0 794 | snapOffset: {x: 0, y: 0} 795 | snapOffsetDelta: {x: 0, y: 0} 796 | snapCorner: 0 797 | id: Scene View/Cloth Collisions 798 | index: 3 799 | layout: 4 800 | - dockPosition: 1 801 | containerId: overlay-container--right 802 | floating: 0 803 | collapsed: 0 804 | displayed: 0 805 | snapOffset: {x: 0, y: 0} 806 | snapOffsetDelta: {x: 0, y: 0} 807 | snapCorner: 0 808 | id: Scene View/Navmesh Display 809 | index: 4 810 | layout: 4 811 | - dockPosition: 1 812 | containerId: overlay-container--right 813 | floating: 0 814 | collapsed: 0 815 | displayed: 0 816 | snapOffset: {x: 0, y: 0} 817 | snapOffsetDelta: {x: 0, y: 0} 818 | snapCorner: 0 819 | id: Scene View/Agent Display 820 | index: 5 821 | layout: 4 822 | - dockPosition: 1 823 | containerId: overlay-container--right 824 | floating: 0 825 | collapsed: 0 826 | displayed: 0 827 | snapOffset: {x: 0, y: 0} 828 | snapOffsetDelta: {x: 0, y: 0} 829 | snapCorner: 0 830 | id: Scene View/Obstacle Display 831 | index: 6 832 | layout: 4 833 | - dockPosition: 1 834 | containerId: overlay-container--right 835 | floating: 0 836 | collapsed: 0 837 | displayed: 0 838 | snapOffset: {x: 0, y: 0} 839 | snapOffsetDelta: {x: 0, y: 0} 840 | snapCorner: 0 841 | id: Scene View/Occlusion Culling 842 | index: 7 843 | layout: 4 844 | - dockPosition: 1 845 | containerId: overlay-container--right 846 | floating: 0 847 | collapsed: 0 848 | displayed: 0 849 | snapOffset: {x: 0, y: 0} 850 | snapOffsetDelta: {x: 0, y: 0} 851 | snapCorner: 0 852 | id: Scene View/Physics Debugger 853 | index: 8 854 | layout: 4 855 | - dockPosition: 1 856 | containerId: overlay-container--right 857 | floating: 0 858 | collapsed: 0 859 | displayed: 0 860 | snapOffset: {x: 0, y: 0} 861 | snapOffsetDelta: {x: 0, y: 0} 862 | snapCorner: 0 863 | id: Scene View/Scene Visibility 864 | index: 9 865 | layout: 4 866 | - dockPosition: 1 867 | containerId: overlay-container--right 868 | floating: 0 869 | collapsed: 0 870 | displayed: 0 871 | snapOffset: {x: 0, y: 0} 872 | snapOffsetDelta: {x: 0, y: 0} 873 | snapCorner: 0 874 | id: Scene View/Particles 875 | index: 10 876 | layout: 4 877 | m_WindowGUID: 8aca7b0862198814099cca3bfcb7759f 878 | m_Gizmos: 1 879 | m_OverrideSceneCullingMask: 6917529027641081856 880 | m_SceneIsLit: 1 881 | m_SceneLighting: 1 882 | m_2DMode: 0 883 | m_isRotationLocked: 0 884 | m_PlayAudio: 0 885 | m_AudioPlay: 0 886 | m_Position: 887 | m_Target: {x: 59.677166, y: 87.40165, z: 10.315544} 888 | speed: 2 889 | m_Value: {x: 59.677166, y: 87.40165, z: 10.315544} 890 | m_RenderMode: 0 891 | m_CameraMode: 892 | drawMode: 0 893 | name: Shaded 894 | section: Shading Mode 895 | m_ValidateTrueMetals: 0 896 | m_DoValidateTrueMetals: 0 897 | m_ExposureSliderValue: 0 898 | m_SceneViewState: 899 | m_AlwaysRefresh: 0 900 | showFog: 1 901 | showSkybox: 1 902 | showFlares: 1 903 | showImageEffects: 1 904 | showParticleSystems: 1 905 | showVisualEffectGraphs: 1 906 | m_FxEnabled: 1 907 | m_Grid: 908 | xGrid: 909 | m_Fade: 910 | m_Target: 0 911 | speed: 2 912 | m_Value: 0 913 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 914 | m_Pivot: {x: 0, y: 0, z: 0} 915 | m_Size: {x: 0, y: 0} 916 | yGrid: 917 | m_Fade: 918 | m_Target: 1 919 | speed: 2 920 | m_Value: 1 921 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 922 | m_Pivot: {x: 0, y: 0, z: 0} 923 | m_Size: {x: 1, y: 1} 924 | zGrid: 925 | m_Fade: 926 | m_Target: 0 927 | speed: 2 928 | m_Value: 0 929 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 930 | m_Pivot: {x: 0, y: 0, z: 0} 931 | m_Size: {x: 0, y: 0} 932 | m_ShowGrid: 1 933 | m_GridAxis: 1 934 | m_gridOpacity: 0.5 935 | m_Rotation: 936 | m_Target: {x: -0.46771452, y: 0.10926941, z: -0.058397476, w: -0.8751637} 937 | speed: 2 938 | m_Value: {x: -0.46771023, y: 0.109268405, z: -0.05839694, w: -0.8751556} 939 | m_Size: 940 | m_Target: 2.5124714 941 | speed: 2 942 | m_Value: 2.5124714 943 | m_Ortho: 944 | m_Target: 0 945 | speed: 2 946 | m_Value: 0 947 | m_CameraSettings: 948 | m_Speed: 1 949 | m_SpeedNormalized: 0.5 950 | m_SpeedMin: 0.01 951 | m_SpeedMax: 2 952 | m_EasingEnabled: 1 953 | m_EasingDuration: 0.4 954 | m_AccelerationEnabled: 1 955 | m_FieldOfViewHorizontalOrVertical: 60 956 | m_NearClip: 0.03 957 | m_FarClip: 10000 958 | m_DynamicClip: 1 959 | m_OcclusionCulling: 0 960 | m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0} 961 | m_LastSceneViewOrtho: 0 962 | m_ReplacementShader: {fileID: 0} 963 | m_ReplacementString: 964 | m_SceneVisActive: 1 965 | m_LastLockedObject: {fileID: 0} 966 | m_ViewIsLockedToObject: 0 967 | --------------------------------------------------------------------------------