├── .github
└── FUNDING.yml
├── .gitignore
├── Assets
├── BoidsComputerShaderSandbox.meta
├── BoidsComputerShaderSandbox
│ ├── Effects.meta
│ ├── Effects
│ │ ├── BoidsVisualizer.vfx
│ │ └── BoidsVisualizer.vfx.meta
│ ├── Prefabs.meta
│ ├── Prefabs
│ │ ├── Cube.prefab
│ │ └── Cube.prefab.meta
│ ├── Scenes.meta
│ ├── Scenes
│ │ ├── Main.meta
│ │ ├── Main.unity
│ │ ├── Main.unity.meta
│ │ ├── Main
│ │ │ ├── PP Volume Profile.asset
│ │ │ └── PP Volume Profile.asset.meta
│ │ ├── Minimal.unity
│ │ ├── Minimal.unity.meta
│ │ ├── Test.unity
│ │ └── Test.unity.meta
│ ├── Scripts.meta
│ ├── Scripts
│ │ ├── MinimalInvestigation.meta
│ │ ├── MinimalInvestigation
│ │ │ ├── BoidsBehaviour.cs
│ │ │ ├── BoidsBehaviour.cs.meta
│ │ │ ├── BoidsCore.cs
│ │ │ ├── BoidsCore.cs.meta
│ │ │ ├── ComputeShaderInvest.cs
│ │ │ └── ComputeShaderInvest.cs.meta
│ │ ├── Types.meta
│ │ ├── Types
│ │ │ ├── BoidsData.cs
│ │ │ └── BoidsData.cs.meta
│ │ ├── VFX.meta
│ │ └── VFX
│ │ │ ├── BoidsBinder.cs
│ │ │ └── BoidsBinder.cs.meta
│ ├── Shaders.meta
│ └── Shaders
│ │ ├── Boids.compute
│ │ └── Boids.compute.meta
├── DefaultVolumeProfile.asset
├── DefaultVolumeProfile.asset.meta
├── Scenes.meta
├── Scenes
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
├── Settings.meta
├── Settings
│ ├── New Universal Render Pipeline Asset.asset
│ ├── New Universal Render Pipeline Asset.asset.meta
│ ├── New Universal Render Pipeline Asset_Renderer.asset
│ └── New Universal Render Pipeline Asset_Renderer.asset.meta
├── UniversalRenderPipelineGlobalSettings.asset
└── UniversalRenderPipelineGlobalSettings.asset.meta
├── LICENSE.md
├── Packages
├── manifest.json
└── packages-lock.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── MemorySettings.asset
├── MultiplayerManager.asset
├── NavMeshAreas.asset
├── PackageManagerSettings.asset
├── Packages
│ └── com.unity.testtools.codecoverage
│ │ └── Settings.json
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── SceneTemplateSettings.json
├── ShaderGraphSettings.asset
├── TagManager.asset
├── TimeManager.asset
├── URPProjectSettings.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
└── XRSettings.asset
├── README.md
├── UserSettings
├── EditorUserSettings.asset
├── Layouts
│ └── default-2023.dwlt
├── Search.index
└── Search.settings
└── docs
└── unity-boids.png
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: drumath2237
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
12 | polar: # Replace with a single Polar username
13 | buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
14 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
15 |
--------------------------------------------------------------------------------
/.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 | # Never ignore Asset meta data
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 | # TextMesh Pro files
20 | [Aa]ssets/TextMesh*Pro/
21 |
22 | # Autogenerated Jetbrains Rider plugin
23 | [Aa]ssets/Plugins/Editor/JetBrains*
24 |
25 | # Visual Studio cache directory
26 | .vs/
27 |
28 | # Gradle cache directory
29 | .gradle/
30 |
31 | # Autogenerated VS/MD/Consulo solution and project files
32 | ExportedObj/
33 | .consulo/
34 | *.csproj
35 | *.unityproj
36 | *.sln
37 | *.suo
38 | *.tmp
39 | *.user
40 | *.userprefs
41 | *.pidb
42 | *.booproj
43 | *.svd
44 | *.pdb
45 | *.mdb
46 | *.opendb
47 | *.VC.db
48 |
49 | # Unity3D generated meta files
50 | *.pidb.meta
51 | *.pdb.meta
52 | *.mdb.meta
53 |
54 | # Unity3D generated file on crash reports
55 | sysinfo.txt
56 |
57 | # Builds
58 | *.apk
59 | *.unitypackage
60 |
61 | # Crashlytics generated file
62 | crashlytics-build.properties
63 |
64 |
65 | UserSettings/Layouts/
66 |
67 | .idea/
68 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8c562b20d30f6fb438c44862fa254f7e
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Effects.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8d64b462ab1be9346bac7cc58488229b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Effects/BoidsVisualizer.vfx.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8139cc4e9ed3e5d4792e3e6108b88071
3 | VisualEffectImporter:
4 | externalObjects: {}
5 | serializedVersion: 1
6 | template:
7 | name:
8 | category:
9 | description:
10 | icon: {instanceID: 0}
11 | thumbnail: {instanceID: 0}
12 | userData:
13 | assetBundleName:
14 | assetBundleVariant:
15 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 8f0542eb236b6b14a8204c2f920eeb3f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Prefabs/Cube.prefab:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1 &3491508281341080955
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: 6494123031914325339}
12 | - component: {fileID: 7938553779912689801}
13 | - component: {fileID: 7399386282954801773}
14 | - component: {fileID: 5922666316766793965}
15 | m_Layer: 0
16 | m_Name: Cube
17 | m_TagString: Untagged
18 | m_Icon: {fileID: 0}
19 | m_NavMeshLayer: 0
20 | m_StaticEditorFlags: 0
21 | m_IsActive: 1
22 | --- !u!4 &6494123031914325339
23 | Transform:
24 | m_ObjectHideFlags: 0
25 | m_CorrespondingSourceObject: {fileID: 0}
26 | m_PrefabInstance: {fileID: 0}
27 | m_PrefabAsset: {fileID: 0}
28 | m_GameObject: {fileID: 3491508281341080955}
29 | serializedVersion: 2
30 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
31 | m_LocalPosition: {x: 0, y: 0, z: 0}
32 | m_LocalScale: {x: 0.25, y: 0.25, z: 0.75}
33 | m_ConstrainProportionsScale: 1
34 | m_Children: []
35 | m_Father: {fileID: 0}
36 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
37 | --- !u!33 &7938553779912689801
38 | MeshFilter:
39 | m_ObjectHideFlags: 0
40 | m_CorrespondingSourceObject: {fileID: 0}
41 | m_PrefabInstance: {fileID: 0}
42 | m_PrefabAsset: {fileID: 0}
43 | m_GameObject: {fileID: 3491508281341080955}
44 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
45 | --- !u!23 &7399386282954801773
46 | MeshRenderer:
47 | m_ObjectHideFlags: 0
48 | m_CorrespondingSourceObject: {fileID: 0}
49 | m_PrefabInstance: {fileID: 0}
50 | m_PrefabAsset: {fileID: 0}
51 | m_GameObject: {fileID: 3491508281341080955}
52 | m_Enabled: 1
53 | m_CastShadows: 1
54 | m_ReceiveShadows: 1
55 | m_DynamicOccludee: 1
56 | m_StaticShadowCaster: 0
57 | m_MotionVectors: 1
58 | m_LightProbeUsage: 1
59 | m_ReflectionProbeUsage: 1
60 | m_RayTracingMode: 2
61 | m_RayTraceProcedural: 0
62 | m_RayTracingAccelStructBuildFlagsOverride: 0
63 | m_RayTracingAccelStructBuildFlags: 1
64 | m_RenderingLayerMask: 1
65 | m_RendererPriority: 0
66 | m_Materials:
67 | - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
68 | m_StaticBatchInfo:
69 | firstSubMesh: 0
70 | subMeshCount: 0
71 | m_StaticBatchRoot: {fileID: 0}
72 | m_ProbeAnchor: {fileID: 0}
73 | m_LightProbeVolumeOverride: {fileID: 0}
74 | m_ScaleInLightmap: 1
75 | m_ReceiveGI: 1
76 | m_PreserveUVs: 0
77 | m_IgnoreNormalsForChartDetection: 0
78 | m_ImportantGI: 0
79 | m_StitchLightmapSeams: 1
80 | m_SelectedEditorRenderState: 3
81 | m_MinimumChartSize: 4
82 | m_AutoUVMaxDistance: 0.5
83 | m_AutoUVMaxAngle: 89
84 | m_LightmapParameters: {fileID: 0}
85 | m_SortingLayerID: 0
86 | m_SortingLayer: 0
87 | m_SortingOrder: 0
88 | m_AdditionalVertexStreams: {fileID: 0}
89 | --- !u!65 &5922666316766793965
90 | BoxCollider:
91 | m_ObjectHideFlags: 0
92 | m_CorrespondingSourceObject: {fileID: 0}
93 | m_PrefabInstance: {fileID: 0}
94 | m_PrefabAsset: {fileID: 0}
95 | m_GameObject: {fileID: 3491508281341080955}
96 | m_Material: {fileID: 0}
97 | m_IncludeLayers:
98 | serializedVersion: 2
99 | m_Bits: 0
100 | m_ExcludeLayers:
101 | serializedVersion: 2
102 | m_Bits: 0
103 | m_LayerOverridePriority: 0
104 | m_IsTrigger: 0
105 | m_ProvidesContacts: 0
106 | m_Enabled: 1
107 | serializedVersion: 3
108 | m_Size: {x: 1, y: 1, z: 1}
109 | m_Center: {x: 0, y: 0, z: 0}
110 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Prefabs/Cube.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1b564c791d273ec409941338b750f4ef
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 1ae16fca328298e4eb5aa5c962cdffd5
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Main.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b03027405df049f46821149193a3cc7f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Main.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 10
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GISettings:
48 | serializedVersion: 2
49 | m_BounceScale: 1
50 | m_IndirectOutputScale: 1
51 | m_AlbedoBoost: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 1
54 | m_EnableRealtimeLightmaps: 0
55 | m_LightmapEditorSettings:
56 | serializedVersion: 12
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_AtlasSize: 1024
60 | m_AO: 0
61 | m_AOMaxDistance: 1
62 | m_CompAOExponent: 1
63 | m_CompAOExponentDirect: 0
64 | m_ExtractAmbientOcclusion: 0
65 | m_Padding: 2
66 | m_LightmapParameters: {fileID: 0}
67 | m_LightmapsBakeMode: 1
68 | m_TextureCompression: 1
69 | m_ReflectionCompression: 2
70 | m_MixedBakeMode: 2
71 | m_BakeBackend: 1
72 | m_PVRSampling: 1
73 | m_PVRDirectSampleCount: 32
74 | m_PVRSampleCount: 512
75 | m_PVRBounces: 2
76 | m_PVREnvironmentSampleCount: 256
77 | m_PVREnvironmentReferencePointCount: 2048
78 | m_PVRFilteringMode: 1
79 | m_PVRDenoiserTypeDirect: 1
80 | m_PVRDenoiserTypeIndirect: 1
81 | m_PVRDenoiserTypeAO: 1
82 | m_PVRFilterTypeDirect: 0
83 | m_PVRFilterTypeIndirect: 0
84 | m_PVRFilterTypeAO: 0
85 | m_PVREnvironmentMIS: 1
86 | m_PVRCulling: 1
87 | m_PVRFilteringGaussRadiusDirect: 1
88 | m_PVRFilteringGaussRadiusIndirect: 5
89 | m_PVRFilteringGaussRadiusAO: 2
90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
92 | m_PVRFilteringAtrousPositionSigmaAO: 1
93 | m_ExportTrainingData: 0
94 | m_TrainingDataDestination: TrainingData
95 | m_LightProbeSampleCountMultiplier: 4
96 | m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
97 | m_LightingSettings: {fileID: 0}
98 | --- !u!196 &4
99 | NavMeshSettings:
100 | serializedVersion: 2
101 | m_ObjectHideFlags: 0
102 | m_BuildSettings:
103 | serializedVersion: 3
104 | agentTypeID: 0
105 | agentRadius: 0.5
106 | agentHeight: 2
107 | agentSlope: 45
108 | agentClimb: 0.4
109 | ledgeDropHeight: 0
110 | maxJumpAcrossDistance: 0
111 | minRegionArea: 2
112 | manualCellSize: 0
113 | cellSize: 0.16666667
114 | manualTileSize: 0
115 | tileSize: 256
116 | buildHeightMesh: 0
117 | maxJobWorkers: 0
118 | preserveTilesOutsideBounds: 0
119 | debug:
120 | m_Flags: 0
121 | m_NavMeshData: {fileID: 0}
122 | --- !u!1 &57833320
123 | GameObject:
124 | m_ObjectHideFlags: 0
125 | m_CorrespondingSourceObject: {fileID: 0}
126 | m_PrefabInstance: {fileID: 0}
127 | m_PrefabAsset: {fileID: 0}
128 | serializedVersion: 6
129 | m_Component:
130 | - component: {fileID: 57833323}
131 | - component: {fileID: 57833322}
132 | - component: {fileID: 57833321}
133 | - component: {fileID: 57833324}
134 | m_Layer: 0
135 | m_Name: Main Camera
136 | m_TagString: MainCamera
137 | m_Icon: {fileID: 0}
138 | m_NavMeshLayer: 0
139 | m_StaticEditorFlags: 0
140 | m_IsActive: 1
141 | --- !u!81 &57833321
142 | AudioListener:
143 | m_ObjectHideFlags: 0
144 | m_CorrespondingSourceObject: {fileID: 0}
145 | m_PrefabInstance: {fileID: 0}
146 | m_PrefabAsset: {fileID: 0}
147 | m_GameObject: {fileID: 57833320}
148 | m_Enabled: 1
149 | --- !u!20 &57833322
150 | Camera:
151 | m_ObjectHideFlags: 0
152 | m_CorrespondingSourceObject: {fileID: 0}
153 | m_PrefabInstance: {fileID: 0}
154 | m_PrefabAsset: {fileID: 0}
155 | m_GameObject: {fileID: 57833320}
156 | m_Enabled: 1
157 | serializedVersion: 2
158 | m_ClearFlags: 2
159 | m_BackGroundColor: {r: 0.12793697, g: 0.16256525, b: 0.21698111, a: 0}
160 | m_projectionMatrixMode: 1
161 | m_GateFitMode: 2
162 | m_FOVAxisMode: 0
163 | m_Iso: 200
164 | m_ShutterSpeed: 0.005
165 | m_Aperture: 16
166 | m_FocusDistance: 10
167 | m_FocalLength: 50
168 | m_BladeCount: 5
169 | m_Curvature: {x: 2, y: 11}
170 | m_BarrelClipping: 0.25
171 | m_Anamorphism: 0
172 | m_SensorSize: {x: 36, y: 24}
173 | m_LensShift: {x: 0, y: 0}
174 | m_NormalizedViewPortRect:
175 | serializedVersion: 2
176 | x: 0
177 | y: 0
178 | width: 1
179 | height: 1
180 | near clip plane: 0.3
181 | far clip plane: 1000
182 | field of view: 60
183 | orthographic: 0
184 | orthographic size: 5
185 | m_Depth: -1
186 | m_CullingMask:
187 | serializedVersion: 2
188 | m_Bits: 4294967295
189 | m_RenderingPath: -1
190 | m_TargetTexture: {fileID: 0}
191 | m_TargetDisplay: 0
192 | m_TargetEye: 3
193 | m_HDR: 1
194 | m_AllowMSAA: 1
195 | m_AllowDynamicResolution: 0
196 | m_ForceIntoRT: 0
197 | m_OcclusionCulling: 1
198 | m_StereoConvergence: 10
199 | m_StereoSeparation: 0.022
200 | --- !u!4 &57833323
201 | Transform:
202 | m_ObjectHideFlags: 0
203 | m_CorrespondingSourceObject: {fileID: 0}
204 | m_PrefabInstance: {fileID: 0}
205 | m_PrefabAsset: {fileID: 0}
206 | m_GameObject: {fileID: 57833320}
207 | serializedVersion: 2
208 | m_LocalRotation: {x: 0.115617536, y: -0.4348299, z: 0.056406632, w: 0.89127654}
209 | m_LocalPosition: {x: 44.500343, y: 12.76911, z: -36.971382}
210 | m_LocalScale: {x: 1, y: 1, z: 1}
211 | m_ConstrainProportionsScale: 0
212 | m_Children: []
213 | m_Father: {fileID: 0}
214 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
215 | --- !u!114 &57833324
216 | MonoBehaviour:
217 | m_ObjectHideFlags: 0
218 | m_CorrespondingSourceObject: {fileID: 0}
219 | m_PrefabInstance: {fileID: 0}
220 | m_PrefabAsset: {fileID: 0}
221 | m_GameObject: {fileID: 57833320}
222 | m_Enabled: 1
223 | m_EditorHideFlags: 0
224 | m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
225 | m_Name:
226 | m_EditorClassIdentifier:
227 | m_RenderShadows: 1
228 | m_RequiresDepthTextureOption: 2
229 | m_RequiresOpaqueTextureOption: 2
230 | m_CameraType: 0
231 | m_Cameras: []
232 | m_RendererIndex: -1
233 | m_VolumeLayerMask:
234 | serializedVersion: 2
235 | m_Bits: 1
236 | m_VolumeTrigger: {fileID: 0}
237 | m_VolumeFrameworkUpdateModeOption: 2
238 | m_RenderPostProcessing: 1
239 | m_Antialiasing: 1
240 | m_AntialiasingQuality: 2
241 | m_StopNaN: 0
242 | m_Dithering: 0
243 | m_ClearDepth: 1
244 | m_AllowXRRendering: 1
245 | m_AllowHDROutput: 1
246 | m_UseScreenCoordOverride: 0
247 | m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
248 | m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
249 | m_RequiresDepthTexture: 0
250 | m_RequiresColorTexture: 0
251 | m_Version: 2
252 | m_TaaSettings:
253 | quality: 3
254 | frameInfluence: 0.1
255 | jitterScale: 1
256 | mipBias: 0
257 | varianceClampScale: 0.9
258 | contrastAdaptiveSharpening: 0
259 | --- !u!1 &1688785489
260 | GameObject:
261 | m_ObjectHideFlags: 0
262 | m_CorrespondingSourceObject: {fileID: 0}
263 | m_PrefabInstance: {fileID: 0}
264 | m_PrefabAsset: {fileID: 0}
265 | serializedVersion: 6
266 | m_Component:
267 | - component: {fileID: 1688785494}
268 | - component: {fileID: 1688785493}
269 | - component: {fileID: 1688785492}
270 | - component: {fileID: 1688785491}
271 | - component: {fileID: 1688785490}
272 | m_Layer: 0
273 | m_Name: BoidsVisualizer
274 | m_TagString: Untagged
275 | m_Icon: {fileID: 0}
276 | m_NavMeshLayer: 0
277 | m_StaticEditorFlags: 0
278 | m_IsActive: 1
279 | --- !u!114 &1688785490
280 | MonoBehaviour:
281 | m_ObjectHideFlags: 2
282 | m_CorrespondingSourceObject: {fileID: 0}
283 | m_PrefabInstance: {fileID: 0}
284 | m_PrefabAsset: {fileID: 0}
285 | m_GameObject: {fileID: 1688785489}
286 | m_Enabled: 1
287 | m_EditorHideFlags: 0
288 | m_Script: {fileID: 11500000, guid: 70dbf01cb96b474587da2644ff4bcc77, type: 3}
289 | m_Name:
290 | m_EditorClassIdentifier:
291 | boidsBufferProperty:
292 | m_Name: BoidsBuffer
293 | boidsCountProperty:
294 | m_Name: BoidsCount
295 | boidsComputeShader: {fileID: 7200000, guid: 13dcc01f0e3b4a4eba0ede6338237876, type: 3}
296 | boidsCount: 17024
297 | insightRange: 6
298 | maxVelocity: 3
299 | maxAcceleration: 2.5
300 | boundarySize: {x: 25, y: 25, z: 25}
301 | timeScale: 1
302 | fleeThreshold: 1
303 | alignWeight: 1
304 | separationWeight: 2
305 | cohesionWeight: 1
306 | wallForceWight: 1.66
307 | wallDistanceWeight: 4.2
308 | --- !u!114 &1688785491
309 | MonoBehaviour:
310 | m_ObjectHideFlags: 0
311 | m_CorrespondingSourceObject: {fileID: 0}
312 | m_PrefabInstance: {fileID: 0}
313 | m_PrefabAsset: {fileID: 0}
314 | m_GameObject: {fileID: 1688785489}
315 | m_Enabled: 1
316 | m_EditorHideFlags: 0
317 | m_Script: {fileID: 11500000, guid: cdafc37f32b176349b1684c4455b98e9, type: 3}
318 | m_Name:
319 | m_EditorClassIdentifier:
320 | m_ExecuteInEditor: 1
321 | m_Bindings:
322 | - {fileID: 1688785490}
323 | m_VisualEffect: {fileID: 1688785493}
324 | --- !u!73398921 &1688785492
325 | VFXRenderer:
326 | serializedVersion: 1
327 | m_ObjectHideFlags: 2
328 | m_CorrespondingSourceObject: {fileID: 0}
329 | m_PrefabInstance: {fileID: 0}
330 | m_PrefabAsset: {fileID: 0}
331 | m_GameObject: {fileID: 1688785489}
332 | m_Enabled: 1
333 | m_CastShadows: 1
334 | m_ReceiveShadows: 0
335 | m_DynamicOccludee: 1
336 | m_StaticShadowCaster: 0
337 | m_MotionVectors: 0
338 | m_LightProbeUsage: 0
339 | m_ReflectionProbeUsage: 0
340 | m_RayTracingMode: 0
341 | m_RayTraceProcedural: 0
342 | m_RayTracingAccelStructBuildFlagsOverride: 0
343 | m_RayTracingAccelStructBuildFlags: 1
344 | m_RenderingLayerMask: 1
345 | m_RendererPriority: 0
346 | m_StaticBatchInfo:
347 | firstSubMesh: 0
348 | subMeshCount: 0
349 | m_StaticBatchRoot: {fileID: 0}
350 | m_ProbeAnchor: {fileID: 0}
351 | m_LightProbeVolumeOverride: {fileID: 0}
352 | m_ScaleInLightmap: 1
353 | m_ReceiveGI: 1
354 | m_PreserveUVs: 0
355 | m_IgnoreNormalsForChartDetection: 0
356 | m_ImportantGI: 0
357 | m_StitchLightmapSeams: 1
358 | m_SelectedEditorRenderState: 3
359 | m_MinimumChartSize: 4
360 | m_AutoUVMaxDistance: 0.5
361 | m_AutoUVMaxAngle: 89
362 | m_LightmapParameters: {fileID: 0}
363 | m_SortingLayerID: 0
364 | m_SortingLayer: 0
365 | m_SortingOrder: 0
366 | --- !u!2083052967 &1688785493
367 | VisualEffect:
368 | m_ObjectHideFlags: 0
369 | m_CorrespondingSourceObject: {fileID: 0}
370 | m_PrefabInstance: {fileID: 0}
371 | m_PrefabAsset: {fileID: 0}
372 | m_GameObject: {fileID: 1688785489}
373 | m_Enabled: 1
374 | m_Asset: {fileID: 8926484042661614526, guid: 8139cc4e9ed3e5d4792e3e6108b88071, type: 3}
375 | m_InitialEventName: OnPlay
376 | m_InitialEventNameOverriden: 0
377 | m_StartSeed: 0
378 | m_ResetSeedOnPlay: 1
379 | m_AllowInstancing: 1
380 | m_ResourceVersion: 1
381 | m_PropertySheet:
382 | m_Float:
383 | m_Array:
384 | - m_Value: 1.01
385 | m_Name: ColorMultiplier
386 | m_Overridden: 1
387 | m_Vector2f:
388 | m_Array: []
389 | m_Vector3f:
390 | m_Array: []
391 | m_Vector4f:
392 | m_Array: []
393 | m_Uint:
394 | m_Array: []
395 | m_Int:
396 | m_Array:
397 | - m_Value: 17024
398 | m_Name: BoidsCount
399 | m_Overridden: 1
400 | m_Matrix4x4f:
401 | m_Array: []
402 | m_AnimationCurve:
403 | m_Array: []
404 | m_Gradient:
405 | m_Array: []
406 | m_NamedObject:
407 | m_Array: []
408 | m_Bool:
409 | m_Array: []
410 | --- !u!4 &1688785494
411 | Transform:
412 | m_ObjectHideFlags: 0
413 | m_CorrespondingSourceObject: {fileID: 0}
414 | m_PrefabInstance: {fileID: 0}
415 | m_PrefabAsset: {fileID: 0}
416 | m_GameObject: {fileID: 1688785489}
417 | serializedVersion: 2
418 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
419 | m_LocalPosition: {x: 0, y: 0, z: 0}
420 | m_LocalScale: {x: 1, y: 1, z: 1}
421 | m_ConstrainProportionsScale: 0
422 | m_Children: []
423 | m_Father: {fileID: 0}
424 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
425 | --- !u!1 &1979202325
426 | GameObject:
427 | m_ObjectHideFlags: 0
428 | m_CorrespondingSourceObject: {fileID: 0}
429 | m_PrefabInstance: {fileID: 0}
430 | m_PrefabAsset: {fileID: 0}
431 | serializedVersion: 6
432 | m_Component:
433 | - component: {fileID: 1979202327}
434 | - component: {fileID: 1979202326}
435 | - component: {fileID: 1979202328}
436 | m_Layer: 0
437 | m_Name: Directional Light
438 | m_TagString: Untagged
439 | m_Icon: {fileID: 0}
440 | m_NavMeshLayer: 0
441 | m_StaticEditorFlags: 0
442 | m_IsActive: 1
443 | --- !u!108 &1979202326
444 | Light:
445 | m_ObjectHideFlags: 0
446 | m_CorrespondingSourceObject: {fileID: 0}
447 | m_PrefabInstance: {fileID: 0}
448 | m_PrefabAsset: {fileID: 0}
449 | m_GameObject: {fileID: 1979202325}
450 | m_Enabled: 1
451 | serializedVersion: 11
452 | m_Type: 1
453 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
454 | m_Intensity: 1
455 | m_Range: 10
456 | m_SpotAngle: 30
457 | m_InnerSpotAngle: 21.80208
458 | m_CookieSize: 10
459 | m_Shadows:
460 | m_Type: 2
461 | m_Resolution: -1
462 | m_CustomResolution: -1
463 | m_Strength: 1
464 | m_Bias: 0.05
465 | m_NormalBias: 0.4
466 | m_NearPlane: 0.2
467 | m_CullingMatrixOverride:
468 | e00: 1
469 | e01: 0
470 | e02: 0
471 | e03: 0
472 | e10: 0
473 | e11: 1
474 | e12: 0
475 | e13: 0
476 | e20: 0
477 | e21: 0
478 | e22: 1
479 | e23: 0
480 | e30: 0
481 | e31: 0
482 | e32: 0
483 | e33: 1
484 | m_UseCullingMatrixOverride: 0
485 | m_Cookie: {fileID: 0}
486 | m_DrawHalo: 0
487 | m_Flare: {fileID: 0}
488 | m_RenderMode: 0
489 | m_CullingMask:
490 | serializedVersion: 2
491 | m_Bits: 4294967295
492 | m_RenderingLayerMask: 1
493 | m_Lightmapping: 4
494 | m_LightShadowCasterMode: 0
495 | m_AreaSize: {x: 1, y: 1}
496 | m_BounceIntensity: 1
497 | m_ColorTemperature: 6570
498 | m_UseColorTemperature: 0
499 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
500 | m_UseBoundingSphereOverride: 0
501 | m_UseViewFrustumForShadowCasterCull: 1
502 | m_ShadowRadius: 0
503 | m_ShadowAngle: 0
504 | --- !u!4 &1979202327
505 | Transform:
506 | m_ObjectHideFlags: 0
507 | m_CorrespondingSourceObject: {fileID: 0}
508 | m_PrefabInstance: {fileID: 0}
509 | m_PrefabAsset: {fileID: 0}
510 | m_GameObject: {fileID: 1979202325}
511 | serializedVersion: 2
512 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
513 | m_LocalPosition: {x: 0, y: 3, z: 0}
514 | m_LocalScale: {x: 1, y: 1, z: 1}
515 | m_ConstrainProportionsScale: 0
516 | m_Children: []
517 | m_Father: {fileID: 0}
518 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
519 | --- !u!114 &1979202328
520 | MonoBehaviour:
521 | m_ObjectHideFlags: 0
522 | m_CorrespondingSourceObject: {fileID: 0}
523 | m_PrefabInstance: {fileID: 0}
524 | m_PrefabAsset: {fileID: 0}
525 | m_GameObject: {fileID: 1979202325}
526 | m_Enabled: 1
527 | m_EditorHideFlags: 0
528 | m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
529 | m_Name:
530 | m_EditorClassIdentifier:
531 | m_Version: 3
532 | m_UsePipelineSettings: 1
533 | m_AdditionalLightsShadowResolutionTier: 2
534 | m_LightLayerMask: 1
535 | m_RenderingLayers: 1
536 | m_CustomShadowLayers: 0
537 | m_ShadowLayerMask: 1
538 | m_ShadowRenderingLayers: 1
539 | m_LightCookieSize: {x: 1, y: 1}
540 | m_LightCookieOffset: {x: 0, y: 0}
541 | m_SoftShadowQuality: 0
542 | --- !u!1 &2008164750
543 | GameObject:
544 | m_ObjectHideFlags: 0
545 | m_CorrespondingSourceObject: {fileID: 0}
546 | m_PrefabInstance: {fileID: 0}
547 | m_PrefabAsset: {fileID: 0}
548 | serializedVersion: 6
549 | m_Component:
550 | - component: {fileID: 2008164752}
551 | - component: {fileID: 2008164751}
552 | m_Layer: 0
553 | m_Name: PP Volume
554 | m_TagString: Untagged
555 | m_Icon: {fileID: 0}
556 | m_NavMeshLayer: 0
557 | m_StaticEditorFlags: 0
558 | m_IsActive: 1
559 | --- !u!114 &2008164751
560 | MonoBehaviour:
561 | m_ObjectHideFlags: 0
562 | m_CorrespondingSourceObject: {fileID: 0}
563 | m_PrefabInstance: {fileID: 0}
564 | m_PrefabAsset: {fileID: 0}
565 | m_GameObject: {fileID: 2008164750}
566 | m_Enabled: 1
567 | m_EditorHideFlags: 0
568 | m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3}
569 | m_Name:
570 | m_EditorClassIdentifier:
571 | m_IsGlobal: 1
572 | priority: 0
573 | blendDistance: 0
574 | weight: 1
575 | sharedProfile: {fileID: 11400000, guid: 2425c31ba78a133418c17a604a91b8ef, type: 2}
576 | --- !u!4 &2008164752
577 | Transform:
578 | m_ObjectHideFlags: 0
579 | m_CorrespondingSourceObject: {fileID: 0}
580 | m_PrefabInstance: {fileID: 0}
581 | m_PrefabAsset: {fileID: 0}
582 | m_GameObject: {fileID: 2008164750}
583 | serializedVersion: 2
584 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
585 | m_LocalPosition: {x: 0, y: 0, z: 0}
586 | m_LocalScale: {x: 1, y: 1, z: 1}
587 | m_ConstrainProportionsScale: 0
588 | m_Children: []
589 | m_Father: {fileID: 0}
590 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
591 | --- !u!1660057539 &9223372036854775807
592 | SceneRoots:
593 | m_ObjectHideFlags: 0
594 | m_Roots:
595 | - {fileID: 57833323}
596 | - {fileID: 1979202327}
597 | - {fileID: 1688785494}
598 | - {fileID: 2008164752}
599 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Main.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c7edd7827b884714dbb8037c49549498
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Main/PP Volume Profile.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &-8358622127191537931
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 3
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: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3}
13 | m_Name: Vignette
14 | m_EditorClassIdentifier:
15 | active: 1
16 | color:
17 | m_OverrideState: 0
18 | m_Value: {r: 0, g: 0, b: 0, a: 1}
19 | center:
20 | m_OverrideState: 0
21 | m_Value: {x: 0.5, y: 0.5}
22 | intensity:
23 | m_OverrideState: 0
24 | m_Value: 0
25 | smoothness:
26 | m_OverrideState: 0
27 | m_Value: 0.2
28 | rounded:
29 | m_OverrideState: 0
30 | m_Value: 0
31 | --- !u!114 &-7948113834782048955
32 | MonoBehaviour:
33 | m_ObjectHideFlags: 3
34 | m_CorrespondingSourceObject: {fileID: 0}
35 | m_PrefabInstance: {fileID: 0}
36 | m_PrefabAsset: {fileID: 0}
37 | m_GameObject: {fileID: 0}
38 | m_Enabled: 1
39 | m_EditorHideFlags: 0
40 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3}
41 | m_Name: ChromaticAberration
42 | m_EditorClassIdentifier:
43 | active: 1
44 | intensity:
45 | m_OverrideState: 1
46 | m_Value: 0
47 | --- !u!114 &-6500778313627392718
48 | MonoBehaviour:
49 | m_ObjectHideFlags: 3
50 | m_CorrespondingSourceObject: {fileID: 0}
51 | m_PrefabInstance: {fileID: 0}
52 | m_PrefabAsset: {fileID: 0}
53 | m_GameObject: {fileID: 0}
54 | m_Enabled: 1
55 | m_EditorHideFlags: 0
56 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3}
57 | m_Name: Bloom
58 | m_EditorClassIdentifier:
59 | active: 1
60 | skipIterations:
61 | m_OverrideState: 0
62 | m_Value: 1
63 | threshold:
64 | m_OverrideState: 1
65 | m_Value: 0.9
66 | intensity:
67 | m_OverrideState: 1
68 | m_Value: 3.28
69 | scatter:
70 | m_OverrideState: 1
71 | m_Value: 0.866
72 | clamp:
73 | m_OverrideState: 0
74 | m_Value: 65472
75 | tint:
76 | m_OverrideState: 0
77 | m_Value: {r: 1, g: 1, b: 1, a: 1}
78 | highQualityFiltering:
79 | m_OverrideState: 0
80 | m_Value: 0
81 | downscale:
82 | m_OverrideState: 0
83 | m_Value: 0
84 | maxIterations:
85 | m_OverrideState: 0
86 | m_Value: 6
87 | dirtTexture:
88 | m_OverrideState: 0
89 | m_Value: {fileID: 0}
90 | dimension: 1
91 | dirtIntensity:
92 | m_OverrideState: 0
93 | m_Value: 0
94 | --- !u!114 &-3713928343778491412
95 | MonoBehaviour:
96 | m_ObjectHideFlags: 3
97 | m_CorrespondingSourceObject: {fileID: 0}
98 | m_PrefabInstance: {fileID: 0}
99 | m_PrefabAsset: {fileID: 0}
100 | m_GameObject: {fileID: 0}
101 | m_Enabled: 1
102 | m_EditorHideFlags: 0
103 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3}
104 | m_Name: Tonemapping
105 | m_EditorClassIdentifier:
106 | active: 1
107 | mode:
108 | m_OverrideState: 1
109 | m_Value: 2
110 | neutralHDRRangeReductionMode:
111 | m_OverrideState: 0
112 | m_Value: 2
113 | acesPreset:
114 | m_OverrideState: 0
115 | m_Value: 3
116 | hueShiftAmount:
117 | m_OverrideState: 0
118 | m_Value: 0
119 | detectPaperWhite:
120 | m_OverrideState: 0
121 | m_Value: 0
122 | paperWhite:
123 | m_OverrideState: 0
124 | m_Value: 300
125 | detectBrightnessLimits:
126 | m_OverrideState: 0
127 | m_Value: 1
128 | minNits:
129 | m_OverrideState: 0
130 | m_Value: 0.005
131 | maxNits:
132 | m_OverrideState: 0
133 | m_Value: 1000
134 | --- !u!114 &11400000
135 | MonoBehaviour:
136 | m_ObjectHideFlags: 0
137 | m_CorrespondingSourceObject: {fileID: 0}
138 | m_PrefabInstance: {fileID: 0}
139 | m_PrefabAsset: {fileID: 0}
140 | m_GameObject: {fileID: 0}
141 | m_Enabled: 1
142 | m_EditorHideFlags: 0
143 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
144 | m_Name: PP Volume Profile
145 | m_EditorClassIdentifier:
146 | components:
147 | - {fileID: -6500778313627392718}
148 | - {fileID: -7948113834782048955}
149 | - {fileID: 5579587814973074053}
150 | - {fileID: 781718048173026694}
151 | - {fileID: -3713928343778491412}
152 | - {fileID: 4630537556764098488}
153 | - {fileID: -8358622127191537931}
154 | --- !u!114 &781718048173026694
155 | MonoBehaviour:
156 | m_ObjectHideFlags: 3
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: 0
163 | m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3}
164 | m_Name: DepthOfField
165 | m_EditorClassIdentifier:
166 | active: 1
167 | mode:
168 | m_OverrideState: 0
169 | m_Value: 0
170 | gaussianStart:
171 | m_OverrideState: 0
172 | m_Value: 10
173 | gaussianEnd:
174 | m_OverrideState: 0
175 | m_Value: 30
176 | gaussianMaxRadius:
177 | m_OverrideState: 0
178 | m_Value: 1
179 | highQualitySampling:
180 | m_OverrideState: 0
181 | m_Value: 0
182 | focusDistance:
183 | m_OverrideState: 0
184 | m_Value: 10
185 | aperture:
186 | m_OverrideState: 0
187 | m_Value: 5.6
188 | focalLength:
189 | m_OverrideState: 0
190 | m_Value: 50
191 | bladeCount:
192 | m_OverrideState: 0
193 | m_Value: 5
194 | bladeCurvature:
195 | m_OverrideState: 0
196 | m_Value: 1
197 | bladeRotation:
198 | m_OverrideState: 0
199 | m_Value: 0
200 | --- !u!114 &4630537556764098488
201 | MonoBehaviour:
202 | m_ObjectHideFlags: 3
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: 0
209 | m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3}
210 | m_Name: WhiteBalance
211 | m_EditorClassIdentifier:
212 | active: 1
213 | temperature:
214 | m_OverrideState: 0
215 | m_Value: 0
216 | tint:
217 | m_OverrideState: 0
218 | m_Value: 0
219 | --- !u!114 &5579587814973074053
220 | MonoBehaviour:
221 | m_ObjectHideFlags: 3
222 | m_CorrespondingSourceObject: {fileID: 0}
223 | m_PrefabInstance: {fileID: 0}
224 | m_PrefabAsset: {fileID: 0}
225 | m_GameObject: {fileID: 0}
226 | m_Enabled: 1
227 | m_EditorHideFlags: 0
228 | m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3}
229 | m_Name: ColorAdjustments
230 | m_EditorClassIdentifier:
231 | active: 1
232 | postExposure:
233 | m_OverrideState: 1
234 | m_Value: 0
235 | contrast:
236 | m_OverrideState: 0
237 | m_Value: 0
238 | colorFilter:
239 | m_OverrideState: 0
240 | m_Value: {r: 1, g: 1, b: 1, a: 1}
241 | hueShift:
242 | m_OverrideState: 0
243 | m_Value: 0
244 | saturation:
245 | m_OverrideState: 0
246 | m_Value: 0
247 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Main/PP Volume Profile.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2425c31ba78a133418c17a604a91b8ef
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Minimal.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 10
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GISettings:
48 | serializedVersion: 2
49 | m_BounceScale: 1
50 | m_IndirectOutputScale: 1
51 | m_AlbedoBoost: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 1
54 | m_EnableRealtimeLightmaps: 0
55 | m_LightmapEditorSettings:
56 | serializedVersion: 12
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_AtlasSize: 1024
60 | m_AO: 0
61 | m_AOMaxDistance: 1
62 | m_CompAOExponent: 1
63 | m_CompAOExponentDirect: 0
64 | m_ExtractAmbientOcclusion: 0
65 | m_Padding: 2
66 | m_LightmapParameters: {fileID: 0}
67 | m_LightmapsBakeMode: 1
68 | m_TextureCompression: 1
69 | m_ReflectionCompression: 2
70 | m_MixedBakeMode: 2
71 | m_BakeBackend: 1
72 | m_PVRSampling: 1
73 | m_PVRDirectSampleCount: 32
74 | m_PVRSampleCount: 512
75 | m_PVRBounces: 2
76 | m_PVREnvironmentSampleCount: 256
77 | m_PVREnvironmentReferencePointCount: 2048
78 | m_PVRFilteringMode: 1
79 | m_PVRDenoiserTypeDirect: 1
80 | m_PVRDenoiserTypeIndirect: 1
81 | m_PVRDenoiserTypeAO: 1
82 | m_PVRFilterTypeDirect: 0
83 | m_PVRFilterTypeIndirect: 0
84 | m_PVRFilterTypeAO: 0
85 | m_PVREnvironmentMIS: 1
86 | m_PVRCulling: 1
87 | m_PVRFilteringGaussRadiusDirect: 1
88 | m_PVRFilteringGaussRadiusIndirect: 5
89 | m_PVRFilteringGaussRadiusAO: 2
90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
92 | m_PVRFilteringAtrousPositionSigmaAO: 1
93 | m_ExportTrainingData: 0
94 | m_TrainingDataDestination: TrainingData
95 | m_LightProbeSampleCountMultiplier: 4
96 | m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
97 | m_LightingSettings: {fileID: 0}
98 | --- !u!196 &4
99 | NavMeshSettings:
100 | serializedVersion: 2
101 | m_ObjectHideFlags: 0
102 | m_BuildSettings:
103 | serializedVersion: 3
104 | agentTypeID: 0
105 | agentRadius: 0.5
106 | agentHeight: 2
107 | agentSlope: 45
108 | agentClimb: 0.4
109 | ledgeDropHeight: 0
110 | maxJumpAcrossDistance: 0
111 | minRegionArea: 2
112 | manualCellSize: 0
113 | cellSize: 0.16666667
114 | manualTileSize: 0
115 | tileSize: 256
116 | buildHeightMesh: 0
117 | maxJobWorkers: 0
118 | preserveTilesOutsideBounds: 0
119 | debug:
120 | m_Flags: 0
121 | m_NavMeshData: {fileID: 0}
122 | --- !u!1 &633905917
123 | GameObject:
124 | m_ObjectHideFlags: 0
125 | m_CorrespondingSourceObject: {fileID: 0}
126 | m_PrefabInstance: {fileID: 0}
127 | m_PrefabAsset: {fileID: 0}
128 | serializedVersion: 6
129 | m_Component:
130 | - component: {fileID: 633905919}
131 | - component: {fileID: 633905918}
132 | - component: {fileID: 633905920}
133 | m_Layer: 0
134 | m_Name: Directional Light
135 | m_TagString: Untagged
136 | m_Icon: {fileID: 0}
137 | m_NavMeshLayer: 0
138 | m_StaticEditorFlags: 0
139 | m_IsActive: 1
140 | --- !u!108 &633905918
141 | Light:
142 | m_ObjectHideFlags: 0
143 | m_CorrespondingSourceObject: {fileID: 0}
144 | m_PrefabInstance: {fileID: 0}
145 | m_PrefabAsset: {fileID: 0}
146 | m_GameObject: {fileID: 633905917}
147 | m_Enabled: 1
148 | serializedVersion: 11
149 | m_Type: 1
150 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
151 | m_Intensity: 1
152 | m_Range: 10
153 | m_SpotAngle: 30
154 | m_InnerSpotAngle: 21.80208
155 | m_CookieSize: 10
156 | m_Shadows:
157 | m_Type: 2
158 | m_Resolution: -1
159 | m_CustomResolution: -1
160 | m_Strength: 1
161 | m_Bias: 0.05
162 | m_NormalBias: 0.4
163 | m_NearPlane: 0.2
164 | m_CullingMatrixOverride:
165 | e00: 1
166 | e01: 0
167 | e02: 0
168 | e03: 0
169 | e10: 0
170 | e11: 1
171 | e12: 0
172 | e13: 0
173 | e20: 0
174 | e21: 0
175 | e22: 1
176 | e23: 0
177 | e30: 0
178 | e31: 0
179 | e32: 0
180 | e33: 1
181 | m_UseCullingMatrixOverride: 0
182 | m_Cookie: {fileID: 0}
183 | m_DrawHalo: 0
184 | m_Flare: {fileID: 0}
185 | m_RenderMode: 0
186 | m_CullingMask:
187 | serializedVersion: 2
188 | m_Bits: 4294967295
189 | m_RenderingLayerMask: 1
190 | m_Lightmapping: 4
191 | m_LightShadowCasterMode: 0
192 | m_AreaSize: {x: 1, y: 1}
193 | m_BounceIntensity: 1
194 | m_ColorTemperature: 6570
195 | m_UseColorTemperature: 0
196 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
197 | m_UseBoundingSphereOverride: 0
198 | m_UseViewFrustumForShadowCasterCull: 1
199 | m_ShadowRadius: 0
200 | m_ShadowAngle: 0
201 | --- !u!4 &633905919
202 | Transform:
203 | m_ObjectHideFlags: 0
204 | m_CorrespondingSourceObject: {fileID: 0}
205 | m_PrefabInstance: {fileID: 0}
206 | m_PrefabAsset: {fileID: 0}
207 | m_GameObject: {fileID: 633905917}
208 | serializedVersion: 2
209 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
210 | m_LocalPosition: {x: 0, y: 3, z: 0}
211 | m_LocalScale: {x: 1, y: 1, z: 1}
212 | m_ConstrainProportionsScale: 0
213 | m_Children: []
214 | m_Father: {fileID: 0}
215 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
216 | --- !u!114 &633905920
217 | MonoBehaviour:
218 | m_ObjectHideFlags: 0
219 | m_CorrespondingSourceObject: {fileID: 0}
220 | m_PrefabInstance: {fileID: 0}
221 | m_PrefabAsset: {fileID: 0}
222 | m_GameObject: {fileID: 633905917}
223 | m_Enabled: 1
224 | m_EditorHideFlags: 0
225 | m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
226 | m_Name:
227 | m_EditorClassIdentifier:
228 | m_Version: 3
229 | m_UsePipelineSettings: 1
230 | m_AdditionalLightsShadowResolutionTier: 2
231 | m_LightLayerMask: 1
232 | m_RenderingLayers: 1
233 | m_CustomShadowLayers: 0
234 | m_ShadowLayerMask: 1
235 | m_ShadowRenderingLayers: 1
236 | m_LightCookieSize: {x: 1, y: 1}
237 | m_LightCookieOffset: {x: 0, y: 0}
238 | m_SoftShadowQuality: 0
239 | --- !u!1 &1244098595
240 | GameObject:
241 | m_ObjectHideFlags: 0
242 | m_CorrespondingSourceObject: {fileID: 0}
243 | m_PrefabInstance: {fileID: 0}
244 | m_PrefabAsset: {fileID: 0}
245 | serializedVersion: 6
246 | m_Component:
247 | - component: {fileID: 1244098598}
248 | - component: {fileID: 1244098597}
249 | - component: {fileID: 1244098596}
250 | - component: {fileID: 1244098599}
251 | m_Layer: 0
252 | m_Name: Main Camera
253 | m_TagString: MainCamera
254 | m_Icon: {fileID: 0}
255 | m_NavMeshLayer: 0
256 | m_StaticEditorFlags: 0
257 | m_IsActive: 1
258 | --- !u!81 &1244098596
259 | AudioListener:
260 | m_ObjectHideFlags: 0
261 | m_CorrespondingSourceObject: {fileID: 0}
262 | m_PrefabInstance: {fileID: 0}
263 | m_PrefabAsset: {fileID: 0}
264 | m_GameObject: {fileID: 1244098595}
265 | m_Enabled: 1
266 | --- !u!20 &1244098597
267 | Camera:
268 | m_ObjectHideFlags: 0
269 | m_CorrespondingSourceObject: {fileID: 0}
270 | m_PrefabInstance: {fileID: 0}
271 | m_PrefabAsset: {fileID: 0}
272 | m_GameObject: {fileID: 1244098595}
273 | m_Enabled: 1
274 | serializedVersion: 2
275 | m_ClearFlags: 1
276 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
277 | m_projectionMatrixMode: 1
278 | m_GateFitMode: 2
279 | m_FOVAxisMode: 0
280 | m_Iso: 200
281 | m_ShutterSpeed: 0.005
282 | m_Aperture: 16
283 | m_FocusDistance: 10
284 | m_FocalLength: 50
285 | m_BladeCount: 5
286 | m_Curvature: {x: 2, y: 11}
287 | m_BarrelClipping: 0.25
288 | m_Anamorphism: 0
289 | m_SensorSize: {x: 36, y: 24}
290 | m_LensShift: {x: 0, y: 0}
291 | m_NormalizedViewPortRect:
292 | serializedVersion: 2
293 | x: 0
294 | y: 0
295 | width: 1
296 | height: 1
297 | near clip plane: 0.3
298 | far clip plane: 1000
299 | field of view: 60
300 | orthographic: 0
301 | orthographic size: 5
302 | m_Depth: -1
303 | m_CullingMask:
304 | serializedVersion: 2
305 | m_Bits: 4294967295
306 | m_RenderingPath: -1
307 | m_TargetTexture: {fileID: 0}
308 | m_TargetDisplay: 0
309 | m_TargetEye: 3
310 | m_HDR: 1
311 | m_AllowMSAA: 1
312 | m_AllowDynamicResolution: 0
313 | m_ForceIntoRT: 0
314 | m_OcclusionCulling: 1
315 | m_StereoConvergence: 10
316 | m_StereoSeparation: 0.022
317 | --- !u!4 &1244098598
318 | Transform:
319 | m_ObjectHideFlags: 0
320 | m_CorrespondingSourceObject: {fileID: 0}
321 | m_PrefabInstance: {fileID: 0}
322 | m_PrefabAsset: {fileID: 0}
323 | m_GameObject: {fileID: 1244098595}
324 | serializedVersion: 2
325 | m_LocalRotation: {x: 0.11022275, y: -0.8594521, z: 0.20895703, w: 0.45335415}
326 | m_LocalPosition: {x: 12.337954, y: 6.5708895, z: 8.793917}
327 | m_LocalScale: {x: 1, y: 1, z: 1}
328 | m_ConstrainProportionsScale: 0
329 | m_Children: []
330 | m_Father: {fileID: 0}
331 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
332 | --- !u!114 &1244098599
333 | MonoBehaviour:
334 | m_ObjectHideFlags: 0
335 | m_CorrespondingSourceObject: {fileID: 0}
336 | m_PrefabInstance: {fileID: 0}
337 | m_PrefabAsset: {fileID: 0}
338 | m_GameObject: {fileID: 1244098595}
339 | m_Enabled: 1
340 | m_EditorHideFlags: 0
341 | m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
342 | m_Name:
343 | m_EditorClassIdentifier:
344 | m_RenderShadows: 1
345 | m_RequiresDepthTextureOption: 2
346 | m_RequiresOpaqueTextureOption: 2
347 | m_CameraType: 0
348 | m_Cameras: []
349 | m_RendererIndex: -1
350 | m_VolumeLayerMask:
351 | serializedVersion: 2
352 | m_Bits: 1
353 | m_VolumeTrigger: {fileID: 0}
354 | m_VolumeFrameworkUpdateModeOption: 2
355 | m_RenderPostProcessing: 0
356 | m_Antialiasing: 0
357 | m_AntialiasingQuality: 2
358 | m_StopNaN: 0
359 | m_Dithering: 0
360 | m_ClearDepth: 1
361 | m_AllowXRRendering: 1
362 | m_AllowHDROutput: 1
363 | m_UseScreenCoordOverride: 0
364 | m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
365 | m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
366 | m_RequiresDepthTexture: 0
367 | m_RequiresColorTexture: 0
368 | m_Version: 2
369 | m_TaaSettings:
370 | quality: 3
371 | frameInfluence: 0.1
372 | jitterScale: 1
373 | mipBias: 0
374 | varianceClampScale: 0.9
375 | contrastAdaptiveSharpening: 0
376 | --- !u!1 &1780185557
377 | GameObject:
378 | m_ObjectHideFlags: 0
379 | m_CorrespondingSourceObject: {fileID: 0}
380 | m_PrefabInstance: {fileID: 0}
381 | m_PrefabAsset: {fileID: 0}
382 | serializedVersion: 6
383 | m_Component:
384 | - component: {fileID: 1780185559}
385 | - component: {fileID: 1780185558}
386 | m_Layer: 0
387 | m_Name: Boids Behaviour
388 | m_TagString: Untagged
389 | m_Icon: {fileID: 0}
390 | m_NavMeshLayer: 0
391 | m_StaticEditorFlags: 0
392 | m_IsActive: 1
393 | --- !u!114 &1780185558
394 | MonoBehaviour:
395 | m_ObjectHideFlags: 0
396 | m_CorrespondingSourceObject: {fileID: 0}
397 | m_PrefabInstance: {fileID: 0}
398 | m_PrefabAsset: {fileID: 0}
399 | m_GameObject: {fileID: 1780185557}
400 | m_Enabled: 1
401 | m_EditorHideFlags: 0
402 | m_Script: {fileID: 11500000, guid: 6c87b018669b41f1b7c6d8b35dfde564, type: 3}
403 | m_Name:
404 | m_EditorClassIdentifier:
405 | boidPrefab: {fileID: 3491508281341080955, guid: 1b564c791d273ec409941338b750f4ef, type: 3}
406 | boidsCount: 400
407 | insightRange: 4
408 | maxVelocity: 5
409 | maxAcceleration: 5
410 | boundarySize: {x: 10, y: 10, z: 10}
411 | timeScale: 1
412 | fleeThreshold: 0.75
413 | alignWeight: 3
414 | separationWeight: 2
415 | cohesionWeight: 1
416 | --- !u!4 &1780185559
417 | Transform:
418 | m_ObjectHideFlags: 0
419 | m_CorrespondingSourceObject: {fileID: 0}
420 | m_PrefabInstance: {fileID: 0}
421 | m_PrefabAsset: {fileID: 0}
422 | m_GameObject: {fileID: 1780185557}
423 | serializedVersion: 2
424 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
425 | m_LocalPosition: {x: 0, y: 0, z: 0}
426 | m_LocalScale: {x: 1, y: 1, z: 1}
427 | m_ConstrainProportionsScale: 0
428 | m_Children: []
429 | m_Father: {fileID: 0}
430 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
431 | --- !u!1660057539 &9223372036854775807
432 | SceneRoots:
433 | m_ObjectHideFlags: 0
434 | m_Roots:
435 | - {fileID: 1244098598}
436 | - {fileID: 633905919}
437 | - {fileID: 1780185559}
438 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Minimal.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 038f2e1d2324b8f41aabbb8a059962ac
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Test.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 10
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 0}
41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GISettings:
48 | serializedVersion: 2
49 | m_BounceScale: 1
50 | m_IndirectOutputScale: 1
51 | m_AlbedoBoost: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 1
54 | m_EnableRealtimeLightmaps: 0
55 | m_LightmapEditorSettings:
56 | serializedVersion: 12
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_AtlasSize: 1024
60 | m_AO: 0
61 | m_AOMaxDistance: 1
62 | m_CompAOExponent: 1
63 | m_CompAOExponentDirect: 0
64 | m_ExtractAmbientOcclusion: 0
65 | m_Padding: 2
66 | m_LightmapParameters: {fileID: 0}
67 | m_LightmapsBakeMode: 1
68 | m_TextureCompression: 1
69 | m_ReflectionCompression: 2
70 | m_MixedBakeMode: 2
71 | m_BakeBackend: 1
72 | m_PVRSampling: 1
73 | m_PVRDirectSampleCount: 32
74 | m_PVRSampleCount: 512
75 | m_PVRBounces: 2
76 | m_PVREnvironmentSampleCount: 256
77 | m_PVREnvironmentReferencePointCount: 2048
78 | m_PVRFilteringMode: 1
79 | m_PVRDenoiserTypeDirect: 1
80 | m_PVRDenoiserTypeIndirect: 1
81 | m_PVRDenoiserTypeAO: 1
82 | m_PVRFilterTypeDirect: 0
83 | m_PVRFilterTypeIndirect: 0
84 | m_PVRFilterTypeAO: 0
85 | m_PVREnvironmentMIS: 1
86 | m_PVRCulling: 1
87 | m_PVRFilteringGaussRadiusDirect: 1
88 | m_PVRFilteringGaussRadiusIndirect: 5
89 | m_PVRFilteringGaussRadiusAO: 2
90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
92 | m_PVRFilteringAtrousPositionSigmaAO: 1
93 | m_ExportTrainingData: 0
94 | m_TrainingDataDestination: TrainingData
95 | m_LightProbeSampleCountMultiplier: 4
96 | m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
97 | m_LightingSettings: {fileID: 0}
98 | --- !u!196 &4
99 | NavMeshSettings:
100 | serializedVersion: 2
101 | m_ObjectHideFlags: 0
102 | m_BuildSettings:
103 | serializedVersion: 3
104 | agentTypeID: 0
105 | agentRadius: 0.5
106 | agentHeight: 2
107 | agentSlope: 45
108 | agentClimb: 0.4
109 | ledgeDropHeight: 0
110 | maxJumpAcrossDistance: 0
111 | minRegionArea: 2
112 | manualCellSize: 0
113 | cellSize: 0.16666667
114 | manualTileSize: 0
115 | tileSize: 256
116 | buildHeightMesh: 0
117 | maxJobWorkers: 0
118 | preserveTilesOutsideBounds: 0
119 | debug:
120 | m_Flags: 0
121 | m_NavMeshData: {fileID: 0}
122 | --- !u!1 &192023288
123 | GameObject:
124 | m_ObjectHideFlags: 0
125 | m_CorrespondingSourceObject: {fileID: 0}
126 | m_PrefabInstance: {fileID: 0}
127 | m_PrefabAsset: {fileID: 0}
128 | serializedVersion: 6
129 | m_Component:
130 | - component: {fileID: 192023290}
131 | - component: {fileID: 192023289}
132 | - component: {fileID: 192023291}
133 | m_Layer: 0
134 | m_Name: Directional Light
135 | m_TagString: Untagged
136 | m_Icon: {fileID: 0}
137 | m_NavMeshLayer: 0
138 | m_StaticEditorFlags: 0
139 | m_IsActive: 1
140 | --- !u!108 &192023289
141 | Light:
142 | m_ObjectHideFlags: 0
143 | m_CorrespondingSourceObject: {fileID: 0}
144 | m_PrefabInstance: {fileID: 0}
145 | m_PrefabAsset: {fileID: 0}
146 | m_GameObject: {fileID: 192023288}
147 | m_Enabled: 1
148 | serializedVersion: 11
149 | m_Type: 1
150 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
151 | m_Intensity: 1
152 | m_Range: 10
153 | m_SpotAngle: 30
154 | m_InnerSpotAngle: 21.80208
155 | m_CookieSize: 10
156 | m_Shadows:
157 | m_Type: 2
158 | m_Resolution: -1
159 | m_CustomResolution: -1
160 | m_Strength: 1
161 | m_Bias: 0.05
162 | m_NormalBias: 0.4
163 | m_NearPlane: 0.2
164 | m_CullingMatrixOverride:
165 | e00: 1
166 | e01: 0
167 | e02: 0
168 | e03: 0
169 | e10: 0
170 | e11: 1
171 | e12: 0
172 | e13: 0
173 | e20: 0
174 | e21: 0
175 | e22: 1
176 | e23: 0
177 | e30: 0
178 | e31: 0
179 | e32: 0
180 | e33: 1
181 | m_UseCullingMatrixOverride: 0
182 | m_Cookie: {fileID: 0}
183 | m_DrawHalo: 0
184 | m_Flare: {fileID: 0}
185 | m_RenderMode: 0
186 | m_CullingMask:
187 | serializedVersion: 2
188 | m_Bits: 4294967295
189 | m_RenderingLayerMask: 1
190 | m_Lightmapping: 4
191 | m_LightShadowCasterMode: 0
192 | m_AreaSize: {x: 1, y: 1}
193 | m_BounceIntensity: 1
194 | m_ColorTemperature: 6570
195 | m_UseColorTemperature: 0
196 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
197 | m_UseBoundingSphereOverride: 0
198 | m_UseViewFrustumForShadowCasterCull: 1
199 | m_ShadowRadius: 0
200 | m_ShadowAngle: 0
201 | --- !u!4 &192023290
202 | Transform:
203 | m_ObjectHideFlags: 0
204 | m_CorrespondingSourceObject: {fileID: 0}
205 | m_PrefabInstance: {fileID: 0}
206 | m_PrefabAsset: {fileID: 0}
207 | m_GameObject: {fileID: 192023288}
208 | serializedVersion: 2
209 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
210 | m_LocalPosition: {x: 0, y: 3, z: 0}
211 | m_LocalScale: {x: 1, y: 1, z: 1}
212 | m_ConstrainProportionsScale: 0
213 | m_Children: []
214 | m_Father: {fileID: 0}
215 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
216 | --- !u!114 &192023291
217 | MonoBehaviour:
218 | m_ObjectHideFlags: 0
219 | m_CorrespondingSourceObject: {fileID: 0}
220 | m_PrefabInstance: {fileID: 0}
221 | m_PrefabAsset: {fileID: 0}
222 | m_GameObject: {fileID: 192023288}
223 | m_Enabled: 1
224 | m_EditorHideFlags: 0
225 | m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
226 | m_Name:
227 | m_EditorClassIdentifier:
228 | m_Version: 3
229 | m_UsePipelineSettings: 1
230 | m_AdditionalLightsShadowResolutionTier: 2
231 | m_LightLayerMask: 1
232 | m_RenderingLayers: 1
233 | m_CustomShadowLayers: 0
234 | m_ShadowLayerMask: 1
235 | m_ShadowRenderingLayers: 1
236 | m_LightCookieSize: {x: 1, y: 1}
237 | m_LightCookieOffset: {x: 0, y: 0}
238 | m_SoftShadowQuality: 0
239 | --- !u!1 &1060282767
240 | GameObject:
241 | m_ObjectHideFlags: 0
242 | m_CorrespondingSourceObject: {fileID: 0}
243 | m_PrefabInstance: {fileID: 0}
244 | m_PrefabAsset: {fileID: 0}
245 | serializedVersion: 6
246 | m_Component:
247 | - component: {fileID: 1060282770}
248 | - component: {fileID: 1060282769}
249 | - component: {fileID: 1060282768}
250 | m_Layer: 0
251 | m_Name: Main Camera
252 | m_TagString: MainCamera
253 | m_Icon: {fileID: 0}
254 | m_NavMeshLayer: 0
255 | m_StaticEditorFlags: 0
256 | m_IsActive: 1
257 | --- !u!81 &1060282768
258 | AudioListener:
259 | m_ObjectHideFlags: 0
260 | m_CorrespondingSourceObject: {fileID: 0}
261 | m_PrefabInstance: {fileID: 0}
262 | m_PrefabAsset: {fileID: 0}
263 | m_GameObject: {fileID: 1060282767}
264 | m_Enabled: 1
265 | --- !u!20 &1060282769
266 | Camera:
267 | m_ObjectHideFlags: 0
268 | m_CorrespondingSourceObject: {fileID: 0}
269 | m_PrefabInstance: {fileID: 0}
270 | m_PrefabAsset: {fileID: 0}
271 | m_GameObject: {fileID: 1060282767}
272 | m_Enabled: 1
273 | serializedVersion: 2
274 | m_ClearFlags: 1
275 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
276 | m_projectionMatrixMode: 1
277 | m_GateFitMode: 2
278 | m_FOVAxisMode: 0
279 | m_Iso: 200
280 | m_ShutterSpeed: 0.005
281 | m_Aperture: 16
282 | m_FocusDistance: 10
283 | m_FocalLength: 50
284 | m_BladeCount: 5
285 | m_Curvature: {x: 2, y: 11}
286 | m_BarrelClipping: 0.25
287 | m_Anamorphism: 0
288 | m_SensorSize: {x: 36, y: 24}
289 | m_LensShift: {x: 0, y: 0}
290 | m_NormalizedViewPortRect:
291 | serializedVersion: 2
292 | x: 0
293 | y: 0
294 | width: 1
295 | height: 1
296 | near clip plane: 0.3
297 | far clip plane: 1000
298 | field of view: 60
299 | orthographic: 0
300 | orthographic size: 5
301 | m_Depth: -1
302 | m_CullingMask:
303 | serializedVersion: 2
304 | m_Bits: 4294967295
305 | m_RenderingPath: -1
306 | m_TargetTexture: {fileID: 0}
307 | m_TargetDisplay: 0
308 | m_TargetEye: 3
309 | m_HDR: 1
310 | m_AllowMSAA: 1
311 | m_AllowDynamicResolution: 0
312 | m_ForceIntoRT: 0
313 | m_OcclusionCulling: 1
314 | m_StereoConvergence: 10
315 | m_StereoSeparation: 0.022
316 | --- !u!4 &1060282770
317 | Transform:
318 | m_ObjectHideFlags: 0
319 | m_CorrespondingSourceObject: {fileID: 0}
320 | m_PrefabInstance: {fileID: 0}
321 | m_PrefabAsset: {fileID: 0}
322 | m_GameObject: {fileID: 1060282767}
323 | serializedVersion: 2
324 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
325 | m_LocalPosition: {x: 0, y: 1, z: -10}
326 | m_LocalScale: {x: 1, y: 1, z: 1}
327 | m_ConstrainProportionsScale: 0
328 | m_Children: []
329 | m_Father: {fileID: 0}
330 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
331 | --- !u!1 &1294328852
332 | GameObject:
333 | m_ObjectHideFlags: 0
334 | m_CorrespondingSourceObject: {fileID: 0}
335 | m_PrefabInstance: {fileID: 0}
336 | m_PrefabAsset: {fileID: 0}
337 | serializedVersion: 6
338 | m_Component:
339 | - component: {fileID: 1294328854}
340 | - component: {fileID: 1294328853}
341 | m_Layer: 0
342 | m_Name: compute shader test
343 | m_TagString: Untagged
344 | m_Icon: {fileID: 0}
345 | m_NavMeshLayer: 0
346 | m_StaticEditorFlags: 0
347 | m_IsActive: 1
348 | --- !u!114 &1294328853
349 | MonoBehaviour:
350 | m_ObjectHideFlags: 0
351 | m_CorrespondingSourceObject: {fileID: 0}
352 | m_PrefabInstance: {fileID: 0}
353 | m_PrefabAsset: {fileID: 0}
354 | m_GameObject: {fileID: 1294328852}
355 | m_Enabled: 1
356 | m_EditorHideFlags: 0
357 | m_Script: {fileID: 11500000, guid: b28c249f19994bee975b2bc32b34b6d8, type: 3}
358 | m_Name:
359 | m_EditorClassIdentifier:
360 | boidsCount: 1000000
361 | boidsComputeShader: {fileID: 7200000, guid: 13dcc01f0e3b4a4eba0ede6338237876, type: 3}
362 | --- !u!4 &1294328854
363 | Transform:
364 | m_ObjectHideFlags: 0
365 | m_CorrespondingSourceObject: {fileID: 0}
366 | m_PrefabInstance: {fileID: 0}
367 | m_PrefabAsset: {fileID: 0}
368 | m_GameObject: {fileID: 1294328852}
369 | serializedVersion: 2
370 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
371 | m_LocalPosition: {x: -28.972738, y: -6.668195, z: 24.090101}
372 | m_LocalScale: {x: 1, y: 1, z: 1}
373 | m_ConstrainProportionsScale: 0
374 | m_Children: []
375 | m_Father: {fileID: 0}
376 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
377 | --- !u!1660057539 &9223372036854775807
378 | SceneRoots:
379 | m_ObjectHideFlags: 0
380 | m_Roots:
381 | - {fileID: 1060282770}
382 | - {fileID: 192023290}
383 | - {fileID: 1294328854}
384 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scenes/Test.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7eccb638e40564d4f86b6ebae40b98e9
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 16211efb1802bbb4390e1086668fdb52
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 451e535f291f2f44786c7c27111ff231
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/BoidsBehaviour.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 |
3 | namespace BoidsComputeShaderSandbox.MinimalInvestigation
4 | {
5 | public class BoidsBehaviour : MonoBehaviour
6 | {
7 | private BoidsCore _boidsCore;
8 |
9 | [SerializeField]
10 | private GameObject boidPrefab;
11 |
12 | private Transform[] _boidsTransforms;
13 |
14 | [Space, Header("Boids Info")]
15 | [SerializeField]
16 | private int boidsCount = 50;
17 |
18 | [SerializeField]
19 | private float insightRange = 3f;
20 |
21 | [SerializeField]
22 | private float maxVelocity = 0.1f;
23 |
24 | [SerializeField]
25 | private float maxAcceleration = 0.1f;
26 |
27 | [SerializeField]
28 | private Vector3 boundarySize;
29 |
30 | [SerializeField]
31 | private float timeScale = 1f;
32 |
33 | [SerializeField]
34 | private float fleeThreshold = 1f;
35 |
36 | [Space, Header("Force Weights")]
37 | [SerializeField]
38 | private float alignWeight = 1f;
39 |
40 | [SerializeField]
41 | private float separationWeight = 1f;
42 |
43 | [SerializeField]
44 | private float cohesionWeight = 1f;
45 |
46 | private void Start()
47 | {
48 | if (boidPrefab == null)
49 | {
50 | Debug.LogError("boid prefab is null");
51 | return;
52 | }
53 |
54 | _boidsCore = new BoidsCore(new BoidsOptions
55 | {
56 | Count = boidsCount,
57 | InitPositionRange = boundarySize,
58 | InitMaxAcceleration = maxAcceleration,
59 | InitMaxVelocity = maxVelocity,
60 | });
61 |
62 | _boidsTransforms = new Transform[_boidsCore.Count];
63 | for (var i = 0; i < _boidsCore.Count; i++)
64 | {
65 | _boidsTransforms[i] = Instantiate(boidPrefab, gameObject.transform).transform;
66 | }
67 | }
68 |
69 | private void Update()
70 | {
71 | if (_boidsTransforms == null)
72 | {
73 | Debug.LogError("boids is null!");
74 | return;
75 | }
76 |
77 | var updateParams = new UpdateParams
78 | {
79 | AlignWeight = alignWeight,
80 | SeparationWeight = separationWeight,
81 | CohesionWeight = cohesionWeight,
82 | FleeThreshold = fleeThreshold,
83 | InsightRange = insightRange,
84 | MaxAcceleration = maxAcceleration,
85 | MaxVelocity = maxVelocity,
86 | BoundarySize = boundarySize
87 | };
88 |
89 | _boidsCore.Update(Time.deltaTime * timeScale, updateParams);
90 | for (var i = 0; i < _boidsCore.Count; i++)
91 | {
92 | _boidsTransforms[i].transform.position = _boidsCore.Boids[i].Position;
93 | _boidsTransforms[i].transform.rotation = Quaternion.LookRotation(_boidsCore.Boids[i].Velocity);
94 | }
95 | }
96 |
97 | private void OnDrawGizmos()
98 | {
99 | Gizmos.DrawWireCube(Vector3.zero, boundarySize * 2);
100 | }
101 | }
102 | }
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/BoidsBehaviour.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6c87b018669b41f1b7c6d8b35dfde564
3 | timeCreated: 1708246238
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/BoidsCore.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using BoidsComputeShaderSandbox.Types;
3 | using UnityEngine;
4 | using Random = UnityEngine.Random;
5 |
6 | namespace BoidsComputeShaderSandbox.MinimalInvestigation
7 | {
8 | public struct BoidsOptions
9 | {
10 | public int Count { get; set; }
11 | public Vector3 InitPositionRange { get; set; }
12 | public float InitMaxVelocity { get; set; }
13 | public float InitMaxAcceleration { get; set; }
14 |
15 | public void Deconstruct(
16 | out int count,
17 | out Vector3 positionRange,
18 | out float maxVelocity,
19 | out float maxAcceleration
20 | )
21 | {
22 | count = Count;
23 | positionRange = InitPositionRange;
24 | maxVelocity = InitMaxVelocity;
25 | maxAcceleration = InitMaxAcceleration;
26 | }
27 | }
28 |
29 | public struct UpdateParams
30 | {
31 | public float AlignWeight { get; set; }
32 | public float SeparationWeight { get; set; }
33 | public float CohesionWeight { get; set; }
34 | public Vector3 BoundarySize { get; set; }
35 | public float MaxVelocity { get; set; }
36 | public float MaxAcceleration { get; set; }
37 | public float InsightRange { get; set; }
38 | public float FleeThreshold { get; set; }
39 |
40 | public void Deconstruct(
41 | out float alignWeight,
42 | out float separationWeight,
43 | out float cohesionWeight,
44 | out Vector3 boundarySize,
45 | out float maxVelocity,
46 | out float maxAcceleration,
47 | out float insightRange,
48 | out float fleeThreshold
49 | )
50 | {
51 | alignWeight = AlignWeight;
52 | separationWeight = SeparationWeight;
53 | cohesionWeight = CohesionWeight;
54 | boundarySize = BoundarySize;
55 | maxVelocity = MaxVelocity;
56 | maxAcceleration = MaxAcceleration;
57 | insightRange = InsightRange;
58 | fleeThreshold = FleeThreshold;
59 | }
60 | }
61 |
62 | public class BoidsCore
63 | {
64 | public BoidsData[] Boids { get; }
65 | public int Count { get; }
66 |
67 | public BoidsCore(BoidsOptions options)
68 | {
69 | var (count, initPositionRange, maxVelocity, _) = options;
70 | Count = count;
71 |
72 | Boids = new BoidsData[Count];
73 |
74 | for (var i = 0; i < Count; i++)
75 | {
76 | var maxVelocity3 = new Vector3(maxVelocity, maxVelocity, maxVelocity);
77 | Boids[i] = new BoidsData
78 | {
79 | Position = RandomVector3(-initPositionRange, initPositionRange),
80 | Velocity = RandomVector3(-maxVelocity3, maxVelocity3)
81 | };
82 | }
83 | }
84 |
85 | public void Update(float deltaTime, UpdateParams updateParams)
86 | {
87 | var (
88 | _, _, _,
89 | boundarySize,
90 | maxVelocity,
91 | maxAcceleration,
92 | _, _
93 | ) = updateParams;
94 | var accelerations = new Vector3[Count];
95 |
96 | for (var i = 0; i < Count; i++)
97 | {
98 | accelerations[i] =
99 | CalcIndividualForce(Boids.AsSpan(), i, updateParams);
100 | }
101 |
102 | for (var i = 0; i < Count; i++)
103 | {
104 | accelerations[i] = LimitVector(accelerations[i], maxAcceleration);
105 |
106 | var vel = Boids[i].Velocity + accelerations[i] * deltaTime;
107 | vel = LimitVector(vel, maxVelocity);
108 |
109 | var pos = Boids[i].Position + vel * deltaTime;
110 |
111 | var boidsData = new BoidsData(pos, vel);
112 | Boids[i] = BorderTreatment(boidsData, boundarySize);
113 | }
114 | }
115 |
116 | ///
117 | /// 個別のboidに対してシミュレーションの更新を行い
118 | /// 次のフレームの加速度を出力する関数
119 | ///
120 | /// Boids全体
121 | /// 計算対象のboidsのindex
122 | /// Updateパラメータ
123 | ///
124 | private static Vector3 CalcIndividualForce(
125 | ReadOnlySpan boids,
126 | int index,
127 | UpdateParams updateParams
128 | )
129 | {
130 | var (
131 | alignWeight,
132 | separationWeight,
133 | cohesionWeight,
134 | _, _, _,
135 | insightRange,
136 | fleeThreshold
137 | ) = updateParams;
138 |
139 | var alignForce = AlignForce(boids, insightRange, index);
140 | var separationForce = SeparationForce(boids, insightRange, index, fleeThreshold);
141 | var cohesionForce = CohesionForce(boids, insightRange, index);
142 |
143 | return
144 | alignForce * alignWeight
145 | + separationForce * separationWeight
146 | + cohesionForce * cohesionWeight;
147 | }
148 |
149 | ///
150 | /// 整列。影響範囲の平均速度ベクトルへの自分の速度ベクトルへの差分を算出する
151 | ///
152 | /// Boids全体
153 | /// 影響範囲の半径
154 | /// 対象のBoidsのインデックス
155 | /// 整列処理によって算出されたaccの差分
156 | private static Vector3 AlignForce(
157 | ReadOnlySpan boids,
158 | float range,
159 | int index
160 | )
161 | {
162 | var sumOfVelocities = Vector3.zero;
163 | var insightCount = 0;
164 | for (var i = 0; i < boids.Length; i++)
165 | {
166 | if (i == index || !WithinRange(boids[index], boids[i], range))
167 | {
168 | continue;
169 | }
170 |
171 | sumOfVelocities += boids[i].Velocity;
172 | insightCount++;
173 | }
174 |
175 | if (insightCount == 0)
176 | {
177 | return Vector3.zero;
178 | }
179 |
180 | var averageVelocity = sumOfVelocities / insightCount;
181 | return averageVelocity - boids[index].Velocity;
182 | }
183 |
184 | ///
185 | /// 分離。
186 | /// 範囲内の中のさらに分離閾値内にあるboidに対して
187 | /// 回避するような加速度を算出する。
188 | ///
189 | /// Boids全体
190 | /// 影響範囲の半径
191 | /// 計算対象のBoidsのインデックス
192 | /// 分離が行われる近さの閾値
193 | ///
194 | private static Vector3 SeparationForce(
195 | ReadOnlySpan boids,
196 | float range,
197 | int index,
198 | float separationThreshold
199 | )
200 | {
201 | var fleeForce = Vector3.zero;
202 | for (var i = 0; i < boids.Length; i++)
203 | {
204 | if (i == index || !WithinRange(boids[index], boids[i], range))
205 | {
206 | continue;
207 | }
208 |
209 | var dirPosition = boids[i].Position - boids[index].Position;
210 | var distance = dirPosition.sqrMagnitude;
211 | if (distance >= separationThreshold * separationThreshold)
212 | {
213 | continue;
214 | }
215 |
216 | fleeForce += -(dirPosition - boids[index].Velocity);
217 | }
218 |
219 | return fleeForce;
220 | }
221 |
222 | ///
223 | /// 結合。
224 | /// 範囲内の平均Positionに対して近づいていくような
225 | /// 加速度を算出する。
226 | ///
227 | /// Boids全体
228 | /// 影響範囲の半径
229 | /// 計算対象のBoidsのインデックス
230 | ///
231 | private static Vector3 CohesionForce(
232 | ReadOnlySpan boids,
233 | float range,
234 | int index
235 | )
236 | {
237 | var positionSum = Vector3.zero;
238 | var sumCount = 0;
239 | for (var i = 0; i < boids.Length; i++)
240 | {
241 | if (i == index || !WithinRange(boids[index], boids[i], range))
242 | {
243 | continue;
244 | }
245 |
246 | positionSum += boids[i].Position;
247 | sumCount++;
248 | }
249 |
250 | if (sumCount == 0)
251 | {
252 | return Vector3.zero;
253 | }
254 |
255 | var averagePosition = positionSum / sumCount;
256 | var dirPosition = averagePosition - boids[index].Position;
257 | var seekForce = dirPosition - boids[index].Velocity;
258 |
259 | return seekForce;
260 | }
261 |
262 | private static BoidsData BorderTreatment(BoidsData boids, Vector3 boundary)
263 | {
264 | var (pos, vel) = boids;
265 |
266 | if (pos.x > boundary.x)
267 | {
268 | pos = WithX(pos, boundary.x);
269 | vel = WithX(vel, -vel.x);
270 | }
271 | else if (pos.x < -boundary.x)
272 | {
273 | pos = WithX(pos, -boundary.x);
274 | vel = WithX(vel, -vel.x);
275 | }
276 |
277 | if (pos.y > boundary.y)
278 | {
279 | pos = WithY(pos, boundary.y);
280 | vel = WithY(vel, -vel.y);
281 | }
282 | else if (pos.y < -boundary.y)
283 | {
284 | pos = WithY(pos, -boundary.y);
285 | vel = WithY(vel, -vel.y);
286 | }
287 |
288 | if (pos.z > boundary.z)
289 | {
290 | pos = WithZ(pos, boundary.z);
291 | vel = WithZ(vel, -vel.z);
292 | }
293 | else if (pos.z < -boundary.z)
294 | {
295 | pos = WithZ(pos, -boundary.z);
296 | vel = WithZ(vel, -vel.z);
297 | }
298 |
299 | return new BoidsData(pos, vel);
300 | }
301 |
302 | private static Vector3 WithX(Vector3 vec, float x)
303 | => new(x, vec.y, vec.z);
304 |
305 | private static Vector3 WithY(Vector3 vec, float y)
306 | => new(vec.x, y, vec.z);
307 |
308 | private static Vector3 WithZ(Vector3 vec, float z)
309 | => new(vec.x, vec.y, z);
310 |
311 |
312 | ///
313 | /// 対象のベクトルの指定範囲内に
314 | /// ベクトルが入っているかの判定
315 | ///
316 | /// 対象のベクトル
317 | /// 検査対象のベクトル
318 | /// 指定範囲
319 | /// 判定結果
320 | private static bool WithinRange(Vector3 self, Vector3 target, float range)
321 | => (target - self).sqrMagnitude <= range * range;
322 |
323 | private static bool WithinRange(BoidsData self, BoidsData target, float range)
324 | => WithinRange(self.Position, target.Position, range);
325 |
326 | ///
327 | /// ベクトル長がmaxLengthを超えてたら
328 | /// 長さをmaxLengthに抑える関数
329 | ///
330 | /// 処理対象のベクトル
331 | /// 最大長
332 | /// cropされたベクトル
333 | private static Vector3 LimitVector(Vector3 target, float maxLength)
334 | => target.sqrMagnitude <= maxLength * maxLength
335 | ? target
336 | : target * (maxLength / target.sqrMagnitude);
337 |
338 | ///
339 | /// 範囲内の直方体の中で一様にランダムなベクトルを生成する
340 | ///
341 | ///
342 | ///
343 | ///
344 | private static Vector3 RandomVector3(Vector3 min, Vector3 max)
345 | => new(
346 | Random.Range(min.x, max.x),
347 | Random.Range(min.y, max.y),
348 | Random.Range(min.z, max.z)
349 | );
350 | }
351 | }
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/BoidsCore.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c0973963d3124a10b74e028733a6089b
3 | timeCreated: 1708104071
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/ComputeShaderInvest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Runtime.InteropServices;
3 | using BoidsComputeShaderSandbox.Types;
4 | using Unity.Collections;
5 | using UnityEngine;
6 |
7 | namespace BoidsComputeShaderSandbox.MinimalInvestigation
8 | {
9 | public class ComputeShaderInvest : MonoBehaviour
10 | {
11 | [SerializeField]
12 | private int boidsCount;
13 |
14 | [SerializeField]
15 | private ComputeShader boidsComputeShader;
16 |
17 | private static readonly int FillVec = Shader.PropertyToID("fillVec");
18 | private static readonly int BoidsDataId = Shader.PropertyToID("boidsData");
19 |
20 | private void Start()
21 | {
22 | if (boidsComputeShader == null || boidsCount <= 0)
23 | {
24 | return;
25 | }
26 |
27 | if (!boidsComputeShader.HasKernel("CSMain"))
28 | {
29 | return;
30 | }
31 |
32 | using var boidsArray = new NativeArray(boidsCount, Allocator.Temp);
33 | using var boidsBuffer =
34 | new ComputeBuffer(boidsCount, Marshal.SizeOf(), ComputeBufferType.Structured);
35 | boidsBuffer.SetData(boidsArray);
36 |
37 | var kernel = boidsComputeShader.FindKernel("CSMain");
38 |
39 | boidsComputeShader.SetVector(FillVec, new Vector3(1, 2, 3));
40 | boidsComputeShader.SetBuffer(kernel, BoidsDataId, boidsBuffer);
41 |
42 | boidsComputeShader.GetKernelThreadGroupSizes(kernel, out var x, out _, out _);
43 | boidsComputeShader.Dispatch(kernel, boidsCount / (int)x, 1, 1);
44 |
45 | var result = new BoidsData[boidsBuffer.count];
46 | boidsBuffer.GetData(result);
47 |
48 | Debug.Log("test");
49 | }
50 | }
51 | }
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/MinimalInvestigation/ComputeShaderInvest.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b28c249f19994bee975b2bc32b34b6d8
3 | timeCreated: 1709993139
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/Types.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 6741d23f818b483a81b390e5a09754cb
3 | timeCreated: 1708442299
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/Types/BoidsData.cs:
--------------------------------------------------------------------------------
1 | using UnityEngine;
2 | using UnityEngine.VFX;
3 |
4 | namespace BoidsComputeShaderSandbox.Types
5 | {
6 | [VFXType(VFXTypeAttribute.Usage.GraphicsBuffer, "BoidsData")]
7 | public struct BoidsData
8 | {
9 | public Vector3 Position;
10 | public Vector3 Velocity;
11 |
12 | public BoidsData(Vector3 position, Vector3 velocity)
13 | {
14 | Position = position;
15 | Velocity = velocity;
16 | }
17 |
18 | public void Deconstruct(
19 | out Vector3 position,
20 | out Vector3 velocity
21 | )
22 | {
23 | position = Position;
24 | velocity = Velocity;
25 | }
26 | }
27 | }
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/Types/BoidsData.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 05490d49842f4b22847b29c88a68b7d3
3 | timeCreated: 1708442300
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/VFX.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b411ed64b9184afaa9c23c2ad4bd0bce
3 | timeCreated: 1708679214
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/VFX/BoidsBinder.cs:
--------------------------------------------------------------------------------
1 | using System.Runtime.InteropServices;
2 | using BoidsComputeShaderSandbox.Types;
3 | using Unity.Collections;
4 | using UnityEngine;
5 | using UnityEngine.VFX;
6 | using UnityEngine.VFX.Utility;
7 | using Random = UnityEngine.Random;
8 |
9 | namespace BoidsComputeShaderSandbox.VFX
10 | {
11 | [VFXBinder("Custom/Boids")]
12 | public class BoidsBinder : VFXBinderBase
13 | {
14 | [VFXPropertyBinding("UnityEngine.GraphicsBuffer")]
15 | public ExposedProperty boidsBufferProperty;
16 |
17 | [VFXPropertyBinding("System.Int32")]
18 | public ExposedProperty boidsCountProperty;
19 |
20 | [Header("Init Info")]
21 | [SerializeField]
22 | private ComputeShader boidsComputeShader;
23 |
24 | [SerializeField]
25 | private int boidsCount;
26 |
27 | [Space, Header("Update Info")]
28 | [SerializeField]
29 | private float insightRange = 3f;
30 |
31 | [SerializeField]
32 | private float maxVelocity = 0.1f;
33 |
34 | [SerializeField]
35 | private float maxAcceleration = 0.1f;
36 |
37 | [SerializeField]
38 | private Vector3 boundarySize;
39 |
40 | [SerializeField]
41 | private float timeScale = 1f;
42 |
43 | [SerializeField]
44 | private float fleeThreshold = 1f;
45 |
46 | [Space, Header("Force Weights")]
47 | [SerializeField]
48 | private float alignWeight = 1f;
49 |
50 | [SerializeField]
51 | private float separationWeight = 1f;
52 |
53 | [SerializeField]
54 | private float cohesionWeight = 1f;
55 |
56 | [SerializeField]
57 | private float wallForceWight = 1f;
58 |
59 | [SerializeField]
60 | private float wallDistanceWeight = 1f;
61 |
62 | private GraphicsBuffer _boidsGraphicsBuffer;
63 | private int? _csMainKernel;
64 |
65 | private static readonly int Data = Shader.PropertyToID("boidsData");
66 |
67 | private static readonly int BoidsCount = Shader.PropertyToID("boidsCount");
68 | private static readonly int EffectRange = Shader.PropertyToID("effectRange");
69 | private static readonly int MaxVelocity = Shader.PropertyToID("maxVelocity");
70 | private static readonly int MaxAcceleration = Shader.PropertyToID("maxAcceleration");
71 | private static readonly int Boundary = Shader.PropertyToID("boundary");
72 | private static readonly int DeltaTime = Shader.PropertyToID("deltaTime");
73 |
74 | private static readonly int FleeThreshold = Shader.PropertyToID("fleeThreshold");
75 | private static readonly int AlignWeight = Shader.PropertyToID("alignWeight");
76 | private static readonly int SeparationWeight = Shader.PropertyToID("separationWeight");
77 | private static readonly int CohesionWeight = Shader.PropertyToID("cohesionWeight");
78 | private static readonly int WallForceWeight = Shader.PropertyToID("wallForceWeight");
79 | private static readonly int WallDistanceWeight = Shader.PropertyToID("wallDistanceWeight");
80 |
81 | protected override void OnEnable()
82 | {
83 | base.OnEnable();
84 |
85 | Vector3 RandomVector3(Vector3 min, Vector3 max) => new(
86 | Random.Range(min.x, max.x),
87 | Random.Range(min.y, max.y),
88 | Random.Range(min.z, max.z)
89 | );
90 |
91 | Vector3 CreateVector3(float val) => new(val, val, val);
92 |
93 | var boidsDataArray = new NativeArray(boidsCount, Allocator.Temp);
94 | for (var i = 0; i < boidsCount; i++)
95 | {
96 | boidsDataArray[i] = new BoidsData
97 | {
98 | Velocity = RandomVector3(CreateVector3(-maxVelocity), CreateVector3(maxVelocity)),
99 | Position = RandomVector3(-boundarySize, boundarySize)
100 | };
101 | }
102 |
103 | _boidsGraphicsBuffer =
104 | new GraphicsBuffer(GraphicsBuffer.Target.Structured, boidsCount, Marshal.SizeOf());
105 | _boidsGraphicsBuffer.SetData(boidsDataArray);
106 |
107 | _csMainKernel = boidsComputeShader.FindKernel("CSMain");
108 |
109 | boidsComputeShader.SetInt(BoidsCount, boidsCount);
110 | boidsComputeShader.SetBuffer(_csMainKernel.Value, Data, _boidsGraphicsBuffer);
111 |
112 | boidsDataArray.Dispose();
113 | }
114 |
115 | protected override void OnDisable()
116 | {
117 | base.OnDisable();
118 |
119 | _boidsGraphicsBuffer?.Release();
120 | _boidsGraphicsBuffer?.Dispose();
121 | _boidsGraphicsBuffer = null;
122 | }
123 |
124 | public override bool IsValid(VisualEffect component)
125 | {
126 | var isCountValid = boidsCount > 0;
127 | var isPropertyExist = component.HasGraphicsBuffer(boidsBufferProperty)
128 | && component.HasInt(boidsCountProperty);
129 | var isComputeShaderValid = boidsComputeShader != null
130 | && boidsComputeShader.HasKernel("CSMain");
131 |
132 | if (_csMainKernel == null)
133 | {
134 | return false;
135 | }
136 |
137 | boidsComputeShader.GetKernelThreadGroupSizes(_csMainKernel.Value, out var x, out _, out _);
138 | var isBoidsCountCanDivideWithNumThreads = boidsCount % x == 0;
139 |
140 | return isCountValid
141 | && isPropertyExist
142 | && isComputeShaderValid
143 | && isBoidsCountCanDivideWithNumThreads
144 | ;
145 | }
146 |
147 | public override void UpdateBinding(VisualEffect component)
148 | {
149 | component.SetInt(boidsCountProperty, boidsCount);
150 |
151 | if (_boidsGraphicsBuffer == null || _csMainKernel == null)
152 | {
153 | return;
154 | }
155 |
156 | boidsComputeShader.SetFloat(EffectRange, insightRange);
157 | boidsComputeShader.SetFloat(MaxVelocity, maxVelocity);
158 | boidsComputeShader.SetFloat(MaxAcceleration, maxAcceleration);
159 | boidsComputeShader.SetVector(Boundary, boundarySize);
160 | boidsComputeShader.SetFloat(DeltaTime, Time.deltaTime * timeScale);
161 | boidsComputeShader.SetFloat(FleeThreshold, fleeThreshold);
162 | boidsComputeShader.SetFloat(AlignWeight, alignWeight);
163 | boidsComputeShader.SetFloat(SeparationWeight, separationWeight);
164 | boidsComputeShader.SetFloat(CohesionWeight, cohesionWeight);
165 | boidsComputeShader.SetFloat(WallForceWeight, wallForceWight);
166 | boidsComputeShader.SetFloat(WallDistanceWeight, wallDistanceWeight);
167 |
168 | boidsComputeShader.GetKernelThreadGroupSizes(_csMainKernel.Value, out var x, out _, out _);
169 | boidsComputeShader.Dispatch(_csMainKernel.Value, boidsCount / (int)x, 1, 1);
170 |
171 | component.SetGraphicsBuffer(boidsBufferProperty, _boidsGraphicsBuffer);
172 | }
173 |
174 | private void OnDrawGizmos()
175 | {
176 | Gizmos.DrawWireCube(Vector3.zero, boundarySize * 2);
177 | }
178 | }
179 | }
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Scripts/VFX/BoidsBinder.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 70dbf01cb96b474587da2644ff4bcc77
3 | timeCreated: 1708679214
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Shaders.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a8192c2fb0ff4ebb9b5735361302bfc1
3 | timeCreated: 1709925065
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Shaders/Boids.compute:
--------------------------------------------------------------------------------
1 | #pragma kernel CSMain
2 |
3 | struct BoidsData
4 | {
5 | float3 position;
6 | float3 velocity;
7 | };
8 |
9 | int boidsCount;
10 |
11 | float effectRange;
12 | float maxVelocity;
13 | float maxAcceleration;
14 | float3 boundary;
15 | float deltaTime;
16 |
17 | float fleeThreshold;
18 | float alignWeight;
19 | float separationWeight;
20 | float cohesionWeight;
21 | float wallForceWeight;
22 | float wallDistanceWeight;
23 |
24 | RWStructuredBuffer boidsData;
25 |
26 | const float3 ZeroVector3 = float3(0, 0, 0);
27 |
28 | /// \brief Boid同士が範囲にあるかを判定する関数
29 | /// \param self 基準となるBoid
30 | /// \param other 判定対象のBoid
31 | /// \param range 範囲
32 | /// \return 範囲内かどうかのbool
33 | bool WithinRange(const BoidsData self, const BoidsData other, const float range)
34 | {
35 | const float3 dir = other.position - self.position;
36 | return dot(dir, dir) < range * range;
37 | }
38 |
39 | /// \brief ベクトル長を特定の長さに制限する関数
40 | /// \param vec 3次元ベクトル
41 | /// \param length 制限する長さ
42 | /// \return 制限処理を行った後のベクトル。長さが0であればそのまま返す
43 | float3 LimitVector(const float3 vec, const float length)
44 | {
45 | return dot(vec, vec) == 0 ? vec : normalize(vec) * length;
46 | }
47 |
48 | /// \brief 整列処理によって周りのBoidと速度を合わせるような加速度を計算
49 | /// \param index 計算対象のindex
50 | /// \return Align処理で計算された加速度
51 | float3 AlignForce(const int index)
52 | {
53 | const BoidsData self = boidsData[index];
54 |
55 | float3 sumVelocity = ZeroVector3;
56 | int count = 0;
57 |
58 | for (int i = 0; i < boidsCount; i++)
59 | {
60 | const bool shouldCompute = i != index && WithinRange(self, boidsData[i], effectRange);
61 | if (!shouldCompute)
62 | {
63 | continue;
64 | }
65 |
66 | sumVelocity += boidsData[i].velocity;
67 | count++;
68 | }
69 |
70 | if (count == 0)
71 | {
72 | return ZeroVector3;
73 | }
74 |
75 | const float3 avgVelocity = sumVelocity / count;
76 | return avgVelocity - self.velocity;
77 | }
78 |
79 | /// \brief 分離処理。周りのboidが近すぎた場合に回避するような加速度を計算
80 | /// \param index 計算対象のindex
81 | /// \return 分離処理を行った際の計算された加速度
82 | float3 SeparationForce(const int index)
83 | {
84 | const BoidsData self = boidsData[index];
85 |
86 | float3 fleeForce = ZeroVector3;
87 | for (int i = 0; i < boidsCount; i++)
88 | {
89 | const BoidsData other = boidsData[i];
90 | const bool shouldCompute = i != index && WithinRange(self, other, effectRange);
91 | if (!shouldCompute)
92 | {
93 | continue;
94 | }
95 |
96 | const float3 dirPosition = other.position - self.position;
97 | if (dot(dirPosition, dirPosition) >= fleeThreshold * fleeThreshold)
98 | {
99 | continue;
100 | }
101 | fleeForce += -(dirPosition - self.velocity);
102 | }
103 |
104 | return fleeForce;
105 | }
106 |
107 | /// \brief 結合処理。周りのboidに近づくような加速度を計算
108 | /// \param index 計算対象のboidsのindex
109 | /// \return 加速度
110 | float3 CohesionForce(const int index)
111 | {
112 | const BoidsData self = boidsData[index];
113 |
114 | float3 sumPosition = ZeroVector3;
115 | int count = 0;
116 |
117 | for (int i = 0; i < boidsCount; i++)
118 | {
119 | const BoidsData other = boidsData[i];
120 | const bool shouldCompute = i != index && WithinRange(self, other, effectRange);
121 | if (!shouldCompute)
122 | {
123 | continue;
124 | }
125 |
126 | sumPosition += other.position;
127 | count++;
128 | }
129 |
130 | if (count == 0)
131 | {
132 | return ZeroVector3;
133 | }
134 |
135 | const float3 avgPosition = sumPosition / count;
136 | const float3 dirPosition = avgPosition - self.position;
137 | const float3 seekForce = dirPosition - self.velocity;
138 |
139 | return seekForce;
140 | }
141 |
142 | /// \brief 境界処理
143 | /// \param boid boid
144 | /// \param boundary 境界
145 | /// \return 境界処理を行ったboid
146 | BoidsData BorderTreatment(const BoidsData boid, const float3 boundary)
147 | {
148 | float3 pos = boid.position;
149 | float3 vel = boid.velocity;
150 |
151 | if (pos.x > boundary.x)
152 | {
153 | pos.x = boundary.x;
154 | vel.x = -vel.x;
155 | }
156 | else if (pos.x < -boundary.x)
157 | {
158 | pos.x = -boundary.x;
159 | vel.x = -vel.x;
160 | }
161 |
162 | if (pos.y > boundary.y)
163 | {
164 | pos.y = boundary.y;
165 | vel.y = -vel.y;
166 | }
167 | else if (pos.y < -boundary.y)
168 | {
169 | pos.y = -boundary.y;
170 | vel.y = -vel.y;
171 | }
172 |
173 | if (pos.z > boundary.z)
174 | {
175 | pos.z = boundary.z;
176 | vel.z = -vel.z;
177 | }
178 | else if (pos.z < -boundary.z)
179 | {
180 | pos.z = -boundary.z;
181 | vel.z = -vel.z;
182 | }
183 |
184 | BoidsData result;
185 | result.position = pos;
186 | result.velocity = vel;
187 |
188 | return result;
189 | }
190 |
191 | float3 WallForce(const int index, const float distanceWeight)
192 | {
193 | BoidsData boid = boidsData[index];
194 | return
195 | float3(-1, 0, 0) / abs((boundary.x - boid.position.x) / distanceWeight)
196 | + float3(1, 0, 0) / abs((-boundary.x - boid.position.x) / distanceWeight)
197 | + float3(0, -1, 0) / abs((boundary.y - boid.position.y) / distanceWeight)
198 | + float3(0, 1, 0) / abs((-boundary.y - boid.position.y) / distanceWeight)
199 | + float3(0, 0, -1) / abs((boundary.z - boid.position.z) / distanceWeight)
200 | + float3(0, 0, 1) / abs((-boundary.z - boid.position.z) / distanceWeight);
201 | }
202 |
203 | float3 CalcIndividualForce(const float index)
204 | {
205 | const float3 align = AlignForce(index);
206 | const float3 separation = SeparationForce(index);
207 | const float3 cohesion = CohesionForce(index);
208 |
209 | return alignWeight * align
210 | + separationWeight * separation
211 | + cohesionWeight * cohesion;
212 | }
213 |
214 | [numthreads(64,1,1)]
215 | void CSMain(const uint3 id:SV_DispatchThreadID)
216 | {
217 | BoidsData boid = boidsData[id.x];
218 |
219 | float3 force = CalcIndividualForce(id.x);
220 | force = LimitVector(force, maxAcceleration);
221 |
222 | force += wallForceWeight * WallForce(id.x, wallDistanceWeight);
223 |
224 | boid.velocity += force * deltaTime;
225 | boid.velocity = LimitVector(boid.velocity, maxVelocity);
226 |
227 | boid.position += boid.velocity * deltaTime;
228 | // boid = BorderTreatment(boid, boundary);
229 |
230 | boidsData[id.x] = boid;
231 | }
232 |
--------------------------------------------------------------------------------
/Assets/BoidsComputerShaderSandbox/Shaders/Boids.compute.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 13dcc01f0e3b4a4eba0ede6338237876
3 | timeCreated: 1709925065
--------------------------------------------------------------------------------
/Assets/DefaultVolumeProfile.asset:
--------------------------------------------------------------------------------
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: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3}
13 | m_Name: DefaultVolumeProfile
14 | m_EditorClassIdentifier:
15 | components: []
16 |
--------------------------------------------------------------------------------
/Assets/DefaultVolumeProfile.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 25b8af02a08cb4540b46089a5c595bed
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9875d1dc82cd9434593129b8b737eac1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!29 &1
4 | OcclusionCullingSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_OcclusionBakeSettings:
8 | smallestOccluder: 5
9 | smallestHole: 0.25
10 | backfaceThreshold: 100
11 | m_SceneGUID: 00000000000000000000000000000000
12 | m_OcclusionCullingData: {fileID: 0}
13 | --- !u!104 &2
14 | RenderSettings:
15 | m_ObjectHideFlags: 0
16 | serializedVersion: 10
17 | m_Fog: 0
18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
19 | m_FogMode: 3
20 | m_FogDensity: 0.01
21 | m_LinearFogStart: 0
22 | m_LinearFogEnd: 300
23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
26 | m_AmbientIntensity: 1
27 | m_AmbientMode: 0
28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
29 | m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
30 | m_HaloStrength: 0.5
31 | m_FlareStrength: 1
32 | m_FlareFadeSpeed: 3
33 | m_HaloTexture: {fileID: 0}
34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
35 | m_DefaultReflectionMode: 0
36 | m_DefaultReflectionResolution: 128
37 | m_ReflectionBounces: 1
38 | m_ReflectionIntensity: 1
39 | m_CustomReflection: {fileID: 0}
40 | m_Sun: {fileID: 705507994}
41 | m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 12
47 | m_GISettings:
48 | serializedVersion: 2
49 | m_BounceScale: 1
50 | m_IndirectOutputScale: 1
51 | m_AlbedoBoost: 1
52 | m_EnvironmentLightingMode: 0
53 | m_EnableBakedLightmaps: 1
54 | m_EnableRealtimeLightmaps: 0
55 | m_LightmapEditorSettings:
56 | serializedVersion: 12
57 | m_Resolution: 2
58 | m_BakeResolution: 40
59 | m_AtlasSize: 1024
60 | m_AO: 0
61 | m_AOMaxDistance: 1
62 | m_CompAOExponent: 1
63 | m_CompAOExponentDirect: 0
64 | m_ExtractAmbientOcclusion: 0
65 | m_Padding: 2
66 | m_LightmapParameters: {fileID: 0}
67 | m_LightmapsBakeMode: 1
68 | m_TextureCompression: 1
69 | m_ReflectionCompression: 2
70 | m_MixedBakeMode: 2
71 | m_BakeBackend: 1
72 | m_PVRSampling: 1
73 | m_PVRDirectSampleCount: 32
74 | m_PVRSampleCount: 500
75 | m_PVRBounces: 2
76 | m_PVREnvironmentSampleCount: 500
77 | m_PVREnvironmentReferencePointCount: 2048
78 | m_PVRFilteringMode: 2
79 | m_PVRDenoiserTypeDirect: 0
80 | m_PVRDenoiserTypeIndirect: 0
81 | m_PVRDenoiserTypeAO: 0
82 | m_PVRFilterTypeDirect: 0
83 | m_PVRFilterTypeIndirect: 0
84 | m_PVRFilterTypeAO: 0
85 | m_PVREnvironmentMIS: 0
86 | m_PVRCulling: 1
87 | m_PVRFilteringGaussRadiusDirect: 1
88 | m_PVRFilteringGaussRadiusIndirect: 5
89 | m_PVRFilteringGaussRadiusAO: 2
90 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
91 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
92 | m_PVRFilteringAtrousPositionSigmaAO: 1
93 | m_ExportTrainingData: 0
94 | m_TrainingDataDestination: TrainingData
95 | m_LightProbeSampleCountMultiplier: 4
96 | m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
97 | m_LightingSettings: {fileID: 0}
98 | --- !u!196 &4
99 | NavMeshSettings:
100 | serializedVersion: 2
101 | m_ObjectHideFlags: 0
102 | m_BuildSettings:
103 | serializedVersion: 3
104 | agentTypeID: 0
105 | agentRadius: 0.5
106 | agentHeight: 2
107 | agentSlope: 45
108 | agentClimb: 0.4
109 | ledgeDropHeight: 0
110 | maxJumpAcrossDistance: 0
111 | minRegionArea: 2
112 | manualCellSize: 0
113 | cellSize: 0.16666667
114 | manualTileSize: 0
115 | tileSize: 256
116 | buildHeightMesh: 0
117 | maxJobWorkers: 0
118 | preserveTilesOutsideBounds: 0
119 | debug:
120 | m_Flags: 0
121 | m_NavMeshData: {fileID: 0}
122 | --- !u!1 &705507993
123 | GameObject:
124 | m_ObjectHideFlags: 0
125 | m_CorrespondingSourceObject: {fileID: 0}
126 | m_PrefabInstance: {fileID: 0}
127 | m_PrefabAsset: {fileID: 0}
128 | serializedVersion: 6
129 | m_Component:
130 | - component: {fileID: 705507995}
131 | - component: {fileID: 705507994}
132 | - component: {fileID: 705507996}
133 | m_Layer: 0
134 | m_Name: Directional Light
135 | m_TagString: Untagged
136 | m_Icon: {fileID: 0}
137 | m_NavMeshLayer: 0
138 | m_StaticEditorFlags: 0
139 | m_IsActive: 1
140 | --- !u!108 &705507994
141 | Light:
142 | m_ObjectHideFlags: 0
143 | m_CorrespondingSourceObject: {fileID: 0}
144 | m_PrefabInstance: {fileID: 0}
145 | m_PrefabAsset: {fileID: 0}
146 | m_GameObject: {fileID: 705507993}
147 | m_Enabled: 1
148 | serializedVersion: 11
149 | m_Type: 1
150 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
151 | m_Intensity: 1
152 | m_Range: 10
153 | m_SpotAngle: 30
154 | m_InnerSpotAngle: 21.80208
155 | m_CookieSize: 10
156 | m_Shadows:
157 | m_Type: 2
158 | m_Resolution: -1
159 | m_CustomResolution: -1
160 | m_Strength: 1
161 | m_Bias: 0.05
162 | m_NormalBias: 0.4
163 | m_NearPlane: 0.2
164 | m_CullingMatrixOverride:
165 | e00: 1
166 | e01: 0
167 | e02: 0
168 | e03: 0
169 | e10: 0
170 | e11: 1
171 | e12: 0
172 | e13: 0
173 | e20: 0
174 | e21: 0
175 | e22: 1
176 | e23: 0
177 | e30: 0
178 | e31: 0
179 | e32: 0
180 | e33: 1
181 | m_UseCullingMatrixOverride: 0
182 | m_Cookie: {fileID: 0}
183 | m_DrawHalo: 0
184 | m_Flare: {fileID: 0}
185 | m_RenderMode: 0
186 | m_CullingMask:
187 | serializedVersion: 2
188 | m_Bits: 4294967295
189 | m_RenderingLayerMask: 1
190 | m_Lightmapping: 1
191 | m_LightShadowCasterMode: 0
192 | m_AreaSize: {x: 1, y: 1}
193 | m_BounceIntensity: 1
194 | m_ColorTemperature: 6570
195 | m_UseColorTemperature: 0
196 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
197 | m_UseBoundingSphereOverride: 0
198 | m_UseViewFrustumForShadowCasterCull: 1
199 | m_ShadowRadius: 0
200 | m_ShadowAngle: 0
201 | --- !u!4 &705507995
202 | Transform:
203 | m_ObjectHideFlags: 0
204 | m_CorrespondingSourceObject: {fileID: 0}
205 | m_PrefabInstance: {fileID: 0}
206 | m_PrefabAsset: {fileID: 0}
207 | m_GameObject: {fileID: 705507993}
208 | serializedVersion: 2
209 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
210 | m_LocalPosition: {x: 0, y: 3, z: 0}
211 | m_LocalScale: {x: 1, y: 1, z: 1}
212 | m_ConstrainProportionsScale: 0
213 | m_Children: []
214 | m_Father: {fileID: 0}
215 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
216 | --- !u!114 &705507996
217 | MonoBehaviour:
218 | m_ObjectHideFlags: 0
219 | m_CorrespondingSourceObject: {fileID: 0}
220 | m_PrefabInstance: {fileID: 0}
221 | m_PrefabAsset: {fileID: 0}
222 | m_GameObject: {fileID: 705507993}
223 | m_Enabled: 1
224 | m_EditorHideFlags: 0
225 | m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
226 | m_Name:
227 | m_EditorClassIdentifier:
228 | m_Version: 3
229 | m_UsePipelineSettings: 1
230 | m_AdditionalLightsShadowResolutionTier: 2
231 | m_LightLayerMask: 1
232 | m_RenderingLayers: 1
233 | m_CustomShadowLayers: 0
234 | m_ShadowLayerMask: 1
235 | m_ShadowRenderingLayers: 1
236 | m_LightCookieSize: {x: 1, y: 1}
237 | m_LightCookieOffset: {x: 0, y: 0}
238 | m_SoftShadowQuality: 0
239 | --- !u!1 &963194225
240 | GameObject:
241 | m_ObjectHideFlags: 0
242 | m_CorrespondingSourceObject: {fileID: 0}
243 | m_PrefabInstance: {fileID: 0}
244 | m_PrefabAsset: {fileID: 0}
245 | serializedVersion: 6
246 | m_Component:
247 | - component: {fileID: 963194228}
248 | - component: {fileID: 963194227}
249 | - component: {fileID: 963194226}
250 | m_Layer: 0
251 | m_Name: Main Camera
252 | m_TagString: MainCamera
253 | m_Icon: {fileID: 0}
254 | m_NavMeshLayer: 0
255 | m_StaticEditorFlags: 0
256 | m_IsActive: 1
257 | --- !u!81 &963194226
258 | AudioListener:
259 | m_ObjectHideFlags: 0
260 | m_CorrespondingSourceObject: {fileID: 0}
261 | m_PrefabInstance: {fileID: 0}
262 | m_PrefabAsset: {fileID: 0}
263 | m_GameObject: {fileID: 963194225}
264 | m_Enabled: 1
265 | --- !u!20 &963194227
266 | Camera:
267 | m_ObjectHideFlags: 0
268 | m_CorrespondingSourceObject: {fileID: 0}
269 | m_PrefabInstance: {fileID: 0}
270 | m_PrefabAsset: {fileID: 0}
271 | m_GameObject: {fileID: 963194225}
272 | m_Enabled: 1
273 | serializedVersion: 2
274 | m_ClearFlags: 1
275 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
276 | m_projectionMatrixMode: 1
277 | m_GateFitMode: 2
278 | m_FOVAxisMode: 0
279 | m_Iso: 200
280 | m_ShutterSpeed: 0.005
281 | m_Aperture: 16
282 | m_FocusDistance: 10
283 | m_FocalLength: 50
284 | m_BladeCount: 5
285 | m_Curvature: {x: 2, y: 11}
286 | m_BarrelClipping: 0.25
287 | m_Anamorphism: 0
288 | m_SensorSize: {x: 36, y: 24}
289 | m_LensShift: {x: 0, y: 0}
290 | m_NormalizedViewPortRect:
291 | serializedVersion: 2
292 | x: 0
293 | y: 0
294 | width: 1
295 | height: 1
296 | near clip plane: 0.3
297 | far clip plane: 1000
298 | field of view: 60
299 | orthographic: 0
300 | orthographic size: 5
301 | m_Depth: -1
302 | m_CullingMask:
303 | serializedVersion: 2
304 | m_Bits: 4294967295
305 | m_RenderingPath: -1
306 | m_TargetTexture: {fileID: 0}
307 | m_TargetDisplay: 0
308 | m_TargetEye: 3
309 | m_HDR: 1
310 | m_AllowMSAA: 1
311 | m_AllowDynamicResolution: 0
312 | m_ForceIntoRT: 0
313 | m_OcclusionCulling: 1
314 | m_StereoConvergence: 10
315 | m_StereoSeparation: 0.022
316 | --- !u!4 &963194228
317 | Transform:
318 | m_ObjectHideFlags: 0
319 | m_CorrespondingSourceObject: {fileID: 0}
320 | m_PrefabInstance: {fileID: 0}
321 | m_PrefabAsset: {fileID: 0}
322 | m_GameObject: {fileID: 963194225}
323 | serializedVersion: 2
324 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
325 | m_LocalPosition: {x: 0, y: 1, z: -10}
326 | m_LocalScale: {x: 1, y: 1, z: 1}
327 | m_ConstrainProportionsScale: 0
328 | m_Children: []
329 | m_Father: {fileID: 0}
330 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
331 | --- !u!1 &2072706727
332 | GameObject:
333 | m_ObjectHideFlags: 0
334 | m_CorrespondingSourceObject: {fileID: 0}
335 | m_PrefabInstance: {fileID: 0}
336 | m_PrefabAsset: {fileID: 0}
337 | serializedVersion: 6
338 | m_Component:
339 | - component: {fileID: 2072706731}
340 | - component: {fileID: 2072706730}
341 | - component: {fileID: 2072706729}
342 | - component: {fileID: 2072706728}
343 | m_Layer: 0
344 | m_Name: Cube
345 | m_TagString: Untagged
346 | m_Icon: {fileID: 0}
347 | m_NavMeshLayer: 0
348 | m_StaticEditorFlags: 0
349 | m_IsActive: 1
350 | --- !u!65 &2072706728
351 | BoxCollider:
352 | m_ObjectHideFlags: 0
353 | m_CorrespondingSourceObject: {fileID: 0}
354 | m_PrefabInstance: {fileID: 0}
355 | m_PrefabAsset: {fileID: 0}
356 | m_GameObject: {fileID: 2072706727}
357 | m_Material: {fileID: 0}
358 | m_IncludeLayers:
359 | serializedVersion: 2
360 | m_Bits: 0
361 | m_ExcludeLayers:
362 | serializedVersion: 2
363 | m_Bits: 0
364 | m_LayerOverridePriority: 0
365 | m_IsTrigger: 0
366 | m_ProvidesContacts: 0
367 | m_Enabled: 1
368 | serializedVersion: 3
369 | m_Size: {x: 1, y: 1, z: 1}
370 | m_Center: {x: 0, y: 0, z: 0}
371 | --- !u!23 &2072706729
372 | MeshRenderer:
373 | m_ObjectHideFlags: 0
374 | m_CorrespondingSourceObject: {fileID: 0}
375 | m_PrefabInstance: {fileID: 0}
376 | m_PrefabAsset: {fileID: 0}
377 | m_GameObject: {fileID: 2072706727}
378 | m_Enabled: 1
379 | m_CastShadows: 1
380 | m_ReceiveShadows: 1
381 | m_DynamicOccludee: 1
382 | m_StaticShadowCaster: 0
383 | m_MotionVectors: 1
384 | m_LightProbeUsage: 1
385 | m_ReflectionProbeUsage: 1
386 | m_RayTracingMode: 2
387 | m_RayTraceProcedural: 0
388 | m_RayTracingAccelStructBuildFlagsOverride: 0
389 | m_RayTracingAccelStructBuildFlags: 1
390 | m_RenderingLayerMask: 1
391 | m_RendererPriority: 0
392 | m_Materials:
393 | - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
394 | m_StaticBatchInfo:
395 | firstSubMesh: 0
396 | subMeshCount: 0
397 | m_StaticBatchRoot: {fileID: 0}
398 | m_ProbeAnchor: {fileID: 0}
399 | m_LightProbeVolumeOverride: {fileID: 0}
400 | m_ScaleInLightmap: 1
401 | m_ReceiveGI: 1
402 | m_PreserveUVs: 0
403 | m_IgnoreNormalsForChartDetection: 0
404 | m_ImportantGI: 0
405 | m_StitchLightmapSeams: 1
406 | m_SelectedEditorRenderState: 3
407 | m_MinimumChartSize: 4
408 | m_AutoUVMaxDistance: 0.5
409 | m_AutoUVMaxAngle: 89
410 | m_LightmapParameters: {fileID: 0}
411 | m_SortingLayerID: 0
412 | m_SortingLayer: 0
413 | m_SortingOrder: 0
414 | m_AdditionalVertexStreams: {fileID: 0}
415 | --- !u!33 &2072706730
416 | MeshFilter:
417 | m_ObjectHideFlags: 0
418 | m_CorrespondingSourceObject: {fileID: 0}
419 | m_PrefabInstance: {fileID: 0}
420 | m_PrefabAsset: {fileID: 0}
421 | m_GameObject: {fileID: 2072706727}
422 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
423 | --- !u!4 &2072706731
424 | Transform:
425 | m_ObjectHideFlags: 0
426 | m_CorrespondingSourceObject: {fileID: 0}
427 | m_PrefabInstance: {fileID: 0}
428 | m_PrefabAsset: {fileID: 0}
429 | m_GameObject: {fileID: 2072706727}
430 | serializedVersion: 2
431 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
432 | m_LocalPosition: {x: 0, y: 0, z: 0}
433 | m_LocalScale: {x: 1, y: 1, z: 1}
434 | m_ConstrainProportionsScale: 0
435 | m_Children: []
436 | m_Father: {fileID: 0}
437 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
438 | --- !u!1660057539 &9223372036854775807
439 | SceneRoots:
440 | m_ObjectHideFlags: 0
441 | m_Roots:
442 | - {fileID: 963194228}
443 | - {fileID: 705507995}
444 | - {fileID: 2072706731}
445 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Settings.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c61bb02c636175144b98949846b9407b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Settings/New Universal Render Pipeline Asset.asset:
--------------------------------------------------------------------------------
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: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
13 | m_Name: New Universal Render Pipeline Asset
14 | m_EditorClassIdentifier:
15 | k_AssetVersion: 12
16 | k_AssetPreviousVersion: 12
17 | m_RendererType: 1
18 | m_RendererData: {fileID: 0}
19 | m_RendererDataList:
20 | - {fileID: 11400000, guid: 0b1c710f645a20e4babb99ce1c22dde3, type: 2}
21 | m_DefaultRendererIndex: 0
22 | m_RequireDepthTexture: 0
23 | m_RequireOpaqueTexture: 0
24 | m_OpaqueDownsampling: 1
25 | m_SupportsTerrainHoles: 1
26 | m_SupportsHDR: 1
27 | m_HDRColorBufferPrecision: 0
28 | m_MSAA: 1
29 | m_RenderScale: 1
30 | m_UpscalingFilter: 0
31 | m_FsrOverrideSharpness: 0
32 | m_FsrSharpness: 0.92
33 | m_EnableLODCrossFade: 1
34 | m_LODCrossFadeDitheringType: 1
35 | m_ShEvalMode: 0
36 | m_LightProbeSystem: 0
37 | m_ProbeVolumeMemoryBudget: 1024
38 | m_SupportProbeVolumeStreaming: 0
39 | m_ProbeVolumeSHBands: 1
40 | m_MainLightRenderingMode: 1
41 | m_MainLightShadowsSupported: 1
42 | m_MainLightShadowmapResolution: 2048
43 | m_AdditionalLightsRenderingMode: 1
44 | m_AdditionalLightsPerObjectLimit: 4
45 | m_AdditionalLightShadowsSupported: 0
46 | m_AdditionalLightsShadowmapResolution: 2048
47 | m_AdditionalLightsShadowResolutionTierLow: 256
48 | m_AdditionalLightsShadowResolutionTierMedium: 512
49 | m_AdditionalLightsShadowResolutionTierHigh: 1024
50 | m_ReflectionProbeBlending: 0
51 | m_ReflectionProbeBoxProjection: 0
52 | m_ShadowDistance: 50
53 | m_ShadowCascadeCount: 1
54 | m_Cascade2Split: 0.25
55 | m_Cascade3Split: {x: 0.1, y: 0.3}
56 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
57 | m_CascadeBorder: 0.2
58 | m_ShadowDepthBias: 1
59 | m_ShadowNormalBias: 1
60 | m_AnyShadowsSupported: 1
61 | m_SoftShadowsSupported: 0
62 | m_ConservativeEnclosingSphere: 1
63 | m_NumIterationsEnclosingSphere: 64
64 | m_SoftShadowQuality: 2
65 | m_AdditionalLightsCookieResolution: 2048
66 | m_AdditionalLightsCookieFormat: 3
67 | m_UseSRPBatcher: 1
68 | m_SupportsDynamicBatching: 0
69 | m_MixedLightingSupported: 1
70 | m_SupportsLightCookies: 1
71 | m_SupportsLightLayers: 0
72 | m_DebugLevel: 0
73 | m_StoreActionsOptimization: 0
74 | m_EnableRenderGraph: 0
75 | m_UseAdaptivePerformance: 1
76 | m_ColorGradingMode: 0
77 | m_ColorGradingLutSize: 32
78 | m_UseFastSRGBLinearConversion: 0
79 | m_SupportDataDrivenLensFlare: 1
80 | m_SupportScreenSpaceLensFlare: 1
81 | m_ShadowType: 1
82 | m_LocalShadowsSupported: 0
83 | m_LocalShadowsAtlasResolution: 256
84 | m_MaxPixelLights: 0
85 | m_ShadowAtlasResolution: 256
86 | m_VolumeFrameworkUpdateMode: 0
87 | m_VolumeProfile: {fileID: 0}
88 | m_Textures:
89 | blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
90 | bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
91 | apvScenesData:
92 | m_ObsoleteSerializedBakingSets: []
93 | sceneToBakingSet:
94 | m_Keys: []
95 | m_Values: []
96 | bakingSets: []
97 | sceneBounds:
98 | m_Keys: []
99 | m_Values: []
100 | hasProbeVolumes:
101 | m_Keys: []
102 | m_Values:
103 | m_PrefilteringModeMainLightShadows: 1
104 | m_PrefilteringModeAdditionalLight: 4
105 | m_PrefilteringModeAdditionalLightShadows: 1
106 | m_PrefilterXRKeywords: 0
107 | m_PrefilteringModeForwardPlus: 1
108 | m_PrefilteringModeDeferredRendering: 1
109 | m_PrefilteringModeScreenSpaceOcclusion: 1
110 | m_PrefilterDebugKeywords: 0
111 | m_PrefilterWriteRenderingLayers: 0
112 | m_PrefilterHDROutput: 0
113 | m_PrefilterSSAODepthNormals: 0
114 | m_PrefilterSSAOSourceDepthLow: 0
115 | m_PrefilterSSAOSourceDepthMedium: 0
116 | m_PrefilterSSAOSourceDepthHigh: 0
117 | m_PrefilterSSAOInterleaved: 0
118 | m_PrefilterSSAOBlueNoise: 0
119 | m_PrefilterSSAOSampleCountLow: 0
120 | m_PrefilterSSAOSampleCountMedium: 0
121 | m_PrefilterSSAOSampleCountHigh: 0
122 | m_PrefilterDBufferMRT1: 0
123 | m_PrefilterDBufferMRT2: 0
124 | m_PrefilterDBufferMRT3: 0
125 | m_PrefilterSoftShadowsQualityLow: 0
126 | m_PrefilterSoftShadowsQualityMedium: 0
127 | m_PrefilterSoftShadowsQualityHigh: 0
128 | m_PrefilterSoftShadows: 0
129 | m_PrefilterScreenCoord: 0
130 | m_PrefilterNativeRenderPass: 0
131 | m_ShaderVariantLogLevel: 0
132 | m_ShadowCascades: 0
133 |
--------------------------------------------------------------------------------
/Assets/Settings/New Universal Render Pipeline Asset.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e9b4936a9cba99b45a1727b8a0e9afd3
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Settings/New Universal Render Pipeline Asset_Renderer.asset:
--------------------------------------------------------------------------------
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: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
13 | m_Name: New Universal Render Pipeline Asset_Renderer
14 | m_EditorClassIdentifier:
15 | debugShaders:
16 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3}
17 | hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
18 | probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3}
19 | probeVolumeResources:
20 | probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3}
21 | probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3}
22 | probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3}
23 | probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3}
24 | probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3}
25 | probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3}
26 | m_RendererFeatures: []
27 | m_RendererFeatureMap:
28 | m_UseNativeRenderPass: 0
29 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
30 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
31 | shaders:
32 | blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3}
33 | copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3}
34 | screenSpaceShadowPS: {fileID: 0}
35 | samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
36 | stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
37 | fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
38 | fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
39 | materialErrorPS: {fileID: 0}
40 | coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
41 | coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3}
42 | blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
43 | cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3}
44 | screenSpaceLensFlare: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3}
45 | dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3}
46 | m_AssetVersion: 2
47 | m_OpaqueLayerMask:
48 | serializedVersion: 2
49 | m_Bits: 4294967295
50 | m_TransparentLayerMask:
51 | serializedVersion: 2
52 | m_Bits: 4294967295
53 | m_DefaultStencilState:
54 | overrideStencilState: 0
55 | stencilReference: 0
56 | stencilCompareFunction: 8
57 | passOperation: 2
58 | failOperation: 0
59 | zFailOperation: 0
60 | m_ShadowTransparentReceive: 1
61 | m_RenderingMode: 0
62 | m_DepthPrimingMode: 0
63 | m_CopyDepthMode: 1
64 | m_AccurateGbufferNormals: 0
65 | m_IntermediateTextureMode: 1
66 |
--------------------------------------------------------------------------------
/Assets/Settings/New Universal Render Pipeline Asset_Renderer.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0b1c710f645a20e4babb99ce1c22dde3
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/UniversalRenderPipelineGlobalSettings.asset:
--------------------------------------------------------------------------------
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: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3}
13 | m_Name: UniversalRenderPipelineGlobalSettings
14 | m_EditorClassIdentifier:
15 | m_Settings:
16 | m_SettingsList: []
17 | m_RuntimeSettings: []
18 | m_AssetVersion: 5
19 | m_DefaultVolumeProfile: {fileID: 0}
20 | m_RenderingLayerNames:
21 | - Default
22 | m_ValidRenderingLayers: 1
23 | lightLayerName0:
24 | lightLayerName1:
25 | lightLayerName2:
26 | lightLayerName3:
27 | lightLayerName4:
28 | lightLayerName5:
29 | lightLayerName6:
30 | lightLayerName7:
31 | apvScenesData:
32 | m_ObsoleteSerializedBakingSets: []
33 | sceneToBakingSet:
34 | m_Keys: []
35 | m_Values: []
36 | bakingSets: []
37 | sceneBounds:
38 | m_Keys: []
39 | m_Values: []
40 | hasProbeVolumes:
41 | m_Keys: []
42 | m_Values:
43 | m_ShaderStrippingSetting:
44 | m_Version: 0
45 | m_ExportShaderVariants: 1
46 | m_ShaderVariantLogLevel: 0
47 | m_StripRuntimeDebugShaders: 1
48 | m_URPShaderStrippingSetting:
49 | m_Version: 0
50 | m_StripUnusedPostProcessingVariants: 0
51 | m_StripUnusedVariants: 1
52 | m_StripScreenCoordOverrideVariants: 1
53 | m_ShaderVariantLogLevel: 0
54 | m_ExportShaderVariants: 1
55 | m_StripDebugVariants: 1
56 | m_StripUnusedPostProcessingVariants: 0
57 | m_StripUnusedVariants: 1
58 | m_StripScreenCoordOverrideVariants: 1
59 | supportRuntimeDebugDisplay: 0
60 | references:
61 | version: 2
62 | RefIds: []
63 |
--------------------------------------------------------------------------------
/Assets/UniversalRenderPipelineGlobalSettings.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 50175f59ec663a348a282f4e1feebbf0
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 |
2 | Apache License
3 | Version 2.0, January 2004
4 | http://www.apache.org/licenses/
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | 2. Grant of Copyright License. Subject to the terms and conditions of
68 | this License, each Contributor hereby grants to You a perpetual,
69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70 | copyright license to reproduce, prepare Derivative Works of,
71 | publicly display, publicly perform, sublicense, and distribute the
72 | Work and such Derivative Works in Source or Object form.
73 |
74 | 3. Grant of Patent License. Subject to the terms and conditions of
75 | this License, each Contributor hereby grants to You a perpetual,
76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77 | (except as stated in this section) patent license to make, have made,
78 | use, offer to sell, sell, import, and otherwise transfer the Work,
79 | where such license applies only to those patent claims licensable
80 | by such Contributor that are necessarily infringed by their
81 | Contribution(s) alone or by combination of their Contribution(s)
82 | with the Work to which such Contribution(s) was submitted. If You
83 | institute patent litigation against any entity (including a
84 | cross-claim or counterclaim in a lawsuit) alleging that the Work
85 | or a Contribution incorporated within the Work constitutes direct
86 | or contributory patent infringement, then any patent licenses
87 | granted to You under this License for that Work shall terminate
88 | as of the date such litigation is filed.
89 |
90 | 4. Redistribution. You may reproduce and distribute copies of the
91 | Work or Derivative Works thereof in any medium, with or without
92 | modifications, and in Source or Object form, provided that You
93 | meet the following conditions:
94 |
95 | (a) You must give any other recipients of the Work or
96 | Derivative Works a copy of this License; and
97 |
98 | (b) You must cause any modified files to carry prominent notices
99 | stating that You changed the files; and
100 |
101 | (c) You must retain, in the Source form of any Derivative Works
102 | that You distribute, all copyright, patent, trademark, and
103 | attribution notices from the Source form of the Work,
104 | excluding those notices that do not pertain to any part of
105 | the Derivative Works; and
106 |
107 | (d) If the Work includes a "NOTICE" text file as part of its
108 | distribution, then any Derivative Works that You distribute must
109 | include a readable copy of the attribution notices contained
110 | within such NOTICE file, excluding those notices that do not
111 | pertain to any part of the Derivative Works, in at least one
112 | of the following places: within a NOTICE text file distributed
113 | as part of the Derivative Works; within the Source form or
114 | documentation, if provided along with the Derivative Works; or,
115 | within a display generated by the Derivative Works, if and
116 | wherever such third-party notices normally appear. The contents
117 | of the NOTICE file are for informational purposes only and
118 | do not modify the License. You may add Your own attribution
119 | notices within Derivative Works that You distribute, alongside
120 | or as an addendum to the NOTICE text from the Work, provided
121 | that such additional attribution notices cannot be construed
122 | as modifying the License.
123 |
124 | You may add Your own copyright statement to Your modifications and
125 | may provide additional or different license terms and conditions
126 | for use, reproduction, or distribution of Your modifications, or
127 | for any such Derivative Works as a whole, provided Your use,
128 | reproduction, and distribution of the Work otherwise complies with
129 | the conditions stated in this License.
130 |
131 | 5. Submission of Contributions. Unless You explicitly state otherwise,
132 | any Contribution intentionally submitted for inclusion in the Work
133 | by You to the Licensor shall be under the terms and conditions of
134 | this License, without any additional terms or conditions.
135 | Notwithstanding the above, nothing herein shall supersede or modify
136 | the terms of any separate license agreement you may have executed
137 | with Licensor regarding such Contributions.
138 |
139 | 6. Trademarks. This License does not grant permission to use the trade
140 | names, trademarks, service marks, or product names of the Licensor,
141 | except as required for reasonable and customary use in describing the
142 | origin of the Work and reproducing the content of the NOTICE file.
143 |
144 | 7. Disclaimer of Warranty. Unless required by applicable law or
145 | agreed to in writing, Licensor provides the Work (and each
146 | Contributor provides its Contributions) on an "AS IS" BASIS,
147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148 | implied, including, without limitation, any warranties or conditions
149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150 | PARTICULAR PURPOSE. You are solely responsible for determining the
151 | appropriateness of using or redistributing the Work and assume any
152 | risks associated with Your exercise of permissions under this License.
153 |
154 | 8. Limitation of Liability. In no event and under no legal theory,
155 | whether in tort (including negligence), contract, or otherwise,
156 | unless required by applicable law (such as deliberate and grossly
157 | negligent acts) or agreed to in writing, shall any Contributor be
158 | liable to You for damages, including any direct, indirect, special,
159 | incidental, or consequential damages of any character arising as a
160 | result of this License or out of the use or inability to use the
161 | Work (including but not limited to damages for loss of goodwill,
162 | work stoppage, computer failure or malfunction, or any and all
163 | other commercial damages or losses), even if such Contributor
164 | has been advised of the possibility of such damages.
165 |
166 | 9. Accepting Warranty or Additional Liability. While redistributing
167 | the Work or Derivative Works thereof, You may choose to offer,
168 | and charge a fee for, acceptance of support, warranty, indemnity,
169 | or other liability obligations and/or rights consistent with this
170 | License. However, in accepting such obligations, You may act only
171 | on Your own behalf and on Your sole responsibility, not on behalf
172 | of any other Contributor, and only if You agree to indemnify,
173 | defend, and hold each Contributor harmless for any liability
174 | incurred by, or claims asserted against, such Contributor by reason
175 | of your accepting any such warranty or additional liability.
176 |
177 | END OF TERMS AND CONDITIONS
178 |
179 | APPENDIX: How to apply the Apache License to your work.
180 |
181 | To apply the Apache License to your work, attach the following
182 | boilerplate notice, with the fields enclosed by brackets "{}"
183 | replaced with your own identifying information. (Don't include
184 | the brackets!) The text should be enclosed in the appropriate
185 | comment syntax for the file format. We also recommend that a
186 | file or class name and description of purpose be included on the
187 | same "printed page" as the copyright notice for easier
188 | identification within third-party archives.
189 |
190 | Copyright {yyyy} {name of copyright owner}
191 |
192 | Licensed under the Apache License, Version 2.0 (the "License");
193 | you may not use this file except in compliance with the License.
194 | You may obtain a copy of the License at
195 |
196 | http://www.apache.org/licenses/LICENSE-2.0
197 |
198 | Unless required by applicable law or agreed to in writing, software
199 | distributed under the License is distributed on an "AS IS" BASIS,
200 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201 | See the License for the specific language governing permissions and
202 | limitations under the License.
203 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.ide.rider": "3.0.28",
4 | "com.unity.render-pipelines.universal": "16.0.5",
5 | "com.unity.timeline": "1.8.6",
6 | "com.unity.ugui": "2.0.0",
7 | "com.unity.visualeffectgraph": "16.0.5",
8 | "com.unity.modules.ai": "1.0.0",
9 | "com.unity.modules.androidjni": "1.0.0",
10 | "com.unity.modules.animation": "1.0.0",
11 | "com.unity.modules.audio": "1.0.0",
12 | "com.unity.modules.director": "1.0.0",
13 | "com.unity.modules.imageconversion": "1.0.0",
14 | "com.unity.modules.imgui": "1.0.0",
15 | "com.unity.modules.jsonserialize": "1.0.0",
16 | "com.unity.modules.particlesystem": "1.0.0",
17 | "com.unity.modules.physics": "1.0.0",
18 | "com.unity.modules.screencapture": "1.0.0",
19 | "com.unity.modules.ui": "1.0.0",
20 | "com.unity.modules.umbra": "1.0.0",
21 | "com.unity.modules.unitywebrequest": "1.0.0",
22 | "com.unity.modules.video": "1.0.0",
23 | "com.unity.modules.vr": "1.0.0",
24 | "com.unity.modules.xr": "1.0.0"
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Packages/packages-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.burst": {
4 | "version": "1.8.12",
5 | "depth": 1,
6 | "source": "registry",
7 | "dependencies": {
8 | "com.unity.mathematics": "1.2.1",
9 | "com.unity.modules.jsonserialize": "1.0.0"
10 | },
11 | "url": "https://packages.unity.com"
12 | },
13 | "com.unity.collections": {
14 | "version": "1.4.0",
15 | "depth": 3,
16 | "source": "registry",
17 | "dependencies": {
18 | "com.unity.burst": "1.6.6",
19 | "com.unity.nuget.mono-cecil": "1.11.4",
20 | "com.unity.test-framework": "1.1.31"
21 | },
22 | "url": "https://packages.unity.com"
23 | },
24 | "com.unity.ext.nunit": {
25 | "version": "2.0.5",
26 | "depth": 1,
27 | "source": "registry",
28 | "dependencies": {},
29 | "url": "https://packages.unity.com"
30 | },
31 | "com.unity.ide.rider": {
32 | "version": "3.0.28",
33 | "depth": 0,
34 | "source": "registry",
35 | "dependencies": {
36 | "com.unity.ext.nunit": "1.0.6"
37 | },
38 | "url": "https://packages.unity.com"
39 | },
40 | "com.unity.mathematics": {
41 | "version": "1.2.6",
42 | "depth": 1,
43 | "source": "registry",
44 | "dependencies": {},
45 | "url": "https://packages.unity.com"
46 | },
47 | "com.unity.nuget.mono-cecil": {
48 | "version": "1.11.4",
49 | "depth": 4,
50 | "source": "registry",
51 | "dependencies": {},
52 | "url": "https://packages.unity.com"
53 | },
54 | "com.unity.render-pipelines.core": {
55 | "version": "16.0.5",
56 | "depth": 1,
57 | "source": "builtin",
58 | "dependencies": {
59 | "com.unity.mathematics": "1.2.4",
60 | "com.unity.ugui": "2.0.0",
61 | "com.unity.modules.physics": "1.0.0",
62 | "com.unity.modules.terrain": "1.0.0",
63 | "com.unity.modules.jsonserialize": "1.0.0",
64 | "com.unity.rendering.light-transport": "1.0.0"
65 | }
66 | },
67 | "com.unity.render-pipelines.universal": {
68 | "version": "16.0.5",
69 | "depth": 0,
70 | "source": "builtin",
71 | "dependencies": {
72 | "com.unity.mathematics": "1.2.1",
73 | "com.unity.burst": "1.8.9",
74 | "com.unity.render-pipelines.core": "16.0.5",
75 | "com.unity.shadergraph": "16.0.5"
76 | }
77 | },
78 | "com.unity.rendering.light-transport": {
79 | "version": "1.0.1",
80 | "depth": 2,
81 | "source": "builtin",
82 | "dependencies": {
83 | "com.unity.collections": "1.4.0",
84 | "com.unity.mathematics": "1.2.4",
85 | "com.unity.render-pipelines.core": "16.0.1"
86 | }
87 | },
88 | "com.unity.searcher": {
89 | "version": "4.9.2",
90 | "depth": 2,
91 | "source": "registry",
92 | "dependencies": {},
93 | "url": "https://packages.unity.com"
94 | },
95 | "com.unity.shadergraph": {
96 | "version": "16.0.5",
97 | "depth": 1,
98 | "source": "builtin",
99 | "dependencies": {
100 | "com.unity.render-pipelines.core": "16.0.5",
101 | "com.unity.searcher": "4.9.2"
102 | }
103 | },
104 | "com.unity.test-framework": {
105 | "version": "1.3.9",
106 | "depth": 4,
107 | "source": "registry",
108 | "dependencies": {
109 | "com.unity.ext.nunit": "2.0.3",
110 | "com.unity.modules.imgui": "1.0.0",
111 | "com.unity.modules.jsonserialize": "1.0.0"
112 | },
113 | "url": "https://packages.unity.com"
114 | },
115 | "com.unity.timeline": {
116 | "version": "1.8.6",
117 | "depth": 0,
118 | "source": "registry",
119 | "dependencies": {
120 | "com.unity.modules.director": "1.0.0",
121 | "com.unity.modules.animation": "1.0.0",
122 | "com.unity.modules.audio": "1.0.0",
123 | "com.unity.modules.particlesystem": "1.0.0"
124 | },
125 | "url": "https://packages.unity.com"
126 | },
127 | "com.unity.ugui": {
128 | "version": "2.0.0",
129 | "depth": 0,
130 | "source": "builtin",
131 | "dependencies": {
132 | "com.unity.modules.ui": "1.0.0",
133 | "com.unity.modules.imgui": "1.0.0"
134 | }
135 | },
136 | "com.unity.visualeffectgraph": {
137 | "version": "16.0.5",
138 | "depth": 0,
139 | "source": "builtin",
140 | "dependencies": {
141 | "com.unity.shadergraph": "16.0.5",
142 | "com.unity.render-pipelines.core": "16.0.5"
143 | }
144 | },
145 | "com.unity.modules.ai": {
146 | "version": "1.0.0",
147 | "depth": 0,
148 | "source": "builtin",
149 | "dependencies": {}
150 | },
151 | "com.unity.modules.androidjni": {
152 | "version": "1.0.0",
153 | "depth": 0,
154 | "source": "builtin",
155 | "dependencies": {}
156 | },
157 | "com.unity.modules.animation": {
158 | "version": "1.0.0",
159 | "depth": 0,
160 | "source": "builtin",
161 | "dependencies": {}
162 | },
163 | "com.unity.modules.audio": {
164 | "version": "1.0.0",
165 | "depth": 0,
166 | "source": "builtin",
167 | "dependencies": {}
168 | },
169 | "com.unity.modules.director": {
170 | "version": "1.0.0",
171 | "depth": 0,
172 | "source": "builtin",
173 | "dependencies": {
174 | "com.unity.modules.audio": "1.0.0",
175 | "com.unity.modules.animation": "1.0.0"
176 | }
177 | },
178 | "com.unity.modules.imageconversion": {
179 | "version": "1.0.0",
180 | "depth": 0,
181 | "source": "builtin",
182 | "dependencies": {}
183 | },
184 | "com.unity.modules.imgui": {
185 | "version": "1.0.0",
186 | "depth": 0,
187 | "source": "builtin",
188 | "dependencies": {}
189 | },
190 | "com.unity.modules.jsonserialize": {
191 | "version": "1.0.0",
192 | "depth": 0,
193 | "source": "builtin",
194 | "dependencies": {}
195 | },
196 | "com.unity.modules.particlesystem": {
197 | "version": "1.0.0",
198 | "depth": 0,
199 | "source": "builtin",
200 | "dependencies": {}
201 | },
202 | "com.unity.modules.physics": {
203 | "version": "1.0.0",
204 | "depth": 0,
205 | "source": "builtin",
206 | "dependencies": {}
207 | },
208 | "com.unity.modules.screencapture": {
209 | "version": "1.0.0",
210 | "depth": 0,
211 | "source": "builtin",
212 | "dependencies": {
213 | "com.unity.modules.imageconversion": "1.0.0"
214 | }
215 | },
216 | "com.unity.modules.subsystems": {
217 | "version": "1.0.0",
218 | "depth": 1,
219 | "source": "builtin",
220 | "dependencies": {
221 | "com.unity.modules.jsonserialize": "1.0.0"
222 | }
223 | },
224 | "com.unity.modules.terrain": {
225 | "version": "1.0.0",
226 | "depth": 2,
227 | "source": "builtin",
228 | "dependencies": {}
229 | },
230 | "com.unity.modules.ui": {
231 | "version": "1.0.0",
232 | "depth": 0,
233 | "source": "builtin",
234 | "dependencies": {}
235 | },
236 | "com.unity.modules.umbra": {
237 | "version": "1.0.0",
238 | "depth": 0,
239 | "source": "builtin",
240 | "dependencies": {}
241 | },
242 | "com.unity.modules.unitywebrequest": {
243 | "version": "1.0.0",
244 | "depth": 0,
245 | "source": "builtin",
246 | "dependencies": {}
247 | },
248 | "com.unity.modules.video": {
249 | "version": "1.0.0",
250 | "depth": 0,
251 | "source": "builtin",
252 | "dependencies": {
253 | "com.unity.modules.audio": "1.0.0",
254 | "com.unity.modules.ui": "1.0.0",
255 | "com.unity.modules.unitywebrequest": "1.0.0"
256 | }
257 | },
258 | "com.unity.modules.vr": {
259 | "version": "1.0.0",
260 | "depth": 0,
261 | "source": "builtin",
262 | "dependencies": {
263 | "com.unity.modules.jsonserialize": "1.0.0",
264 | "com.unity.modules.physics": "1.0.0",
265 | "com.unity.modules.xr": "1.0.0"
266 | }
267 | },
268 | "com.unity.modules.xr": {
269 | "version": "1.0.0",
270 | "depth": 0,
271 | "source": "builtin",
272 | "dependencies": {
273 | "com.unity.modules.physics": "1.0.0",
274 | "com.unity.modules.jsonserialize": "1.0.0",
275 | "com.unity.modules.subsystems": "1.0.0"
276 | }
277 | }
278 | }
279 | }
280 |
--------------------------------------------------------------------------------
/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/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 | m_configObjects: {}
9 |
--------------------------------------------------------------------------------
/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: 16
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_DepthNormals:
17 | m_Mode: 1
18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
19 | m_MotionVectors:
20 | m_Mode: 1
21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
22 | m_LightHalo:
23 | m_Mode: 1
24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LensFlare:
26 | m_Mode: 1
27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
28 | m_VideoShadersIncludeMode: 2
29 | m_AlwaysIncludedShaders:
30 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
31 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
32 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
36 | m_PreloadedShaders: []
37 | m_PreloadShadersBatchTimeLimit: -1
38 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
39 | m_CustomRenderPipeline: {fileID: 11400000, guid: e9b4936a9cba99b45a1727b8a0e9afd3, type: 2}
40 | m_TransparencySortMode: 0
41 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
42 | m_DefaultRenderingPath: 1
43 | m_DefaultMobileRenderingPath: 1
44 | m_TierSettings: []
45 | m_LightmapStripping: 0
46 | m_FogStripping: 0
47 | m_InstancingStripping: 0
48 | m_BrgStripping: 0
49 | m_LightmapKeepPlain: 1
50 | m_LightmapKeepDirCombined: 1
51 | m_LightmapKeepDynamicPlain: 1
52 | m_LightmapKeepDynamicDirCombined: 1
53 | m_LightmapKeepShadowMask: 1
54 | m_LightmapKeepSubtractive: 1
55 | m_FogKeepLinear: 1
56 | m_FogKeepExp: 1
57 | m_FogKeepExp2: 1
58 | m_AlbedoSwatchInfos: []
59 | m_RenderPipelineGlobalSettingsMap:
60 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 50175f59ec663a348a282f4e1feebbf0, type: 2}
61 | m_LightsUseLinearIntensity: 1
62 | m_LightsUseColorTemperature: 1
63 | m_DefaultRenderingLayerMask: 1
64 | m_LogWhenShaderIsCompiled: 0
65 | m_LightProbeOutsideHullStrategy: 0
66 | m_CameraRelativeLightCulling: 0
67 | m_CameraRelativeShadowCulling: 0
68 |
--------------------------------------------------------------------------------
/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 | - serializedVersion: 3
297 | m_Name: Enable Debug Button 1
298 | descriptiveName:
299 | descriptiveNegativeName:
300 | negativeButton:
301 | positiveButton: left ctrl
302 | altNegativeButton:
303 | altPositiveButton: joystick button 8
304 | gravity: 0
305 | dead: 0
306 | sensitivity: 0
307 | snap: 0
308 | invert: 0
309 | type: 0
310 | axis: 0
311 | joyNum: 0
312 | - serializedVersion: 3
313 | m_Name: Enable Debug Button 2
314 | descriptiveName:
315 | descriptiveNegativeName:
316 | negativeButton:
317 | positiveButton: backspace
318 | altNegativeButton:
319 | altPositiveButton: joystick button 9
320 | gravity: 0
321 | dead: 0
322 | sensitivity: 0
323 | snap: 0
324 | invert: 0
325 | type: 0
326 | axis: 0
327 | joyNum: 0
328 | - serializedVersion: 3
329 | m_Name: Debug Reset
330 | descriptiveName:
331 | descriptiveNegativeName:
332 | negativeButton:
333 | positiveButton: left alt
334 | altNegativeButton:
335 | altPositiveButton: joystick button 1
336 | gravity: 0
337 | dead: 0
338 | sensitivity: 0
339 | snap: 0
340 | invert: 0
341 | type: 0
342 | axis: 0
343 | joyNum: 0
344 | - serializedVersion: 3
345 | m_Name: Debug Next
346 | descriptiveName:
347 | descriptiveNegativeName:
348 | negativeButton:
349 | positiveButton: page down
350 | altNegativeButton:
351 | altPositiveButton: joystick button 5
352 | gravity: 0
353 | dead: 0
354 | sensitivity: 0
355 | snap: 0
356 | invert: 0
357 | type: 0
358 | axis: 0
359 | joyNum: 0
360 | - serializedVersion: 3
361 | m_Name: Debug Previous
362 | descriptiveName:
363 | descriptiveNegativeName:
364 | negativeButton:
365 | positiveButton: page up
366 | altNegativeButton:
367 | altPositiveButton: joystick button 4
368 | gravity: 0
369 | dead: 0
370 | sensitivity: 0
371 | snap: 0
372 | invert: 0
373 | type: 0
374 | axis: 0
375 | joyNum: 0
376 | - serializedVersion: 3
377 | m_Name: Debug Validate
378 | descriptiveName:
379 | descriptiveNegativeName:
380 | negativeButton:
381 | positiveButton: return
382 | altNegativeButton:
383 | altPositiveButton: joystick button 0
384 | gravity: 0
385 | dead: 0
386 | sensitivity: 0
387 | snap: 0
388 | invert: 0
389 | type: 0
390 | axis: 0
391 | joyNum: 0
392 | - serializedVersion: 3
393 | m_Name: Debug Persistent
394 | descriptiveName:
395 | descriptiveNegativeName:
396 | negativeButton:
397 | positiveButton: right shift
398 | altNegativeButton:
399 | altPositiveButton: joystick button 2
400 | gravity: 0
401 | dead: 0
402 | sensitivity: 0
403 | snap: 0
404 | invert: 0
405 | type: 0
406 | axis: 0
407 | joyNum: 0
408 | - serializedVersion: 3
409 | m_Name: Debug Multiplier
410 | descriptiveName:
411 | descriptiveNegativeName:
412 | negativeButton:
413 | positiveButton: left shift
414 | altNegativeButton:
415 | altPositiveButton: joystick button 3
416 | gravity: 0
417 | dead: 0
418 | sensitivity: 0
419 | snap: 0
420 | invert: 0
421 | type: 0
422 | axis: 0
423 | joyNum: 0
424 | - serializedVersion: 3
425 | m_Name: Debug Horizontal
426 | descriptiveName:
427 | descriptiveNegativeName:
428 | negativeButton: left
429 | positiveButton: right
430 | altNegativeButton:
431 | altPositiveButton:
432 | gravity: 1000
433 | dead: 0.001
434 | sensitivity: 1000
435 | snap: 0
436 | invert: 0
437 | type: 0
438 | axis: 0
439 | joyNum: 0
440 | - serializedVersion: 3
441 | m_Name: Debug Vertical
442 | descriptiveName:
443 | descriptiveNegativeName:
444 | negativeButton: down
445 | positiveButton: up
446 | altNegativeButton:
447 | altPositiveButton:
448 | gravity: 1000
449 | dead: 0.001
450 | sensitivity: 1000
451 | snap: 0
452 | invert: 0
453 | type: 0
454 | axis: 0
455 | joyNum: 0
456 | - serializedVersion: 3
457 | m_Name: Debug Vertical
458 | descriptiveName:
459 | descriptiveNegativeName:
460 | negativeButton: down
461 | positiveButton: up
462 | altNegativeButton:
463 | altPositiveButton:
464 | gravity: 1000
465 | dead: 0.001
466 | sensitivity: 1000
467 | snap: 0
468 | invert: 0
469 | type: 2
470 | axis: 6
471 | joyNum: 0
472 | - serializedVersion: 3
473 | m_Name: Debug Horizontal
474 | descriptiveName:
475 | descriptiveNegativeName:
476 | negativeButton: left
477 | positiveButton: right
478 | altNegativeButton:
479 | altPositiveButton:
480 | gravity: 1000
481 | dead: 0.001
482 | sensitivity: 1000
483 | snap: 0
484 | invert: 0
485 | type: 2
486 | axis: 5
487 | joyNum: 0
488 | m_UsePhysicalKeys: 1
489 |
--------------------------------------------------------------------------------
/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/MultiplayerManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!655991488 &1
4 | MultiplayerManager:
5 | m_ObjectHideFlags: 0
6 | m_EnableMultiplayerRoles: 0
7 | m_ActiveMultiplayerRole: 0
8 |
--------------------------------------------------------------------------------
/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.com
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: -830
34 | m_OriginalInstanceId: -832
35 | m_LoadAssets: 0
36 |
--------------------------------------------------------------------------------
/ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "m_Dictionary": {
3 | "m_DictionaryValues": []
4 | }
5 | }
--------------------------------------------------------------------------------
/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: 27
7 | productGUID: edc99a95cee19b140b57c84826fbdefc
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: Boids-Unity-ComputeShader-Sandbox
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_HolographicTrackingLossScreen: {fileID: 0}
45 | defaultScreenWidth: 1920
46 | defaultScreenHeight: 1080
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 1
51 | unsupportedMSAAFallback: 0
52 | m_SpriteBatchVertexThreshold: 300
53 | m_MTRendering: 1
54 | mipStripping: 0
55 | numberOfMipsStripped: 0
56 | numberOfMipsStrippedPerMipmapLimitGroup: {}
57 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
58 | iosShowActivityIndicatorOnLoading: -1
59 | androidShowActivityIndicatorOnLoading: -1
60 | iosUseCustomAppBackgroundBehavior: 0
61 | allowedAutorotateToPortrait: 1
62 | allowedAutorotateToPortraitUpsideDown: 1
63 | allowedAutorotateToLandscapeRight: 1
64 | allowedAutorotateToLandscapeLeft: 1
65 | useOSAutorotation: 1
66 | use32BitDisplayBuffer: 1
67 | preserveFramebufferAlpha: 0
68 | disableDepthAndStencilBuffers: 0
69 | androidStartInFullscreen: 1
70 | androidRenderOutsideSafeArea: 1
71 | androidUseSwappy: 1
72 | androidBlitType: 0
73 | androidResizableWindow: 0
74 | androidDefaultWindowWidth: 1920
75 | androidDefaultWindowHeight: 1080
76 | androidMinimumWindowWidth: 400
77 | androidMinimumWindowHeight: 300
78 | androidFullscreenMode: 1
79 | androidAutoRotationBehavior: 1
80 | androidApplicationEntry: 2
81 | defaultIsNativeResolution: 1
82 | macRetinaSupport: 1
83 | runInBackground: 1
84 | captureSingleScreen: 0
85 | muteOtherAudioSources: 0
86 | Prepare IOS For Recording: 0
87 | Force IOS Speakers When Recording: 0
88 | deferSystemGesturesMode: 0
89 | hideHomeButton: 0
90 | submitAnalytics: 1
91 | usePlayerLog: 1
92 | dedicatedServerOptimizations: 0
93 | bakeCollisionMeshes: 0
94 | forceSingleInstance: 0
95 | useFlipModelSwapchain: 1
96 | resizableWindow: 0
97 | useMacAppStoreValidation: 0
98 | macAppStoreCategory: public.app-category.games
99 | gpuSkinning: 1
100 | meshDeformation: 2
101 | xboxPIXTextureCapture: 0
102 | xboxEnableAvatar: 0
103 | xboxEnableKinect: 0
104 | xboxEnableKinectAutoTracking: 0
105 | xboxEnableFitness: 0
106 | visibleInBackground: 1
107 | allowFullscreenSwitch: 1
108 | fullscreenMode: 1
109 | xboxSpeechDB: 0
110 | xboxEnableHeadOrientation: 0
111 | xboxEnableGuest: 0
112 | xboxEnablePIXSampling: 0
113 | metalFramebufferOnly: 0
114 | xboxOneResolution: 0
115 | xboxOneSResolution: 0
116 | xboxOneXResolution: 3
117 | xboxOneMonoLoggingLevel: 0
118 | xboxOneLoggingLevel: 1
119 | xboxOneDisableEsram: 0
120 | xboxOneEnableTypeOptimization: 0
121 | xboxOnePresentImmediateThreshold: 0
122 | switchQueueCommandMemory: 0
123 | switchQueueControlMemory: 16384
124 | switchQueueComputeMemory: 262144
125 | switchNVNShaderPoolsGranularity: 33554432
126 | switchNVNDefaultPoolsGranularity: 16777216
127 | switchNVNOtherPoolsGranularity: 16777216
128 | switchGpuScratchPoolGranularity: 2097152
129 | switchAllowGpuScratchShrinking: 0
130 | switchNVNMaxPublicTextureIDCount: 0
131 | switchNVNMaxPublicSamplerIDCount: 0
132 | switchMaxWorkerMultiple: 8
133 | switchNVNGraphicsFirmwareMemory: 32
134 | vulkanNumSwapchainBuffers: 3
135 | vulkanEnableSetSRGBWrite: 0
136 | vulkanEnablePreTransform: 1
137 | vulkanEnableLateAcquireNextImage: 0
138 | vulkanEnableCommandBufferRecycling: 1
139 | loadStoreDebugModeEnabled: 0
140 | bundleVersion: 0.1
141 | preloadedAssets: []
142 | metroInputSource: 0
143 | wsaTransparentSwapchain: 0
144 | m_HolographicPauseOnTrackingLoss: 1
145 | xboxOneDisableKinectGpuReservation: 1
146 | xboxOneEnable7thCore: 1
147 | vrSettings:
148 | enable360StereoCapture: 0
149 | isWsaHolographicRemotingEnabled: 0
150 | enableFrameTimingStats: 0
151 | enableOpenGLProfilerGPURecorders: 1
152 | allowHDRDisplaySupport: 0
153 | useHDRDisplay: 0
154 | hdrBitDepth: 0
155 | m_ColorGamuts: 00000000
156 | targetPixelDensity: 30
157 | resolutionScalingMode: 0
158 | resetResolutionOnWindowResize: 0
159 | androidSupportedAspectRatio: 1
160 | androidMaxAspectRatio: 2.1
161 | androidMinAspectRatio: 1
162 | applicationIdentifier: {}
163 | buildNumber:
164 | Bratwurst: 0
165 | Standalone: 0
166 | iPhone: 0
167 | tvOS: 0
168 | overrideDefaultApplicationIdentifier: 0
169 | AndroidBundleVersionCode: 1
170 | AndroidMinSdkVersion: 23
171 | AndroidTargetSdkVersion: 0
172 | AndroidPreferredInstallLocation: 1
173 | aotOptions:
174 | stripEngineCode: 1
175 | iPhoneStrippingLevel: 0
176 | iPhoneScriptCallOptimization: 0
177 | ForceInternetPermission: 0
178 | ForceSDCardPermission: 0
179 | CreateWallpaper: 0
180 | androidSplitApplicationBinary: 0
181 | keepLoadedShadersAlive: 0
182 | StripUnusedMeshComponents: 1
183 | strictShaderVariantMatching: 0
184 | VertexChannelCompressionMask: 4054
185 | iPhoneSdkVersion: 988
186 | iOSTargetOSVersionString: 13.0
187 | tvOSSdkVersion: 0
188 | tvOSRequireExtendedGameController: 0
189 | tvOSTargetOSVersionString: 13.0
190 | bratwurstSdkVersion: 0
191 | bratwurstTargetOSVersionString: 13.0
192 | uIPrerenderedIcon: 0
193 | uIRequiresPersistentWiFi: 0
194 | uIRequiresFullScreen: 1
195 | uIStatusBarHidden: 1
196 | uIExitOnSuspend: 0
197 | uIStatusBarStyle: 0
198 | appleTVSplashScreen: {fileID: 0}
199 | appleTVSplashScreen2x: {fileID: 0}
200 | tvOSSmallIconLayers: []
201 | tvOSSmallIconLayers2x: []
202 | tvOSLargeIconLayers: []
203 | tvOSLargeIconLayers2x: []
204 | tvOSTopShelfImageLayers: []
205 | tvOSTopShelfImageLayers2x: []
206 | tvOSTopShelfImageWideLayers: []
207 | tvOSTopShelfImageWideLayers2x: []
208 | iOSLaunchScreenType: 0
209 | iOSLaunchScreenPortrait: {fileID: 0}
210 | iOSLaunchScreenLandscape: {fileID: 0}
211 | iOSLaunchScreenBackgroundColor:
212 | serializedVersion: 2
213 | rgba: 0
214 | iOSLaunchScreenFillPct: 100
215 | iOSLaunchScreenSize: 100
216 | iOSLaunchScreenCustomXibPath:
217 | iOSLaunchScreeniPadType: 0
218 | iOSLaunchScreeniPadImage: {fileID: 0}
219 | iOSLaunchScreeniPadBackgroundColor:
220 | serializedVersion: 2
221 | rgba: 0
222 | iOSLaunchScreeniPadFillPct: 100
223 | iOSLaunchScreeniPadSize: 100
224 | iOSLaunchScreeniPadCustomXibPath:
225 | iOSLaunchScreenCustomStoryboardPath:
226 | iOSLaunchScreeniPadCustomStoryboardPath:
227 | iOSDeviceRequirements: []
228 | iOSURLSchemes: []
229 | macOSURLSchemes: []
230 | iOSBackgroundModes: 0
231 | iOSMetalForceHardShadows: 0
232 | metalEditorSupport: 1
233 | metalAPIValidation: 1
234 | iOSRenderExtraFrameOnPause: 0
235 | iosCopyPluginsCodeInsteadOfSymlink: 0
236 | appleDeveloperTeamID:
237 | iOSManualSigningProvisioningProfileID:
238 | tvOSManualSigningProvisioningProfileID:
239 | bratwurstManualSigningProvisioningProfileID:
240 | iOSManualSigningProvisioningProfileType: 0
241 | tvOSManualSigningProvisioningProfileType: 0
242 | bratwurstManualSigningProvisioningProfileType: 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.4
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 | useCustomGradleSettingsTemplate: 0
258 | useCustomProguardFile: 0
259 | AndroidTargetArchitectures: 2
260 | AndroidTargetDevices: 0
261 | AndroidSplashScreenScale: 0
262 | androidSplashScreen: {fileID: 0}
263 | AndroidKeystoreName:
264 | AndroidKeyaliasName:
265 | AndroidEnableArmv9SecurityFeatures: 0
266 | AndroidEnableArm64MTE: 0
267 | AndroidBuildApkPerCpuArchitecture: 0
268 | AndroidTVCompatibility: 0
269 | AndroidIsGame: 1
270 | AndroidEnableTango: 0
271 | androidEnableBanner: 1
272 | androidUseLowAccuracyLocation: 0
273 | androidUseCustomKeystore: 0
274 | m_AndroidBanners:
275 | - width: 320
276 | height: 180
277 | banner: {fileID: 0}
278 | androidGamepadSupportLevel: 0
279 | chromeosInputEmulation: 1
280 | AndroidMinifyRelease: 0
281 | AndroidMinifyDebug: 0
282 | AndroidValidateAppBundleSize: 1
283 | AndroidAppBundleSizeToValidate: 150
284 | AndroidReportGooglePlayAppDependencies: 1
285 | m_BuildTargetIcons: []
286 | m_BuildTargetPlatformIcons: []
287 | m_BuildTargetBatching:
288 | - m_BuildTarget: Standalone
289 | m_StaticBatching: 1
290 | m_DynamicBatching: 0
291 | - m_BuildTarget: tvOS
292 | m_StaticBatching: 1
293 | m_DynamicBatching: 0
294 | - m_BuildTarget: Android
295 | m_StaticBatching: 1
296 | m_DynamicBatching: 0
297 | - m_BuildTarget: iPhone
298 | m_StaticBatching: 1
299 | m_DynamicBatching: 0
300 | - m_BuildTarget: WebGL
301 | m_StaticBatching: 0
302 | m_DynamicBatching: 0
303 | m_BuildTargetShaderSettings: []
304 | m_BuildTargetGraphicsJobs:
305 | - m_BuildTarget: MacStandaloneSupport
306 | m_GraphicsJobs: 0
307 | - m_BuildTarget: Switch
308 | m_GraphicsJobs: 1
309 | - m_BuildTarget: MetroSupport
310 | m_GraphicsJobs: 1
311 | - m_BuildTarget: AppleTVSupport
312 | m_GraphicsJobs: 0
313 | - m_BuildTarget: BJMSupport
314 | m_GraphicsJobs: 1
315 | - m_BuildTarget: LinuxStandaloneSupport
316 | m_GraphicsJobs: 1
317 | - m_BuildTarget: PS4Player
318 | m_GraphicsJobs: 1
319 | - m_BuildTarget: iOSSupport
320 | m_GraphicsJobs: 0
321 | - m_BuildTarget: WindowsStandaloneSupport
322 | m_GraphicsJobs: 1
323 | - m_BuildTarget: XboxOnePlayer
324 | m_GraphicsJobs: 1
325 | - m_BuildTarget: LuminSupport
326 | m_GraphicsJobs: 0
327 | - m_BuildTarget: AndroidPlayer
328 | m_GraphicsJobs: 0
329 | - m_BuildTarget: WebGLSupport
330 | m_GraphicsJobs: 0
331 | m_BuildTargetGraphicsJobMode:
332 | - m_BuildTarget: PS4Player
333 | m_GraphicsJobMode: 0
334 | - m_BuildTarget: XboxOnePlayer
335 | m_GraphicsJobMode: 0
336 | m_BuildTargetGraphicsAPIs:
337 | - m_BuildTarget: AndroidPlayer
338 | m_APIs: 150000000b000000
339 | m_Automatic: 1
340 | - m_BuildTarget: iOSSupport
341 | m_APIs: 10000000
342 | m_Automatic: 1
343 | - m_BuildTarget: AppleTVSupport
344 | m_APIs: 10000000
345 | m_Automatic: 1
346 | - m_BuildTarget: WebGLSupport
347 | m_APIs: 0b000000
348 | m_Automatic: 1
349 | m_BuildTargetVRSettings:
350 | - m_BuildTarget: Standalone
351 | m_Enabled: 0
352 | m_Devices:
353 | - Oculus
354 | - OpenVR
355 | m_DefaultShaderChunkSizeInMB: 16
356 | m_DefaultShaderChunkCount: 0
357 | openGLRequireES31: 0
358 | openGLRequireES31AEP: 0
359 | openGLRequireES32: 0
360 | m_TemplateCustomTags: {}
361 | mobileMTRendering:
362 | Android: 1
363 | iPhone: 1
364 | tvOS: 1
365 | m_BuildTargetGroupLightmapEncodingQuality:
366 | - m_BuildTarget: Android
367 | m_EncodingQuality: 1
368 | - m_BuildTarget: iPhone
369 | m_EncodingQuality: 1
370 | - m_BuildTarget: tvOS
371 | m_EncodingQuality: 1
372 | m_BuildTargetGroupHDRCubemapEncodingQuality:
373 | - m_BuildTarget: Android
374 | m_EncodingQuality: 1
375 | - m_BuildTarget: iPhone
376 | m_EncodingQuality: 1
377 | - m_BuildTarget: tvOS
378 | m_EncodingQuality: 1
379 | m_BuildTargetGroupLightmapSettings: []
380 | m_BuildTargetGroupLoadStoreDebugModeSettings: []
381 | m_BuildTargetNormalMapEncoding:
382 | - m_BuildTarget: Android
383 | m_Encoding: 1
384 | - m_BuildTarget: iPhone
385 | m_Encoding: 1
386 | - m_BuildTarget: tvOS
387 | m_Encoding: 1
388 | m_BuildTargetDefaultTextureCompressionFormat:
389 | - serializedVersion: 2
390 | m_BuildTarget: Android
391 | m_Formats: 03000000
392 | playModeTestRunnerEnabled: 0
393 | runPlayModeTestAsEditModeTest: 0
394 | actionOnDotNetUnhandledException: 1
395 | enableInternalProfiler: 0
396 | logObjCUncaughtExceptions: 1
397 | enableCrashReportAPI: 0
398 | cameraUsageDescription:
399 | locationUsageDescription:
400 | microphoneUsageDescription:
401 | bluetoothUsageDescription:
402 | macOSTargetOSVersion: 10.13.0
403 | switchNMETAOverride:
404 | switchNetLibKey:
405 | switchSocketMemoryPoolSize: 6144
406 | switchSocketAllocatorPoolSize: 128
407 | switchSocketConcurrencyLimit: 14
408 | switchScreenResolutionBehavior: 2
409 | switchUseCPUProfiler: 0
410 | switchEnableFileSystemTrace: 0
411 | switchLTOSetting: 0
412 | switchApplicationID: 0x01004b9000490000
413 | switchNSODependencies:
414 | switchCompilerFlags:
415 | switchTitleNames_0:
416 | switchTitleNames_1:
417 | switchTitleNames_2:
418 | switchTitleNames_3:
419 | switchTitleNames_4:
420 | switchTitleNames_5:
421 | switchTitleNames_6:
422 | switchTitleNames_7:
423 | switchTitleNames_8:
424 | switchTitleNames_9:
425 | switchTitleNames_10:
426 | switchTitleNames_11:
427 | switchTitleNames_12:
428 | switchTitleNames_13:
429 | switchTitleNames_14:
430 | switchTitleNames_15:
431 | switchPublisherNames_0:
432 | switchPublisherNames_1:
433 | switchPublisherNames_2:
434 | switchPublisherNames_3:
435 | switchPublisherNames_4:
436 | switchPublisherNames_5:
437 | switchPublisherNames_6:
438 | switchPublisherNames_7:
439 | switchPublisherNames_8:
440 | switchPublisherNames_9:
441 | switchPublisherNames_10:
442 | switchPublisherNames_11:
443 | switchPublisherNames_12:
444 | switchPublisherNames_13:
445 | switchPublisherNames_14:
446 | switchPublisherNames_15:
447 | switchIcons_0: {fileID: 0}
448 | switchIcons_1: {fileID: 0}
449 | switchIcons_2: {fileID: 0}
450 | switchIcons_3: {fileID: 0}
451 | switchIcons_4: {fileID: 0}
452 | switchIcons_5: {fileID: 0}
453 | switchIcons_6: {fileID: 0}
454 | switchIcons_7: {fileID: 0}
455 | switchIcons_8: {fileID: 0}
456 | switchIcons_9: {fileID: 0}
457 | switchIcons_10: {fileID: 0}
458 | switchIcons_11: {fileID: 0}
459 | switchIcons_12: {fileID: 0}
460 | switchIcons_13: {fileID: 0}
461 | switchIcons_14: {fileID: 0}
462 | switchIcons_15: {fileID: 0}
463 | switchSmallIcons_0: {fileID: 0}
464 | switchSmallIcons_1: {fileID: 0}
465 | switchSmallIcons_2: {fileID: 0}
466 | switchSmallIcons_3: {fileID: 0}
467 | switchSmallIcons_4: {fileID: 0}
468 | switchSmallIcons_5: {fileID: 0}
469 | switchSmallIcons_6: {fileID: 0}
470 | switchSmallIcons_7: {fileID: 0}
471 | switchSmallIcons_8: {fileID: 0}
472 | switchSmallIcons_9: {fileID: 0}
473 | switchSmallIcons_10: {fileID: 0}
474 | switchSmallIcons_11: {fileID: 0}
475 | switchSmallIcons_12: {fileID: 0}
476 | switchSmallIcons_13: {fileID: 0}
477 | switchSmallIcons_14: {fileID: 0}
478 | switchSmallIcons_15: {fileID: 0}
479 | switchManualHTML:
480 | switchAccessibleURLs:
481 | switchLegalInformation:
482 | switchMainThreadStackSize: 1048576
483 | switchPresenceGroupId:
484 | switchLogoHandling: 0
485 | switchReleaseVersion: 0
486 | switchDisplayVersion: 1.0.0
487 | switchStartupUserAccount: 0
488 | switchSupportedLanguagesMask: 0
489 | switchLogoType: 0
490 | switchApplicationErrorCodeCategory:
491 | switchUserAccountSaveDataSize: 0
492 | switchUserAccountSaveDataJournalSize: 0
493 | switchApplicationAttribute: 0
494 | switchCardSpecSize: -1
495 | switchCardSpecClock: -1
496 | switchRatingsMask: 0
497 | switchRatingsInt_0: 0
498 | switchRatingsInt_1: 0
499 | switchRatingsInt_2: 0
500 | switchRatingsInt_3: 0
501 | switchRatingsInt_4: 0
502 | switchRatingsInt_5: 0
503 | switchRatingsInt_6: 0
504 | switchRatingsInt_7: 0
505 | switchRatingsInt_8: 0
506 | switchRatingsInt_9: 0
507 | switchRatingsInt_10: 0
508 | switchRatingsInt_11: 0
509 | switchRatingsInt_12: 0
510 | switchLocalCommunicationIds_0:
511 | switchLocalCommunicationIds_1:
512 | switchLocalCommunicationIds_2:
513 | switchLocalCommunicationIds_3:
514 | switchLocalCommunicationIds_4:
515 | switchLocalCommunicationIds_5:
516 | switchLocalCommunicationIds_6:
517 | switchLocalCommunicationIds_7:
518 | switchParentalControl: 0
519 | switchAllowsScreenshot: 1
520 | switchAllowsVideoCapturing: 1
521 | switchAllowsRuntimeAddOnContentInstall: 0
522 | switchDataLossConfirmation: 0
523 | switchUserAccountLockEnabled: 0
524 | switchSystemResourceMemory: 16777216
525 | switchSupportedNpadStyles: 22
526 | switchNativeFsCacheSize: 32
527 | switchIsHoldTypeHorizontal: 0
528 | switchSupportedNpadCount: 8
529 | switchEnableTouchScreen: 1
530 | switchSocketConfigEnabled: 0
531 | switchTcpInitialSendBufferSize: 32
532 | switchTcpInitialReceiveBufferSize: 64
533 | switchTcpAutoSendBufferSizeMax: 256
534 | switchTcpAutoReceiveBufferSizeMax: 256
535 | switchUdpSendBufferSize: 9
536 | switchUdpReceiveBufferSize: 42
537 | switchSocketBufferEfficiency: 4
538 | switchSocketInitializeEnabled: 1
539 | switchNetworkInterfaceManagerInitializeEnabled: 1
540 | switchDisableHTCSPlayerConnection: 0
541 | switchUseNewStyleFilepaths: 1
542 | switchUseLegacyFmodPriorities: 0
543 | switchUseMicroSleepForYield: 1
544 | switchEnableRamDiskSupport: 0
545 | switchMicroSleepForYieldTime: 25
546 | switchRamDiskSpaceSize: 12
547 | ps4NPAgeRating: 12
548 | ps4NPTitleSecret:
549 | ps4NPTrophyPackPath:
550 | ps4ParentalLevel: 11
551 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
552 | ps4Category: 0
553 | ps4MasterVersion: 01.00
554 | ps4AppVersion: 01.00
555 | ps4AppType: 0
556 | ps4ParamSfxPath:
557 | ps4VideoOutPixelFormat: 0
558 | ps4VideoOutInitialWidth: 1920
559 | ps4VideoOutBaseModeInitialWidth: 1920
560 | ps4VideoOutReprojectionRate: 60
561 | ps4PronunciationXMLPath:
562 | ps4PronunciationSIGPath:
563 | ps4BackgroundImagePath:
564 | ps4StartupImagePath:
565 | ps4StartupImagesFolder:
566 | ps4IconImagesFolder:
567 | ps4SaveDataImagePath:
568 | ps4SdkOverride:
569 | ps4BGMPath:
570 | ps4ShareFilePath:
571 | ps4ShareOverlayImagePath:
572 | ps4PrivacyGuardImagePath:
573 | ps4ExtraSceSysFile:
574 | ps4NPtitleDatPath:
575 | ps4RemotePlayKeyAssignment: -1
576 | ps4RemotePlayKeyMappingDir:
577 | ps4PlayTogetherPlayerCount: 0
578 | ps4EnterButtonAssignment: 1
579 | ps4ApplicationParam1: 0
580 | ps4ApplicationParam2: 0
581 | ps4ApplicationParam3: 0
582 | ps4ApplicationParam4: 0
583 | ps4DownloadDataSize: 0
584 | ps4GarlicHeapSize: 2048
585 | ps4ProGarlicHeapSize: 2560
586 | playerPrefsMaxSize: 32768
587 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
588 | ps4pnSessions: 1
589 | ps4pnPresence: 1
590 | ps4pnFriends: 1
591 | ps4pnGameCustomData: 1
592 | playerPrefsSupport: 0
593 | enableApplicationExit: 0
594 | resetTempFolder: 1
595 | restrictedAudioUsageRights: 0
596 | ps4UseResolutionFallback: 0
597 | ps4ReprojectionSupport: 0
598 | ps4UseAudio3dBackend: 0
599 | ps4UseLowGarlicFragmentationMode: 1
600 | ps4SocialScreenEnabled: 0
601 | ps4ScriptOptimizationLevel: 0
602 | ps4Audio3dVirtualSpeakerCount: 14
603 | ps4attribCpuUsage: 0
604 | ps4PatchPkgPath:
605 | ps4PatchLatestPkgPath:
606 | ps4PatchChangeinfoPath:
607 | ps4PatchDayOne: 0
608 | ps4attribUserManagement: 0
609 | ps4attribMoveSupport: 0
610 | ps4attrib3DSupport: 0
611 | ps4attribShareSupport: 0
612 | ps4attribExclusiveVR: 0
613 | ps4disableAutoHideSplash: 0
614 | ps4videoRecordingFeaturesUsed: 0
615 | ps4contentSearchFeaturesUsed: 0
616 | ps4CompatibilityPS5: 0
617 | ps4AllowPS5Detection: 0
618 | ps4GPU800MHz: 1
619 | ps4attribEyeToEyeDistanceSettingVR: 0
620 | ps4IncludedModules: []
621 | ps4attribVROutputEnabled: 0
622 | monoEnv:
623 | splashScreenBackgroundSourceLandscape: {fileID: 0}
624 | splashScreenBackgroundSourcePortrait: {fileID: 0}
625 | blurSplashScreenBackground: 1
626 | spritePackerPolicy:
627 | webGLMemorySize: 16
628 | webGLExceptionSupport: 1
629 | webGLNameFilesAsHashes: 0
630 | webGLShowDiagnostics: 0
631 | webGLDataCaching: 1
632 | webGLDebugSymbols: 0
633 | webGLEmscriptenArgs:
634 | webGLModulesDirectory:
635 | webGLTemplate: APPLICATION:Default
636 | webGLAnalyzeBuildSize: 0
637 | webGLUseEmbeddedResources: 0
638 | webGLCompressionFormat: 1
639 | webGLWasmArithmeticExceptions: 0
640 | webGLLinkerTarget: 1
641 | webGLThreadsSupport: 0
642 | webGLDecompressionFallback: 0
643 | webGLInitialMemorySize: 32
644 | webGLMaximumMemorySize: 2048
645 | webGLMemoryGrowthMode: 2
646 | webGLMemoryLinearGrowthStep: 16
647 | webGLMemoryGeometricGrowthStep: 0.2
648 | webGLMemoryGeometricGrowthCap: 96
649 | webGLEnableWebGPU: 0
650 | webGLPowerPreference: 2
651 | webGLWebAssemblyTable: 0
652 | webGLWebAssemblyBigInt: 0
653 | webGLCloseOnQuit: 0
654 | scriptingDefineSymbols: {}
655 | additionalCompilerArguments: {}
656 | platformArchitecture: {}
657 | scriptingBackend:
658 | Android: 1
659 | il2cppCompilerConfiguration: {}
660 | il2cppCodeGeneration: {}
661 | il2cppStacktraceInformation: {}
662 | managedStrippingLevel:
663 | Android: 1
664 | Bratwurst: 1
665 | EmbeddedLinux: 1
666 | GameCoreScarlett: 1
667 | GameCoreXboxOne: 1
668 | Nintendo Switch: 1
669 | PS4: 1
670 | PS5: 1
671 | QNX: 1
672 | WebGL: 1
673 | Windows Store Apps: 1
674 | XboxOne: 1
675 | iPhone: 1
676 | tvOS: 1
677 | incrementalIl2cppBuild: {}
678 | suppressCommonWarnings: 1
679 | allowUnsafeCode: 0
680 | useDeterministicCompilation: 1
681 | additionalIl2CppArgs:
682 | scriptingRuntimeVersion: 1
683 | gcIncremental: 1
684 | gcWBarrierValidation: 0
685 | apiCompatibilityLevelPerPlatform: {}
686 | editorAssembliesCompatibilityLevel: 1
687 | m_RenderingPath: 1
688 | m_MobileRenderingPath: 1
689 | metroPackageName: Boids-Unity-ComputeShader-Sandbox
690 | metroPackageVersion:
691 | metroCertificatePath:
692 | metroCertificatePassword:
693 | metroCertificateSubject:
694 | metroCertificateIssuer:
695 | metroCertificateNotAfter: 0000000000000000
696 | metroApplicationDescription: Boids-Unity-ComputeShader-Sandbox
697 | wsaImages: {}
698 | metroTileShortName:
699 | metroTileShowName: 0
700 | metroMediumTileShowName: 0
701 | metroLargeTileShowName: 0
702 | metroWideTileShowName: 0
703 | metroSupportStreamingInstall: 0
704 | metroLastRequiredScene: 0
705 | metroDefaultTileSize: 1
706 | metroTileForegroundText: 2
707 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
708 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1}
709 | metroSplashScreenUseBackgroundColor: 0
710 | platformCapabilities: {}
711 | metroTargetDeviceFamilies: {}
712 | metroFTAName:
713 | metroFTAFileTypes: []
714 | metroProtocolName:
715 | vcxProjDefaultLanguage:
716 | XboxOneProductId:
717 | XboxOneUpdateKey:
718 | XboxOneSandboxId:
719 | XboxOneContentId:
720 | XboxOneTitleId:
721 | XboxOneSCId:
722 | XboxOneGameOsOverridePath:
723 | XboxOnePackagingOverridePath:
724 | XboxOneAppManifestOverridePath:
725 | XboxOneVersion: 1.0.0.0
726 | XboxOnePackageEncryption: 0
727 | XboxOnePackageUpdateGranularity: 2
728 | XboxOneDescription:
729 | XboxOneLanguage:
730 | - enus
731 | XboxOneCapability: []
732 | XboxOneGameRating: {}
733 | XboxOneIsContentPackage: 0
734 | XboxOneEnhancedXboxCompatibilityMode: 0
735 | XboxOneEnableGPUVariability: 1
736 | XboxOneSockets: {}
737 | XboxOneSplashScreen: {fileID: 0}
738 | XboxOneAllowedProductIds: []
739 | XboxOnePersistentLocalStorageSize: 0
740 | XboxOneXTitleMemory: 8
741 | XboxOneOverrideIdentityName:
742 | XboxOneOverrideIdentityPublisher:
743 | vrEditorSettings: {}
744 | cloudServicesEnabled:
745 | UNet: 1
746 | luminIcon:
747 | m_Name:
748 | m_ModelFolderPath:
749 | m_PortalFolderPath:
750 | luminCert:
751 | m_CertPath:
752 | m_SignPackage: 1
753 | luminIsChannelApp: 0
754 | luminVersion:
755 | m_VersionCode: 1
756 | m_VersionName:
757 | hmiPlayerDataPath:
758 | hmiForceSRGBBlit: 0
759 | embeddedLinuxEnableGamepadInput: 0
760 | hmiCpuConfiguration:
761 | hmiLogStartupTiming: 0
762 | qnxGraphicConfPath:
763 | apiCompatibilityLevel: 6
764 | captureStartupLogs: {}
765 | activeInputHandler: 0
766 | windowsGamepadBackendHint: 0
767 | cloudProjectId:
768 | framebufferDepthMemorylessMode: 0
769 | qualitySettingsNames: []
770 | projectName:
771 | organizationId:
772 | cloudEnabled: 0
773 | legacyClampBlendShapeWeights: 0
774 | hmiLoadingImage: {fileID: 0}
775 | platformRequiresReadableAssets: 0
776 | virtualTexturingSupportEnabled: 0
777 | insecureHttpOption: 0
778 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2023.2.9f1
2 | m_EditorVersionWithRevision: 2023.2.9f1 (0c9c2e1f4bef)
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: 4
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 | skinWeights: 1
22 | globalTextureMipmapLimit: 1
23 | textureMipmapLimitSettings: []
24 | anisotropicTextures: 0
25 | antiAliasing: 0
26 | softParticles: 0
27 | softVegetation: 0
28 | realtimeReflectionProbes: 0
29 | billboardsFaceCameraPosition: 0
30 | useLegacyDetailDistribution: 1
31 | adaptiveVsync: 0
32 | vSyncCount: 0
33 | realtimeGICPUUsage: 25
34 | adaptiveVsyncExtraA: 0
35 | adaptiveVsyncExtraB: 0
36 | lodBias: 0.3
37 | maximumLODLevel: 0
38 | enableLODCrossFade: 1
39 | streamingMipmapsActive: 0
40 | streamingMipmapsAddAllCameras: 1
41 | streamingMipmapsMemoryBudget: 512
42 | streamingMipmapsRenderersPerFrame: 512
43 | streamingMipmapsMaxLevelReduction: 2
44 | streamingMipmapsMaxFileIORequests: 1024
45 | particleRaycastBudget: 4
46 | asyncUploadTimeSlice: 2
47 | asyncUploadBufferSize: 16
48 | asyncUploadPersistentBuffer: 1
49 | resolutionScalingFixedDPIFactor: 1
50 | customRenderPipeline: {fileID: 0}
51 | terrainQualityOverrides: 0
52 | terrainPixelError: 1
53 | terrainDetailDensityScale: 1
54 | terrainBasemapDistance: 1000
55 | terrainDetailDistance: 80
56 | terrainTreeDistance: 5000
57 | terrainBillboardStart: 50
58 | terrainFadeLength: 5
59 | terrainMaxTrees: 50
60 | excludedTargetPlatforms: []
61 | - serializedVersion: 4
62 | name: Low
63 | pixelLightCount: 0
64 | shadows: 0
65 | shadowResolution: 0
66 | shadowProjection: 1
67 | shadowCascades: 1
68 | shadowDistance: 20
69 | shadowNearPlaneOffset: 3
70 | shadowCascade2Split: 0.33333334
71 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
72 | shadowmaskMode: 0
73 | skinWeights: 2
74 | globalTextureMipmapLimit: 0
75 | textureMipmapLimitSettings: []
76 | anisotropicTextures: 0
77 | antiAliasing: 0
78 | softParticles: 0
79 | softVegetation: 0
80 | realtimeReflectionProbes: 0
81 | billboardsFaceCameraPosition: 0
82 | useLegacyDetailDistribution: 1
83 | adaptiveVsync: 0
84 | vSyncCount: 0
85 | realtimeGICPUUsage: 25
86 | adaptiveVsyncExtraA: 0
87 | adaptiveVsyncExtraB: 0
88 | lodBias: 0.4
89 | maximumLODLevel: 0
90 | enableLODCrossFade: 1
91 | streamingMipmapsActive: 0
92 | streamingMipmapsAddAllCameras: 1
93 | streamingMipmapsMemoryBudget: 512
94 | streamingMipmapsRenderersPerFrame: 512
95 | streamingMipmapsMaxLevelReduction: 2
96 | streamingMipmapsMaxFileIORequests: 1024
97 | particleRaycastBudget: 16
98 | asyncUploadTimeSlice: 2
99 | asyncUploadBufferSize: 16
100 | asyncUploadPersistentBuffer: 1
101 | resolutionScalingFixedDPIFactor: 1
102 | customRenderPipeline: {fileID: 0}
103 | terrainQualityOverrides: 0
104 | terrainPixelError: 1
105 | terrainDetailDensityScale: 1
106 | terrainBasemapDistance: 1000
107 | terrainDetailDistance: 80
108 | terrainTreeDistance: 5000
109 | terrainBillboardStart: 50
110 | terrainFadeLength: 5
111 | terrainMaxTrees: 50
112 | excludedTargetPlatforms: []
113 | - serializedVersion: 4
114 | name: Medium
115 | pixelLightCount: 1
116 | shadows: 1
117 | shadowResolution: 0
118 | shadowProjection: 1
119 | shadowCascades: 1
120 | shadowDistance: 20
121 | shadowNearPlaneOffset: 3
122 | shadowCascade2Split: 0.33333334
123 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
124 | shadowmaskMode: 0
125 | skinWeights: 2
126 | globalTextureMipmapLimit: 0
127 | textureMipmapLimitSettings: []
128 | anisotropicTextures: 1
129 | antiAliasing: 0
130 | softParticles: 0
131 | softVegetation: 0
132 | realtimeReflectionProbes: 0
133 | billboardsFaceCameraPosition: 0
134 | useLegacyDetailDistribution: 1
135 | adaptiveVsync: 0
136 | vSyncCount: 1
137 | realtimeGICPUUsage: 25
138 | adaptiveVsyncExtraA: 0
139 | adaptiveVsyncExtraB: 0
140 | lodBias: 0.7
141 | maximumLODLevel: 0
142 | enableLODCrossFade: 1
143 | streamingMipmapsActive: 0
144 | streamingMipmapsAddAllCameras: 1
145 | streamingMipmapsMemoryBudget: 512
146 | streamingMipmapsRenderersPerFrame: 512
147 | streamingMipmapsMaxLevelReduction: 2
148 | streamingMipmapsMaxFileIORequests: 1024
149 | particleRaycastBudget: 64
150 | asyncUploadTimeSlice: 2
151 | asyncUploadBufferSize: 16
152 | asyncUploadPersistentBuffer: 1
153 | resolutionScalingFixedDPIFactor: 1
154 | customRenderPipeline: {fileID: 0}
155 | terrainQualityOverrides: 0
156 | terrainPixelError: 1
157 | terrainDetailDensityScale: 1
158 | terrainBasemapDistance: 1000
159 | terrainDetailDistance: 80
160 | terrainTreeDistance: 5000
161 | terrainBillboardStart: 50
162 | terrainFadeLength: 5
163 | terrainMaxTrees: 50
164 | excludedTargetPlatforms: []
165 | - serializedVersion: 4
166 | name: High
167 | pixelLightCount: 2
168 | shadows: 2
169 | shadowResolution: 1
170 | shadowProjection: 1
171 | shadowCascades: 2
172 | shadowDistance: 40
173 | shadowNearPlaneOffset: 3
174 | shadowCascade2Split: 0.33333334
175 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
176 | shadowmaskMode: 1
177 | skinWeights: 2
178 | globalTextureMipmapLimit: 0
179 | textureMipmapLimitSettings: []
180 | anisotropicTextures: 1
181 | antiAliasing: 0
182 | softParticles: 0
183 | softVegetation: 1
184 | realtimeReflectionProbes: 1
185 | billboardsFaceCameraPosition: 1
186 | useLegacyDetailDistribution: 1
187 | adaptiveVsync: 0
188 | vSyncCount: 1
189 | realtimeGICPUUsage: 50
190 | adaptiveVsyncExtraA: 0
191 | adaptiveVsyncExtraB: 0
192 | lodBias: 1
193 | maximumLODLevel: 0
194 | enableLODCrossFade: 1
195 | streamingMipmapsActive: 0
196 | streamingMipmapsAddAllCameras: 1
197 | streamingMipmapsMemoryBudget: 512
198 | streamingMipmapsRenderersPerFrame: 512
199 | streamingMipmapsMaxLevelReduction: 2
200 | streamingMipmapsMaxFileIORequests: 1024
201 | particleRaycastBudget: 256
202 | asyncUploadTimeSlice: 2
203 | asyncUploadBufferSize: 16
204 | asyncUploadPersistentBuffer: 1
205 | resolutionScalingFixedDPIFactor: 1
206 | customRenderPipeline: {fileID: 0}
207 | terrainQualityOverrides: 0
208 | terrainPixelError: 1
209 | terrainDetailDensityScale: 1
210 | terrainBasemapDistance: 1000
211 | terrainDetailDistance: 80
212 | terrainTreeDistance: 5000
213 | terrainBillboardStart: 50
214 | terrainFadeLength: 5
215 | terrainMaxTrees: 50
216 | excludedTargetPlatforms: []
217 | - serializedVersion: 4
218 | name: Very High
219 | pixelLightCount: 3
220 | shadows: 2
221 | shadowResolution: 2
222 | shadowProjection: 1
223 | shadowCascades: 2
224 | shadowDistance: 70
225 | shadowNearPlaneOffset: 3
226 | shadowCascade2Split: 0.33333334
227 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
228 | shadowmaskMode: 1
229 | skinWeights: 4
230 | globalTextureMipmapLimit: 0
231 | textureMipmapLimitSettings: []
232 | anisotropicTextures: 2
233 | antiAliasing: 2
234 | softParticles: 1
235 | softVegetation: 1
236 | realtimeReflectionProbes: 1
237 | billboardsFaceCameraPosition: 1
238 | useLegacyDetailDistribution: 1
239 | adaptiveVsync: 0
240 | vSyncCount: 1
241 | realtimeGICPUUsage: 50
242 | adaptiveVsyncExtraA: 0
243 | adaptiveVsyncExtraB: 0
244 | lodBias: 1.5
245 | maximumLODLevel: 0
246 | enableLODCrossFade: 1
247 | streamingMipmapsActive: 0
248 | streamingMipmapsAddAllCameras: 1
249 | streamingMipmapsMemoryBudget: 512
250 | streamingMipmapsRenderersPerFrame: 512
251 | streamingMipmapsMaxLevelReduction: 2
252 | streamingMipmapsMaxFileIORequests: 1024
253 | particleRaycastBudget: 1024
254 | asyncUploadTimeSlice: 2
255 | asyncUploadBufferSize: 16
256 | asyncUploadPersistentBuffer: 1
257 | resolutionScalingFixedDPIFactor: 1
258 | customRenderPipeline: {fileID: 0}
259 | terrainQualityOverrides: 0
260 | terrainPixelError: 1
261 | terrainDetailDensityScale: 1
262 | terrainBasemapDistance: 1000
263 | terrainDetailDistance: 80
264 | terrainTreeDistance: 5000
265 | terrainBillboardStart: 50
266 | terrainFadeLength: 5
267 | terrainMaxTrees: 50
268 | excludedTargetPlatforms: []
269 | - serializedVersion: 4
270 | name: Ultra
271 | pixelLightCount: 4
272 | shadows: 2
273 | shadowResolution: 2
274 | shadowProjection: 1
275 | shadowCascades: 4
276 | shadowDistance: 150
277 | shadowNearPlaneOffset: 3
278 | shadowCascade2Split: 0.33333334
279 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
280 | shadowmaskMode: 1
281 | skinWeights: 4
282 | globalTextureMipmapLimit: 0
283 | textureMipmapLimitSettings: []
284 | anisotropicTextures: 2
285 | antiAliasing: 0
286 | softParticles: 1
287 | softVegetation: 1
288 | realtimeReflectionProbes: 1
289 | billboardsFaceCameraPosition: 1
290 | useLegacyDetailDistribution: 1
291 | adaptiveVsync: 0
292 | vSyncCount: 1
293 | realtimeGICPUUsage: 100
294 | adaptiveVsyncExtraA: 0
295 | adaptiveVsyncExtraB: 0
296 | lodBias: 2
297 | maximumLODLevel: 0
298 | enableLODCrossFade: 1
299 | streamingMipmapsActive: 0
300 | streamingMipmapsAddAllCameras: 1
301 | streamingMipmapsMemoryBudget: 512
302 | streamingMipmapsRenderersPerFrame: 512
303 | streamingMipmapsMaxLevelReduction: 2
304 | streamingMipmapsMaxFileIORequests: 1024
305 | particleRaycastBudget: 4096
306 | asyncUploadTimeSlice: 2
307 | asyncUploadBufferSize: 16
308 | asyncUploadPersistentBuffer: 1
309 | resolutionScalingFixedDPIFactor: 1
310 | customRenderPipeline: {fileID: 0}
311 | terrainQualityOverrides: 0
312 | terrainPixelError: 1
313 | terrainDetailDensityScale: 1
314 | terrainBasemapDistance: 1000
315 | terrainDetailDistance: 80
316 | terrainTreeDistance: 5000
317 | terrainBillboardStart: 50
318 | terrainFadeLength: 5
319 | terrainMaxTrees: 50
320 | excludedTargetPlatforms: []
321 | m_TextureMipmapLimitGroupNames: []
322 | m_PerPlatformDefaultQuality:
323 | Android: 2
324 | GameCoreScarlett: 5
325 | GameCoreXboxOne: 5
326 | Lumin: 5
327 | Nintendo 3DS: 5
328 | Nintendo Switch: 5
329 | PS4: 5
330 | PS5: 5
331 | Stadia: 5
332 | Standalone: 5
333 | WebGL: 3
334 | Windows Store Apps: 5
335 | XboxOne: 5
336 | iPhone: 2
337 | tvOS: 2
338 |
--------------------------------------------------------------------------------
/ProjectSettings/SceneTemplateSettings.json:
--------------------------------------------------------------------------------
1 | {
2 | "templatePinStates": [],
3 | "dependencyTypeInfos": [
4 | {
5 | "userAdded": false,
6 | "type": "UnityEngine.AnimationClip",
7 | "defaultInstantiationMode": 0
8 | },
9 | {
10 | "userAdded": false,
11 | "type": "UnityEditor.Animations.AnimatorController",
12 | "defaultInstantiationMode": 0
13 | },
14 | {
15 | "userAdded": false,
16 | "type": "UnityEngine.AnimatorOverrideController",
17 | "defaultInstantiationMode": 0
18 | },
19 | {
20 | "userAdded": false,
21 | "type": "UnityEditor.Audio.AudioMixerController",
22 | "defaultInstantiationMode": 0
23 | },
24 | {
25 | "userAdded": false,
26 | "type": "UnityEngine.ComputeShader",
27 | "defaultInstantiationMode": 1
28 | },
29 | {
30 | "userAdded": false,
31 | "type": "UnityEngine.Cubemap",
32 | "defaultInstantiationMode": 0
33 | },
34 | {
35 | "userAdded": false,
36 | "type": "UnityEngine.GameObject",
37 | "defaultInstantiationMode": 0
38 | },
39 | {
40 | "userAdded": false,
41 | "type": "UnityEditor.LightingDataAsset",
42 | "defaultInstantiationMode": 0
43 | },
44 | {
45 | "userAdded": false,
46 | "type": "UnityEngine.LightingSettings",
47 | "defaultInstantiationMode": 0
48 | },
49 | {
50 | "userAdded": false,
51 | "type": "UnityEngine.Material",
52 | "defaultInstantiationMode": 0
53 | },
54 | {
55 | "userAdded": false,
56 | "type": "UnityEditor.MonoScript",
57 | "defaultInstantiationMode": 1
58 | },
59 | {
60 | "userAdded": false,
61 | "type": "UnityEngine.PhysicMaterial",
62 | "defaultInstantiationMode": 0
63 | },
64 | {
65 | "userAdded": false,
66 | "type": "UnityEngine.PhysicsMaterial2D",
67 | "defaultInstantiationMode": 0
68 | },
69 | {
70 | "userAdded": false,
71 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
72 | "defaultInstantiationMode": 0
73 | },
74 | {
75 | "userAdded": false,
76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
77 | "defaultInstantiationMode": 0
78 | },
79 | {
80 | "userAdded": false,
81 | "type": "UnityEngine.Rendering.VolumeProfile",
82 | "defaultInstantiationMode": 0
83 | },
84 | {
85 | "userAdded": false,
86 | "type": "UnityEditor.SceneAsset",
87 | "defaultInstantiationMode": 1
88 | },
89 | {
90 | "userAdded": false,
91 | "type": "UnityEngine.Shader",
92 | "defaultInstantiationMode": 1
93 | },
94 | {
95 | "userAdded": false,
96 | "type": "UnityEngine.ShaderVariantCollection",
97 | "defaultInstantiationMode": 1
98 | },
99 | {
100 | "userAdded": false,
101 | "type": "UnityEngine.Texture",
102 | "defaultInstantiationMode": 0
103 | },
104 | {
105 | "userAdded": false,
106 | "type": "UnityEngine.Texture2D",
107 | "defaultInstantiationMode": 0
108 | },
109 | {
110 | "userAdded": false,
111 | "type": "UnityEngine.Timeline.TimelineAsset",
112 | "defaultInstantiationMode": 0
113 | }
114 | ],
115 | "defaultDependencyTypeInfo": {
116 | "userAdded": false,
117 | "type": "",
118 | "defaultInstantiationMode": 1
119 | },
120 | "newSceneOverride": 0
121 | }
--------------------------------------------------------------------------------
/ProjectSettings/ShaderGraphSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &1
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 53
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: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | customInterpolatorErrorThreshold: 32
16 | customInterpolatorWarningThreshold: 16
17 |
--------------------------------------------------------------------------------
/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/URPProjectSettings.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: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3}
13 | m_Name:
14 | m_EditorClassIdentifier:
15 | m_LastMaterialVersion: 9
16 |
--------------------------------------------------------------------------------
/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_TestInitMode: 0
14 | CrashReportingSettings:
15 | m_EventUrl: https://perf-events.cloud.unity3d.com
16 | m_Enabled: 0
17 | m_LogBufferSize: 10
18 | m_CaptureEditorExceptions: 1
19 | UnityPurchasingSettings:
20 | m_Enabled: 0
21 | m_TestMode: 0
22 | UnityAnalyticsSettings:
23 | m_Enabled: 0
24 | m_TestMode: 0
25 | m_InitializeOnStartup: 1
26 | m_PackageRequiringCoreStatsPresent: 0
27 | UnityAdsSettings:
28 | m_Enabled: 0
29 | m_InitializeOnStartup: 1
30 | m_TestMode: 0
31 | m_IosGameId:
32 | m_AndroidGameId:
33 | m_GameIds: {}
34 | m_GameId:
35 | PerformanceReportingSettings:
36 | m_Enabled: 0
37 |
--------------------------------------------------------------------------------
/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: 7200000, guid: 84a17cfa13e40ae4082ef42714f0a81c, type: 3}
7 | m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3}
8 | m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3}
9 | m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3}
10 | m_EmptyShader: {fileID: 4800000, guid: 33a2079f6a2db4c4eb2e44b33f4ddf6b, type: 3}
11 | m_RenderPipeSettingsPath:
12 | m_FixedTimeStep: 0.016666668
13 | m_MaxDeltaTime: 0.05
14 | m_MaxScrubTime: 30
15 | m_MaxCapacity: 100000000
16 | m_CompiledVersion: 7
17 | m_RuntimeVersion: 36
18 | m_RuntimeResources: {fileID: 11400000, guid: bc10b42afe3813544bffd38ae2cd893d, type: 2}
19 | m_BatchEmptyLifetime: 300
20 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Boids Unity Compute Shader Sandbox
2 |
3 | https://github.com/drumath2237/Boids-Unity-ComputeShader-Sandbox/assets/11372210/3efabf57-5215-4378-bd9f-0d80f6ffc6c2
4 |
5 | ## About
6 |
7 | Boids simulation implemented with Compute Shader and VFX Graph.
8 |
9 | ## Environment
10 |
11 | - Windows 10 Home
12 | - Unity 2023.2.9f1
13 | - URP 16.0.5
14 | - Visual Effect Graph
15 |
16 | ## Usage
17 |
18 | Open the scene in `Assets\BoidsComputerShaderSandbox\Scenes\Main.unity`.
19 |
20 | You can set boids entity count by changing number in the inspector of `BoidsVisualizer`.
21 | **Note that, you should re-enable the BoidsVisualzer game object when changing boids count value.**
22 |
23 | 
24 |
25 | ## Author
26 |
27 | [にー兄さん@drumath2237](https://twitter.com/ninisan_drumath)
28 |
--------------------------------------------------------------------------------
/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: 53020c005750585f5f5d5e76127b5944471619282e2a7e317d7c446ab4b2353b
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 | m_CompressAssetsOnImport: 1
33 |
--------------------------------------------------------------------------------
/UserSettings/Search.index:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Assets",
3 | "roots": ["Assets"],
4 | "includes": [],
5 | "excludes": [],
6 | "options": {
7 | "types": true,
8 | "properties": true,
9 | "extended": false,
10 | "dependencies": true
11 | },
12 | "baseScore": 999
13 | }
--------------------------------------------------------------------------------
/UserSettings/Search.settings:
--------------------------------------------------------------------------------
1 | trackSelection = true
2 | refreshSearchWindowsInPlayMode = false
3 | fetchPreview = true
4 | defaultFlags = 0
5 | keepOpen = false
6 | queryFolder = "Assets"
7 | onBoardingDoNotAskAgain = true
8 | showPackageIndexes = false
9 | showStatusBar = false
10 | scopes = {
11 | }
12 | providers = {
13 | performance = {
14 | active = false
15 | priority = 100
16 | defaultAction = null
17 | }
18 | packages = {
19 | active = true
20 | priority = 90
21 | defaultAction = null
22 | }
23 | scene = {
24 | active = true
25 | priority = 50
26 | defaultAction = null
27 | }
28 | store = {
29 | active = true
30 | priority = 100
31 | defaultAction = null
32 | }
33 | adb = {
34 | active = false
35 | priority = 2500
36 | defaultAction = null
37 | }
38 | log = {
39 | active = false
40 | priority = 210
41 | defaultAction = null
42 | }
43 | find = {
44 | active = true
45 | priority = 25
46 | defaultAction = null
47 | }
48 | profilermarkers = {
49 | active = false
50 | priority = 100
51 | defaultAction = null
52 | }
53 | asset = {
54 | active = true
55 | priority = 25
56 | defaultAction = null
57 | }
58 | presets_provider = {
59 | active = false
60 | priority = -10
61 | defaultAction = null
62 | }
63 | }
64 | objectSelectors = {
65 | }
66 | recentSearches = [
67 | ]
68 | searchItemFavorites = [
69 | ]
70 | savedSearchesSortOrder = 0
71 | showSavedSearchPanel = false
72 | hideTabs = false
73 | expandedQueries = [
74 | ]
75 | queryBuilder = false
76 | ignoredProperties = "id;name;classname;imagecontentshash"
77 | helperWidgetCurrentArea = "all"
78 | disabledIndexers = ""
79 | minIndexVariations = 2
80 | findProviderIndexHelper = true
--------------------------------------------------------------------------------
/docs/unity-boids.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/drumath2237/Boids-Unity-ComputeShader-Sandbox/1e64d2becda9851d7a6daaa30045f701ddee8f46/docs/unity-boids.png
--------------------------------------------------------------------------------