├── .gitignore
├── Assets
├── Scenes.meta
├── Scenes
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
├── Scripts.meta
├── Scripts
│ ├── CurveTest.cs
│ └── CurveTest.cs.meta
├── Shaders.meta
└── Shaders
│ ├── Spline.compute
│ └── Spline.compute.meta
├── LICENSE
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
└── XRSettings.asset
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # This .gitignore file should be placed at the root of your Unity project directory
2 | #
3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
4 | #
5 | /[Ll]ibrary/
6 | /[Tt]emp/
7 | /[Oo]bj/
8 | /[Bb]uild/
9 | /[Bb]uilds/
10 | /[Ll]ogs/
11 | /[Mm]emoryCaptures/
12 |
13 | # Asset meta data should only be ignored when the corresponding asset is also ignored
14 | !/[Aa]ssets/**/*.meta
15 |
16 | # Uncomment this line if you wish to ignore the asset store tools plugin
17 | # /[Aa]ssets/AssetStoreTools*
18 |
19 | # Autogenerated Jetbrains Rider plugin
20 | [Aa]ssets/Plugins/Editor/JetBrains*
21 |
22 | # Visual Studio cache directory
23 | .vs/
24 |
25 | # Gradle cache directory
26 | .gradle/
27 |
28 | # Autogenerated VS/MD/Consulo solution and project files
29 | ExportedObj/
30 | .consulo/
31 | *.csproj
32 | *.unityproj
33 | *.sln
34 | *.suo
35 | *.tmp
36 | *.user
37 | *.userprefs
38 | *.pidb
39 | *.booproj
40 | *.svd
41 | *.pdb
42 | *.mdb
43 | *.opendb
44 | *.VC.db
45 |
46 | # Unity3D generated meta files
47 | *.pidb.meta
48 | *.pdb.meta
49 | *.mdb.meta
50 |
51 | # Unity3D generated file on crash reports
52 | sysinfo.txt
53 |
54 | # Builds
55 | *.apk
56 | *.unitypackage
57 |
58 | # Crashlytics generated file
59 | crashlytics-build.properties
60 |
61 |
--------------------------------------------------------------------------------
/Assets/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c25edaa85bec97346a6fef6f322d8ab7
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: 9
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.44657874, g: 0.49641258, b: 0.5748172, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 1
48 | m_GISettings:
49 | serializedVersion: 2
50 | m_BounceScale: 1
51 | m_IndirectOutputScale: 1
52 | m_AlbedoBoost: 1
53 | m_EnvironmentLightingMode: 0
54 | m_EnableBakedLightmaps: 1
55 | m_EnableRealtimeLightmaps: 1
56 | m_LightmapEditorSettings:
57 | serializedVersion: 12
58 | m_Resolution: 2
59 | m_BakeResolution: 40
60 | m_AtlasSize: 1024
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_ExtractAmbientOcclusion: 0
66 | m_Padding: 2
67 | m_LightmapParameters: {fileID: 0}
68 | m_LightmapsBakeMode: 1
69 | m_TextureCompression: 1
70 | m_FinalGather: 0
71 | m_FinalGatherFiltering: 1
72 | m_FinalGatherRayCount: 256
73 | m_ReflectionCompression: 2
74 | m_MixedBakeMode: 2
75 | m_BakeBackend: 1
76 | m_PVRSampling: 1
77 | m_PVRDirectSampleCount: 32
78 | m_PVRSampleCount: 500
79 | m_PVRBounces: 2
80 | m_PVREnvironmentSampleCount: 500
81 | m_PVREnvironmentReferencePointCount: 2048
82 | m_PVRFilteringMode: 2
83 | m_PVRDenoiserTypeDirect: 0
84 | m_PVRDenoiserTypeIndirect: 0
85 | m_PVRDenoiserTypeAO: 0
86 | m_PVRFilterTypeDirect: 0
87 | m_PVRFilterTypeIndirect: 0
88 | m_PVRFilterTypeAO: 0
89 | m_PVREnvironmentMIS: 0
90 | m_PVRCulling: 1
91 | m_PVRFilteringGaussRadiusDirect: 1
92 | m_PVRFilteringGaussRadiusIndirect: 5
93 | m_PVRFilteringGaussRadiusAO: 2
94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
96 | m_PVRFilteringAtrousPositionSigmaAO: 1
97 | m_ExportTrainingData: 0
98 | m_TrainingDataDestination: TrainingData
99 | m_LightingDataAsset: {fileID: 0}
100 | m_UseShadowmask: 1
101 | --- !u!196 &4
102 | NavMeshSettings:
103 | serializedVersion: 2
104 | m_ObjectHideFlags: 0
105 | m_BuildSettings:
106 | serializedVersion: 2
107 | agentTypeID: 0
108 | agentRadius: 0.5
109 | agentHeight: 2
110 | agentSlope: 45
111 | agentClimb: 0.4
112 | ledgeDropHeight: 0
113 | maxJumpAcrossDistance: 0
114 | minRegionArea: 2
115 | manualCellSize: 0
116 | cellSize: 0.16666667
117 | manualTileSize: 0
118 | tileSize: 256
119 | accuratePlacement: 0
120 | debug:
121 | m_Flags: 0
122 | m_NavMeshData: {fileID: 0}
123 | --- !u!1 &432458482
124 | GameObject:
125 | m_ObjectHideFlags: 0
126 | m_CorrespondingSourceObject: {fileID: 0}
127 | m_PrefabInstance: {fileID: 0}
128 | m_PrefabAsset: {fileID: 0}
129 | serializedVersion: 6
130 | m_Component:
131 | - component: {fileID: 432458484}
132 | - component: {fileID: 432458483}
133 | m_Layer: 0
134 | m_Name: TestManager
135 | m_TagString: Untagged
136 | m_Icon: {fileID: 0}
137 | m_NavMeshLayer: 0
138 | m_StaticEditorFlags: 0
139 | m_IsActive: 1
140 | --- !u!114 &432458483
141 | MonoBehaviour:
142 | m_ObjectHideFlags: 0
143 | m_CorrespondingSourceObject: {fileID: 0}
144 | m_PrefabInstance: {fileID: 0}
145 | m_PrefabAsset: {fileID: 0}
146 | m_GameObject: {fileID: 432458482}
147 | m_Enabled: 1
148 | m_EditorHideFlags: 0
149 | m_Script: {fileID: 11500000, guid: 856756673e19e5e47ae02c2a622d85ee, type: 3}
150 | m_Name:
151 | m_EditorClassIdentifier:
152 | SplineShader: {fileID: 7200000, guid: 89f6215e844c94f47a464b86a5c6a485, type: 3}
153 | GameObjectList:
154 | - {fileID: 1858808563}
155 | - {fileID: 1667050188}
156 | - {fileID: 1273828572}
157 | - {fileID: 1999841741}
158 | - {fileID: 2103867414}
159 | Amount: 20
160 | Ratio: 0.2
161 | Type: 0
162 | --- !u!4 &432458484
163 | Transform:
164 | m_ObjectHideFlags: 0
165 | m_CorrespondingSourceObject: {fileID: 0}
166 | m_PrefabInstance: {fileID: 0}
167 | m_PrefabAsset: {fileID: 0}
168 | m_GameObject: {fileID: 432458482}
169 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
170 | m_LocalPosition: {x: 0, y: 0, z: 0}
171 | m_LocalScale: {x: 1, y: 1, z: 1}
172 | m_Children: []
173 | m_Father: {fileID: 0}
174 | m_RootOrder: 2
175 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
176 | --- !u!1 &705507993
177 | GameObject:
178 | m_ObjectHideFlags: 0
179 | m_CorrespondingSourceObject: {fileID: 0}
180 | m_PrefabInstance: {fileID: 0}
181 | m_PrefabAsset: {fileID: 0}
182 | serializedVersion: 6
183 | m_Component:
184 | - component: {fileID: 705507995}
185 | - component: {fileID: 705507994}
186 | m_Layer: 0
187 | m_Name: Directional Light
188 | m_TagString: Untagged
189 | m_Icon: {fileID: 0}
190 | m_NavMeshLayer: 0
191 | m_StaticEditorFlags: 0
192 | m_IsActive: 1
193 | --- !u!108 &705507994
194 | Light:
195 | m_ObjectHideFlags: 0
196 | m_CorrespondingSourceObject: {fileID: 0}
197 | m_PrefabInstance: {fileID: 0}
198 | m_PrefabAsset: {fileID: 0}
199 | m_GameObject: {fileID: 705507993}
200 | m_Enabled: 1
201 | serializedVersion: 9
202 | m_Type: 1
203 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
204 | m_Intensity: 1
205 | m_Range: 10
206 | m_SpotAngle: 30
207 | m_InnerSpotAngle: 21.80208
208 | m_CookieSize: 10
209 | m_Shadows:
210 | m_Type: 2
211 | m_Resolution: -1
212 | m_CustomResolution: -1
213 | m_Strength: 1
214 | m_Bias: 0.05
215 | m_NormalBias: 0.4
216 | m_NearPlane: 0.2
217 | m_CullingMatrixOverride:
218 | e00: 1
219 | e01: 0
220 | e02: 0
221 | e03: 0
222 | e10: 0
223 | e11: 1
224 | e12: 0
225 | e13: 0
226 | e20: 0
227 | e21: 0
228 | e22: 1
229 | e23: 0
230 | e30: 0
231 | e31: 0
232 | e32: 0
233 | e33: 1
234 | m_UseCullingMatrixOverride: 0
235 | m_Cookie: {fileID: 0}
236 | m_DrawHalo: 0
237 | m_Flare: {fileID: 0}
238 | m_RenderMode: 0
239 | m_CullingMask:
240 | serializedVersion: 2
241 | m_Bits: 4294967295
242 | m_RenderingLayerMask: 1
243 | m_Lightmapping: 1
244 | m_LightShadowCasterMode: 0
245 | m_AreaSize: {x: 1, y: 1}
246 | m_BounceIntensity: 1
247 | m_ColorTemperature: 6570
248 | m_UseColorTemperature: 0
249 | m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
250 | m_UseBoundingSphereOverride: 0
251 | m_ShadowRadius: 0
252 | m_ShadowAngle: 0
253 | --- !u!4 &705507995
254 | Transform:
255 | m_ObjectHideFlags: 0
256 | m_CorrespondingSourceObject: {fileID: 0}
257 | m_PrefabInstance: {fileID: 0}
258 | m_PrefabAsset: {fileID: 0}
259 | m_GameObject: {fileID: 705507993}
260 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
261 | m_LocalPosition: {x: 0, y: 3, z: 0}
262 | m_LocalScale: {x: 1, y: 1, z: 1}
263 | m_Children: []
264 | m_Father: {fileID: 0}
265 | m_RootOrder: 1
266 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
267 | --- !u!1 &963194225
268 | GameObject:
269 | m_ObjectHideFlags: 0
270 | m_CorrespondingSourceObject: {fileID: 0}
271 | m_PrefabInstance: {fileID: 0}
272 | m_PrefabAsset: {fileID: 0}
273 | serializedVersion: 6
274 | m_Component:
275 | - component: {fileID: 963194228}
276 | - component: {fileID: 963194227}
277 | - component: {fileID: 963194226}
278 | m_Layer: 0
279 | m_Name: Main Camera
280 | m_TagString: MainCamera
281 | m_Icon: {fileID: 0}
282 | m_NavMeshLayer: 0
283 | m_StaticEditorFlags: 0
284 | m_IsActive: 1
285 | --- !u!81 &963194226
286 | AudioListener:
287 | m_ObjectHideFlags: 0
288 | m_CorrespondingSourceObject: {fileID: 0}
289 | m_PrefabInstance: {fileID: 0}
290 | m_PrefabAsset: {fileID: 0}
291 | m_GameObject: {fileID: 963194225}
292 | m_Enabled: 1
293 | --- !u!20 &963194227
294 | Camera:
295 | m_ObjectHideFlags: 0
296 | m_CorrespondingSourceObject: {fileID: 0}
297 | m_PrefabInstance: {fileID: 0}
298 | m_PrefabAsset: {fileID: 0}
299 | m_GameObject: {fileID: 963194225}
300 | m_Enabled: 1
301 | serializedVersion: 2
302 | m_ClearFlags: 1
303 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
304 | m_projectionMatrixMode: 1
305 | m_GateFitMode: 2
306 | m_FOVAxisMode: 0
307 | m_SensorSize: {x: 36, y: 24}
308 | m_LensShift: {x: 0, y: 0}
309 | m_FocalLength: 50
310 | m_NormalizedViewPortRect:
311 | serializedVersion: 2
312 | x: 0
313 | y: 0
314 | width: 1
315 | height: 1
316 | near clip plane: 0.3
317 | far clip plane: 1000
318 | field of view: 60
319 | orthographic: 0
320 | orthographic size: 5
321 | m_Depth: -1
322 | m_CullingMask:
323 | serializedVersion: 2
324 | m_Bits: 4294967295
325 | m_RenderingPath: -1
326 | m_TargetTexture: {fileID: 0}
327 | m_TargetDisplay: 0
328 | m_TargetEye: 3
329 | m_HDR: 1
330 | m_AllowMSAA: 1
331 | m_AllowDynamicResolution: 0
332 | m_ForceIntoRT: 0
333 | m_OcclusionCulling: 1
334 | m_StereoConvergence: 10
335 | m_StereoSeparation: 0.022
336 | --- !u!4 &963194228
337 | Transform:
338 | m_ObjectHideFlags: 0
339 | m_CorrespondingSourceObject: {fileID: 0}
340 | m_PrefabInstance: {fileID: 0}
341 | m_PrefabAsset: {fileID: 0}
342 | m_GameObject: {fileID: 963194225}
343 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
344 | m_LocalPosition: {x: 0, y: 1, z: -10}
345 | m_LocalScale: {x: 1, y: 1, z: 1}
346 | m_Children: []
347 | m_Father: {fileID: 0}
348 | m_RootOrder: 0
349 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
350 | --- !u!1 &1273828572
351 | GameObject:
352 | m_ObjectHideFlags: 0
353 | m_CorrespondingSourceObject: {fileID: 0}
354 | m_PrefabInstance: {fileID: 0}
355 | m_PrefabAsset: {fileID: 0}
356 | serializedVersion: 6
357 | m_Component:
358 | - component: {fileID: 1273828576}
359 | - component: {fileID: 1273828575}
360 | - component: {fileID: 1273828574}
361 | - component: {fileID: 1273828573}
362 | m_Layer: 0
363 | m_Name: Cube (2)
364 | m_TagString: Untagged
365 | m_Icon: {fileID: 0}
366 | m_NavMeshLayer: 0
367 | m_StaticEditorFlags: 0
368 | m_IsActive: 1
369 | --- !u!65 &1273828573
370 | BoxCollider:
371 | m_ObjectHideFlags: 0
372 | m_CorrespondingSourceObject: {fileID: 0}
373 | m_PrefabInstance: {fileID: 0}
374 | m_PrefabAsset: {fileID: 0}
375 | m_GameObject: {fileID: 1273828572}
376 | m_Material: {fileID: 0}
377 | m_IsTrigger: 0
378 | m_Enabled: 1
379 | serializedVersion: 2
380 | m_Size: {x: 1, y: 1, z: 1}
381 | m_Center: {x: 0, y: 0, z: 0}
382 | --- !u!23 &1273828574
383 | MeshRenderer:
384 | m_ObjectHideFlags: 0
385 | m_CorrespondingSourceObject: {fileID: 0}
386 | m_PrefabInstance: {fileID: 0}
387 | m_PrefabAsset: {fileID: 0}
388 | m_GameObject: {fileID: 1273828572}
389 | m_Enabled: 1
390 | m_CastShadows: 1
391 | m_ReceiveShadows: 1
392 | m_DynamicOccludee: 1
393 | m_MotionVectors: 1
394 | m_LightProbeUsage: 1
395 | m_ReflectionProbeUsage: 1
396 | m_RenderingLayerMask: 1
397 | m_RendererPriority: 0
398 | m_Materials:
399 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
400 | m_StaticBatchInfo:
401 | firstSubMesh: 0
402 | subMeshCount: 0
403 | m_StaticBatchRoot: {fileID: 0}
404 | m_ProbeAnchor: {fileID: 0}
405 | m_LightProbeVolumeOverride: {fileID: 0}
406 | m_ScaleInLightmap: 1
407 | m_ReceiveGI: 1
408 | m_PreserveUVs: 0
409 | m_IgnoreNormalsForChartDetection: 0
410 | m_ImportantGI: 0
411 | m_StitchLightmapSeams: 1
412 | m_SelectedEditorRenderState: 3
413 | m_MinimumChartSize: 4
414 | m_AutoUVMaxDistance: 0.5
415 | m_AutoUVMaxAngle: 89
416 | m_LightmapParameters: {fileID: 0}
417 | m_SortingLayerID: 0
418 | m_SortingLayer: 0
419 | m_SortingOrder: 0
420 | --- !u!33 &1273828575
421 | MeshFilter:
422 | m_ObjectHideFlags: 0
423 | m_CorrespondingSourceObject: {fileID: 0}
424 | m_PrefabInstance: {fileID: 0}
425 | m_PrefabAsset: {fileID: 0}
426 | m_GameObject: {fileID: 1273828572}
427 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
428 | --- !u!4 &1273828576
429 | Transform:
430 | m_ObjectHideFlags: 0
431 | m_CorrespondingSourceObject: {fileID: 0}
432 | m_PrefabInstance: {fileID: 0}
433 | m_PrefabAsset: {fileID: 0}
434 | m_GameObject: {fileID: 1273828572}
435 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
436 | m_LocalPosition: {x: -9.3, y: 0, z: 6.2}
437 | m_LocalScale: {x: 1, y: 1, z: 1}
438 | m_Children: []
439 | m_Father: {fileID: 0}
440 | m_RootOrder: 5
441 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
442 | --- !u!1 &1667050188
443 | GameObject:
444 | m_ObjectHideFlags: 0
445 | m_CorrespondingSourceObject: {fileID: 0}
446 | m_PrefabInstance: {fileID: 0}
447 | m_PrefabAsset: {fileID: 0}
448 | serializedVersion: 6
449 | m_Component:
450 | - component: {fileID: 1667050192}
451 | - component: {fileID: 1667050191}
452 | - component: {fileID: 1667050190}
453 | - component: {fileID: 1667050189}
454 | m_Layer: 0
455 | m_Name: Cube (1)
456 | m_TagString: Untagged
457 | m_Icon: {fileID: 0}
458 | m_NavMeshLayer: 0
459 | m_StaticEditorFlags: 0
460 | m_IsActive: 1
461 | --- !u!65 &1667050189
462 | BoxCollider:
463 | m_ObjectHideFlags: 0
464 | m_CorrespondingSourceObject: {fileID: 0}
465 | m_PrefabInstance: {fileID: 0}
466 | m_PrefabAsset: {fileID: 0}
467 | m_GameObject: {fileID: 1667050188}
468 | m_Material: {fileID: 0}
469 | m_IsTrigger: 0
470 | m_Enabled: 1
471 | serializedVersion: 2
472 | m_Size: {x: 1, y: 1, z: 1}
473 | m_Center: {x: 0, y: 0, z: 0}
474 | --- !u!23 &1667050190
475 | MeshRenderer:
476 | m_ObjectHideFlags: 0
477 | m_CorrespondingSourceObject: {fileID: 0}
478 | m_PrefabInstance: {fileID: 0}
479 | m_PrefabAsset: {fileID: 0}
480 | m_GameObject: {fileID: 1667050188}
481 | m_Enabled: 1
482 | m_CastShadows: 1
483 | m_ReceiveShadows: 1
484 | m_DynamicOccludee: 1
485 | m_MotionVectors: 1
486 | m_LightProbeUsage: 1
487 | m_ReflectionProbeUsage: 1
488 | m_RenderingLayerMask: 1
489 | m_RendererPriority: 0
490 | m_Materials:
491 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
492 | m_StaticBatchInfo:
493 | firstSubMesh: 0
494 | subMeshCount: 0
495 | m_StaticBatchRoot: {fileID: 0}
496 | m_ProbeAnchor: {fileID: 0}
497 | m_LightProbeVolumeOverride: {fileID: 0}
498 | m_ScaleInLightmap: 1
499 | m_ReceiveGI: 1
500 | m_PreserveUVs: 0
501 | m_IgnoreNormalsForChartDetection: 0
502 | m_ImportantGI: 0
503 | m_StitchLightmapSeams: 1
504 | m_SelectedEditorRenderState: 3
505 | m_MinimumChartSize: 4
506 | m_AutoUVMaxDistance: 0.5
507 | m_AutoUVMaxAngle: 89
508 | m_LightmapParameters: {fileID: 0}
509 | m_SortingLayerID: 0
510 | m_SortingLayer: 0
511 | m_SortingOrder: 0
512 | --- !u!33 &1667050191
513 | MeshFilter:
514 | m_ObjectHideFlags: 0
515 | m_CorrespondingSourceObject: {fileID: 0}
516 | m_PrefabInstance: {fileID: 0}
517 | m_PrefabAsset: {fileID: 0}
518 | m_GameObject: {fileID: 1667050188}
519 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
520 | --- !u!4 &1667050192
521 | Transform:
522 | m_ObjectHideFlags: 0
523 | m_CorrespondingSourceObject: {fileID: 0}
524 | m_PrefabInstance: {fileID: 0}
525 | m_PrefabAsset: {fileID: 0}
526 | m_GameObject: {fileID: 1667050188}
527 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
528 | m_LocalPosition: {x: 4, y: 0, z: 5.1}
529 | m_LocalScale: {x: 1, y: 1, z: 1}
530 | m_Children: []
531 | m_Father: {fileID: 0}
532 | m_RootOrder: 4
533 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
534 | --- !u!1 &1858808563
535 | GameObject:
536 | m_ObjectHideFlags: 0
537 | m_CorrespondingSourceObject: {fileID: 0}
538 | m_PrefabInstance: {fileID: 0}
539 | m_PrefabAsset: {fileID: 0}
540 | serializedVersion: 6
541 | m_Component:
542 | - component: {fileID: 1858808567}
543 | - component: {fileID: 1858808566}
544 | - component: {fileID: 1858808565}
545 | - component: {fileID: 1858808564}
546 | m_Layer: 0
547 | m_Name: Cube
548 | m_TagString: Untagged
549 | m_Icon: {fileID: 0}
550 | m_NavMeshLayer: 0
551 | m_StaticEditorFlags: 0
552 | m_IsActive: 1
553 | --- !u!65 &1858808564
554 | BoxCollider:
555 | m_ObjectHideFlags: 0
556 | m_CorrespondingSourceObject: {fileID: 0}
557 | m_PrefabInstance: {fileID: 0}
558 | m_PrefabAsset: {fileID: 0}
559 | m_GameObject: {fileID: 1858808563}
560 | m_Material: {fileID: 0}
561 | m_IsTrigger: 0
562 | m_Enabled: 1
563 | serializedVersion: 2
564 | m_Size: {x: 1, y: 1, z: 1}
565 | m_Center: {x: 0, y: 0, z: 0}
566 | --- !u!23 &1858808565
567 | MeshRenderer:
568 | m_ObjectHideFlags: 0
569 | m_CorrespondingSourceObject: {fileID: 0}
570 | m_PrefabInstance: {fileID: 0}
571 | m_PrefabAsset: {fileID: 0}
572 | m_GameObject: {fileID: 1858808563}
573 | m_Enabled: 1
574 | m_CastShadows: 1
575 | m_ReceiveShadows: 1
576 | m_DynamicOccludee: 1
577 | m_MotionVectors: 1
578 | m_LightProbeUsage: 1
579 | m_ReflectionProbeUsage: 1
580 | m_RenderingLayerMask: 1
581 | m_RendererPriority: 0
582 | m_Materials:
583 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
584 | m_StaticBatchInfo:
585 | firstSubMesh: 0
586 | subMeshCount: 0
587 | m_StaticBatchRoot: {fileID: 0}
588 | m_ProbeAnchor: {fileID: 0}
589 | m_LightProbeVolumeOverride: {fileID: 0}
590 | m_ScaleInLightmap: 1
591 | m_ReceiveGI: 1
592 | m_PreserveUVs: 0
593 | m_IgnoreNormalsForChartDetection: 0
594 | m_ImportantGI: 0
595 | m_StitchLightmapSeams: 1
596 | m_SelectedEditorRenderState: 3
597 | m_MinimumChartSize: 4
598 | m_AutoUVMaxDistance: 0.5
599 | m_AutoUVMaxAngle: 89
600 | m_LightmapParameters: {fileID: 0}
601 | m_SortingLayerID: 0
602 | m_SortingLayer: 0
603 | m_SortingOrder: 0
604 | --- !u!33 &1858808566
605 | MeshFilter:
606 | m_ObjectHideFlags: 0
607 | m_CorrespondingSourceObject: {fileID: 0}
608 | m_PrefabInstance: {fileID: 0}
609 | m_PrefabAsset: {fileID: 0}
610 | m_GameObject: {fileID: 1858808563}
611 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
612 | --- !u!4 &1858808567
613 | Transform:
614 | m_ObjectHideFlags: 0
615 | m_CorrespondingSourceObject: {fileID: 0}
616 | m_PrefabInstance: {fileID: 0}
617 | m_PrefabAsset: {fileID: 0}
618 | m_GameObject: {fileID: 1858808563}
619 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
620 | m_LocalPosition: {x: 8.2, y: 0, z: -13.9}
621 | m_LocalScale: {x: 1, y: 1, z: 1}
622 | m_Children: []
623 | m_Father: {fileID: 0}
624 | m_RootOrder: 3
625 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
626 | --- !u!1 &1999841741
627 | GameObject:
628 | m_ObjectHideFlags: 0
629 | m_CorrespondingSourceObject: {fileID: 0}
630 | m_PrefabInstance: {fileID: 0}
631 | m_PrefabAsset: {fileID: 0}
632 | serializedVersion: 6
633 | m_Component:
634 | - component: {fileID: 1999841745}
635 | - component: {fileID: 1999841744}
636 | - component: {fileID: 1999841743}
637 | - component: {fileID: 1999841742}
638 | m_Layer: 0
639 | m_Name: Cube (3)
640 | m_TagString: Untagged
641 | m_Icon: {fileID: 0}
642 | m_NavMeshLayer: 0
643 | m_StaticEditorFlags: 0
644 | m_IsActive: 1
645 | --- !u!65 &1999841742
646 | BoxCollider:
647 | m_ObjectHideFlags: 0
648 | m_CorrespondingSourceObject: {fileID: 0}
649 | m_PrefabInstance: {fileID: 0}
650 | m_PrefabAsset: {fileID: 0}
651 | m_GameObject: {fileID: 1999841741}
652 | m_Material: {fileID: 0}
653 | m_IsTrigger: 0
654 | m_Enabled: 1
655 | serializedVersion: 2
656 | m_Size: {x: 1, y: 1, z: 1}
657 | m_Center: {x: 0, y: 0, z: 0}
658 | --- !u!23 &1999841743
659 | MeshRenderer:
660 | m_ObjectHideFlags: 0
661 | m_CorrespondingSourceObject: {fileID: 0}
662 | m_PrefabInstance: {fileID: 0}
663 | m_PrefabAsset: {fileID: 0}
664 | m_GameObject: {fileID: 1999841741}
665 | m_Enabled: 1
666 | m_CastShadows: 1
667 | m_ReceiveShadows: 1
668 | m_DynamicOccludee: 1
669 | m_MotionVectors: 1
670 | m_LightProbeUsage: 1
671 | m_ReflectionProbeUsage: 1
672 | m_RenderingLayerMask: 1
673 | m_RendererPriority: 0
674 | m_Materials:
675 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
676 | m_StaticBatchInfo:
677 | firstSubMesh: 0
678 | subMeshCount: 0
679 | m_StaticBatchRoot: {fileID: 0}
680 | m_ProbeAnchor: {fileID: 0}
681 | m_LightProbeVolumeOverride: {fileID: 0}
682 | m_ScaleInLightmap: 1
683 | m_ReceiveGI: 1
684 | m_PreserveUVs: 0
685 | m_IgnoreNormalsForChartDetection: 0
686 | m_ImportantGI: 0
687 | m_StitchLightmapSeams: 1
688 | m_SelectedEditorRenderState: 3
689 | m_MinimumChartSize: 4
690 | m_AutoUVMaxDistance: 0.5
691 | m_AutoUVMaxAngle: 89
692 | m_LightmapParameters: {fileID: 0}
693 | m_SortingLayerID: 0
694 | m_SortingLayer: 0
695 | m_SortingOrder: 0
696 | --- !u!33 &1999841744
697 | MeshFilter:
698 | m_ObjectHideFlags: 0
699 | m_CorrespondingSourceObject: {fileID: 0}
700 | m_PrefabInstance: {fileID: 0}
701 | m_PrefabAsset: {fileID: 0}
702 | m_GameObject: {fileID: 1999841741}
703 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
704 | --- !u!4 &1999841745
705 | Transform:
706 | m_ObjectHideFlags: 0
707 | m_CorrespondingSourceObject: {fileID: 0}
708 | m_PrefabInstance: {fileID: 0}
709 | m_PrefabAsset: {fileID: 0}
710 | m_GameObject: {fileID: 1999841741}
711 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
712 | m_LocalPosition: {x: -15.7, y: 0, z: -8.8}
713 | m_LocalScale: {x: 1, y: 1, z: 1}
714 | m_Children: []
715 | m_Father: {fileID: 0}
716 | m_RootOrder: 6
717 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
718 | --- !u!1 &2103867414
719 | GameObject:
720 | m_ObjectHideFlags: 0
721 | m_CorrespondingSourceObject: {fileID: 0}
722 | m_PrefabInstance: {fileID: 0}
723 | m_PrefabAsset: {fileID: 0}
724 | serializedVersion: 6
725 | m_Component:
726 | - component: {fileID: 2103867418}
727 | - component: {fileID: 2103867417}
728 | - component: {fileID: 2103867416}
729 | - component: {fileID: 2103867415}
730 | m_Layer: 0
731 | m_Name: Cube (4)
732 | m_TagString: Untagged
733 | m_Icon: {fileID: 0}
734 | m_NavMeshLayer: 0
735 | m_StaticEditorFlags: 0
736 | m_IsActive: 1
737 | --- !u!65 &2103867415
738 | BoxCollider:
739 | m_ObjectHideFlags: 0
740 | m_CorrespondingSourceObject: {fileID: 0}
741 | m_PrefabInstance: {fileID: 0}
742 | m_PrefabAsset: {fileID: 0}
743 | m_GameObject: {fileID: 2103867414}
744 | m_Material: {fileID: 0}
745 | m_IsTrigger: 0
746 | m_Enabled: 1
747 | serializedVersion: 2
748 | m_Size: {x: 1, y: 1, z: 1}
749 | m_Center: {x: 0, y: 0, z: 0}
750 | --- !u!23 &2103867416
751 | MeshRenderer:
752 | m_ObjectHideFlags: 0
753 | m_CorrespondingSourceObject: {fileID: 0}
754 | m_PrefabInstance: {fileID: 0}
755 | m_PrefabAsset: {fileID: 0}
756 | m_GameObject: {fileID: 2103867414}
757 | m_Enabled: 1
758 | m_CastShadows: 1
759 | m_ReceiveShadows: 1
760 | m_DynamicOccludee: 1
761 | m_MotionVectors: 1
762 | m_LightProbeUsage: 1
763 | m_ReflectionProbeUsage: 1
764 | m_RenderingLayerMask: 1
765 | m_RendererPriority: 0
766 | m_Materials:
767 | - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
768 | m_StaticBatchInfo:
769 | firstSubMesh: 0
770 | subMeshCount: 0
771 | m_StaticBatchRoot: {fileID: 0}
772 | m_ProbeAnchor: {fileID: 0}
773 | m_LightProbeVolumeOverride: {fileID: 0}
774 | m_ScaleInLightmap: 1
775 | m_ReceiveGI: 1
776 | m_PreserveUVs: 0
777 | m_IgnoreNormalsForChartDetection: 0
778 | m_ImportantGI: 0
779 | m_StitchLightmapSeams: 1
780 | m_SelectedEditorRenderState: 3
781 | m_MinimumChartSize: 4
782 | m_AutoUVMaxDistance: 0.5
783 | m_AutoUVMaxAngle: 89
784 | m_LightmapParameters: {fileID: 0}
785 | m_SortingLayerID: 0
786 | m_SortingLayer: 0
787 | m_SortingOrder: 0
788 | --- !u!33 &2103867417
789 | MeshFilter:
790 | m_ObjectHideFlags: 0
791 | m_CorrespondingSourceObject: {fileID: 0}
792 | m_PrefabInstance: {fileID: 0}
793 | m_PrefabAsset: {fileID: 0}
794 | m_GameObject: {fileID: 2103867414}
795 | m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
796 | --- !u!4 &2103867418
797 | Transform:
798 | m_ObjectHideFlags: 0
799 | m_CorrespondingSourceObject: {fileID: 0}
800 | m_PrefabInstance: {fileID: 0}
801 | m_PrefabAsset: {fileID: 0}
802 | m_GameObject: {fileID: 2103867414}
803 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
804 | m_LocalPosition: {x: -3.8, y: 0, z: -18.3}
805 | m_LocalScale: {x: 1, y: 1, z: 1}
806 | m_Children: []
807 | m_Father: {fileID: 0}
808 | m_RootOrder: 7
809 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
810 |
--------------------------------------------------------------------------------
/Assets/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 9fc0d4010bbf28b4594072e72b8655ab
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 981feab3c32782d49ad024a896d6124c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/CurveTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | namespace Alpacasking
6 | {
7 | ///
8 | /// Curve test
9 | ///
10 | public class CurveTest : MonoBehaviour
11 | {
12 | public enum SplineType {
13 | CatmullRom,
14 | Bezier,
15 | BSpline2D,
16 | BSpline3D,
17 | }
18 |
19 | public ComputeShader SplineShader;
20 | //Waypoint
21 | public GameObject[] GameObjectList;
22 | //Coordinates of waypoints
23 | private List TransDataList = new List();
24 |
25 | public int Amount = 20;
26 | public float Ratio = 0.2f;
27 |
28 | public SplineType Type = SplineType.CatmullRom;
29 |
30 | void Start()
31 | {
32 |
33 | }
34 |
35 | //Gizmos
36 | void OnDrawGizmos()
37 | {
38 | //1 point cannot draw a curve, 2 points are actually straight lines
39 | if (GameObjectList.Length <= 1 || SplineShader == null) return;
40 |
41 | TransDataList.Clear();
42 | for (int i = 0; i < GameObjectList.Length; ++i)
43 | {
44 | if(GameObjectList[i] == null)
45 | {
46 | return;
47 | }
48 | TransDataList.Add(GameObjectList[i].transform.position);
49 | }
50 |
51 | int minAmount = 1;
52 | switch (Type)
53 | {
54 | case SplineType.CatmullRom:
55 | minAmount = 1;
56 | break;
57 | case SplineType.Bezier:
58 | minAmount = 2;
59 | break;
60 | case SplineType.BSpline2D:
61 | minAmount = 2;
62 | break;
63 | case SplineType.BSpline3D:
64 | minAmount = 3;
65 | break;
66 | }
67 |
68 | if (TransDataList != null && TransDataList.Count > minAmount)
69 | {
70 | DrawPathHelper(TransDataList.ToArray(), Color.red);
71 | }
72 | }
73 |
74 | //Draw a curve
75 | private void DrawPathHelper(Vector3[] path, Color color)
76 | {
77 | int kernel = 0;
78 | Vector3[] vector3s = path;
79 | switch (Type)
80 | {
81 | case SplineType.CatmullRom:
82 | kernel = SplineShader.FindKernel("CatmullRom");
83 | vector3s = PathControlPointGenerator(path);
84 | break;
85 | case SplineType.Bezier:
86 | kernel = SplineShader.FindKernel("Bezier");
87 | break;
88 | case SplineType.BSpline2D:
89 | kernel = SplineShader.FindKernel("BSpline2D");
90 | break;
91 | case SplineType.BSpline3D:
92 | vector3s = PathControlPointGenerator(path);
93 | kernel = SplineShader.FindKernel("BSpline3D");
94 | break;
95 | }
96 |
97 | //Line Draw:
98 | int SmoothAmount = path.Length * Amount;
99 |
100 | ComputeBuffer nodePointBuffer = new ComputeBuffer(SmoothAmount, sizeof(float)*3);
101 | ComputeBuffer controlPointBuffer = new ComputeBuffer(vector3s.Length, sizeof(float) * 3);
102 | controlPointBuffer.SetData(vector3s);
103 | SplineShader.SetBuffer(kernel, "ControlPoints", controlPointBuffer);
104 | SplineShader.SetBuffer(kernel, "NodePoints", nodePointBuffer);
105 | SplineShader.SetInt("ControlPointAmount", vector3s.Length);
106 | SplineShader.SetInt("NodeAmount", SmoothAmount);
107 | SplineShader.Dispatch(kernel, SmoothAmount, 1, 1);
108 | var nodePoints = new Vector3[SmoothAmount];
109 | nodePointBuffer.GetData(nodePoints);
110 | for (int i = 0; i < SmoothAmount; i++)
111 | {
112 | Gizmos.color = color;
113 | Gizmos.DrawSphere(nodePoints[i], Ratio);
114 | }
115 | nodePointBuffer.Release();
116 | controlPointBuffer.Release();
117 | }
118 |
119 | public static Vector3[] PathControlPointGenerator(Vector3[] path)
120 | {
121 | Vector3[] vector3s;
122 | //populate calculate path;
123 | int offset = 2;
124 | vector3s = new Vector3[path.Length + offset];
125 | Array.Copy(path, 0, vector3s, 1, path.Length);
126 |
127 | //populate start and end control points:
128 | vector3s[0] = vector3s[1] + (vector3s[1] - vector3s[2]);
129 | vector3s[vector3s.Length - 1] = vector3s[vector3s.Length - 2] + (vector3s[vector3s.Length - 2] - vector3s[vector3s.Length - 3]);
130 |
131 | //is this a closed, continuous loop? yes? well then so let's make a continuous Catmull-Rom spline!
132 | if (vector3s[1] == vector3s[vector3s.Length - 2])
133 | {
134 | Vector3[] tmpLoopSpline = new Vector3[vector3s.Length];
135 | Array.Copy(vector3s, tmpLoopSpline, vector3s.Length);
136 | tmpLoopSpline[0] = tmpLoopSpline[tmpLoopSpline.Length - 3];
137 | tmpLoopSpline[tmpLoopSpline.Length - 1] = tmpLoopSpline[2];
138 | vector3s = new Vector3[tmpLoopSpline.Length];
139 | Array.Copy(tmpLoopSpline, vector3s, tmpLoopSpline.Length);
140 | }
141 |
142 | return (vector3s);
143 | }
144 | }
145 | }
--------------------------------------------------------------------------------
/Assets/Scripts/CurveTest.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 856756673e19e5e47ae02c2a622d85ee
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Shaders.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a8df6f2d60e8aa94a82781d1d0b3d59c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Shaders/Spline.compute:
--------------------------------------------------------------------------------
1 | // Each #kernel tells which function to compile; you can have many kernels
2 | #pragma kernel CatmullRom
3 | #pragma kernel Bezier
4 | #pragma kernel BSpline2D
5 | #pragma kernel BSpline3D
6 |
7 | // Create a RenderTexture with enableRandomWrite flag and set it
8 | // with cs.SetTexture
9 | StructuredBuffer ControlPoints;
10 | RWStructuredBuffer NodePoints;
11 | int ControlPointAmount;
12 | int NodeAmount;
13 |
14 | [numthreads(1,1,1)]
15 | void Bezier(uint3 id : SV_DispatchThreadID)
16 | {
17 | int numSections = ControlPointAmount - 1;
18 | float t = float(id.x) / NodeAmount;
19 | int currPt = min(floor(t * float(numSections)*0.5)*2,numSections-2);
20 | float u = t * float(numSections)*0.5 - float(currPt)*0.5;
21 | float3 a = ControlPoints[currPt];
22 | float3 b = ControlPoints[currPt + 1];
23 | float3 c = ControlPoints[currPt + 2];
24 |
25 | NodePoints[id.x] = (1-u)*(1-u)*a+2*u*(1-u)*b+u*u*c;
26 | }
27 |
28 | [numthreads(1,1,1)]
29 | void BSpline2D(uint3 id : SV_DispatchThreadID)
30 | {
31 | int numSections = ControlPointAmount - 2;
32 | float t = float(id.x) / NodeAmount;
33 | int currPt = min(floor(t * float(numSections)), numSections - 1);
34 | float u = t * float(numSections) - float(currPt);
35 | float3 a = ControlPoints[currPt];
36 | float3 b = ControlPoints[currPt + 1];
37 | float3 c = ControlPoints[currPt + 2];
38 |
39 | NodePoints[id.x] = 0.5*(1-u)*(1-u)*a + 0.5*(-2*u*u + 2*u +1)*b + 0.5* u*u *c;
40 | }
41 |
42 | [numthreads(1,1,1)]
43 | void BSpline3D(uint3 id : SV_DispatchThreadID)
44 | {
45 | int numSections = ControlPointAmount - 3;
46 | float t = float(id.x) / NodeAmount;
47 | int currPt = min(floor(t * float(numSections)), numSections - 1);
48 | float u = t * float(numSections) - float(currPt);
49 | float3 a = ControlPoints[currPt];
50 | float3 b = ControlPoints[currPt + 1];
51 | float3 c = ControlPoints[currPt + 2];
52 | float3 d = ControlPoints[currPt + 3];
53 |
54 | NodePoints[id.x] = ( -pow(u,3) + 3*u*u -3*u +1)/6*a + (3*u*u*u - 6*u*u +4)/6 *b + (-3*u*u*u +3*u*u +3*u+1)/6 *c + u*u*u/6 * d;
55 | }
56 |
57 | [numthreads(1,1,1)]
58 | void CatmullRom(uint3 id : SV_DispatchThreadID)
59 | {
60 | int numSections = ControlPointAmount - 3;
61 | float t = float(id.x) / NodeAmount;
62 | int currPt = min(floor(t * float(numSections)), numSections - 1);
63 | float u = t * float(numSections) - float(currPt);
64 | float3 a = ControlPoints[currPt];
65 | float3 b = ControlPoints[currPt + 1];
66 | float3 c = ControlPoints[currPt + 2];
67 | float3 d = ControlPoints[currPt + 3];
68 |
69 | NodePoints[id.x] = 0.5 * (
70 | (-a + 3* b - 3* c + d) * (u * u * u)
71 | + (2* a - 5* b + 4 * c - d) * (u * u)
72 | + (-a + c) * u
73 | + 2 * b
74 | );
75 | }
76 |
--------------------------------------------------------------------------------
/Assets/Shaders/Spline.compute.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 89f6215e844c94f47a464b86a5c6a485
3 | ComputeShaderImporter:
4 | externalObjects: {}
5 | currentAPIMask: 4
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 alpacasking
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.collab-proxy": "1.2.16",
4 | "com.unity.ext.nunit": "1.0.0",
5 | "com.unity.ide.rider": "1.1.0",
6 | "com.unity.ide.vscode": "1.1.2",
7 | "com.unity.package-manager-ui": "2.2.0",
8 | "com.unity.test-framework": "1.0.13",
9 | "com.unity.textmeshpro": "2.0.1",
10 | "com.unity.timeline": "1.1.0",
11 | "com.unity.ugui": "1.0.0",
12 | "com.unity.modules.ai": "1.0.0",
13 | "com.unity.modules.androidjni": "1.0.0",
14 | "com.unity.modules.animation": "1.0.0",
15 | "com.unity.modules.assetbundle": "1.0.0",
16 | "com.unity.modules.audio": "1.0.0",
17 | "com.unity.modules.cloth": "1.0.0",
18 | "com.unity.modules.director": "1.0.0",
19 | "com.unity.modules.imageconversion": "1.0.0",
20 | "com.unity.modules.imgui": "1.0.0",
21 | "com.unity.modules.jsonserialize": "1.0.0",
22 | "com.unity.modules.particlesystem": "1.0.0",
23 | "com.unity.modules.physics": "1.0.0",
24 | "com.unity.modules.physics2d": "1.0.0",
25 | "com.unity.modules.screencapture": "1.0.0",
26 | "com.unity.modules.terrain": "1.0.0",
27 | "com.unity.modules.terrainphysics": "1.0.0",
28 | "com.unity.modules.tilemap": "1.0.0",
29 | "com.unity.modules.ui": "1.0.0",
30 | "com.unity.modules.uielements": "1.0.0",
31 | "com.unity.modules.umbra": "1.0.0",
32 | "com.unity.modules.unityanalytics": "1.0.0",
33 | "com.unity.modules.unitywebrequest": "1.0.0",
34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
35 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
36 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
37 | "com.unity.modules.unitywebrequestwww": "1.0.0",
38 | "com.unity.modules.vehicles": "1.0.0",
39 | "com.unity.modules.video": "1.0.0",
40 | "com.unity.modules.vr": "1.0.0",
41 | "com.unity.modules.wind": "1.0.0",
42 | "com.unity.modules.xr": "1.0.0"
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/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: 8
7 | m_ExternalVersionControlSupport: Hidden Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 2
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_ShowLightmapResolutionOverlay: 1
27 |
--------------------------------------------------------------------------------
/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: 12
7 | m_Deferred:
8 | m_Mode: 1
9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0}
10 | m_DeferredReflections:
11 | m_Mode: 1
12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0}
13 | m_ScreenSpaceShadows:
14 | m_Mode: 1
15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0}
16 | m_LegacyDeferred:
17 | m_Mode: 1
18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0}
19 | m_DepthNormals:
20 | m_Mode: 1
21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0}
22 | m_MotionVectors:
23 | m_Mode: 1
24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0}
25 | m_LightHalo:
26 | m_Mode: 1
27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0}
28 | m_LensFlare:
29 | m_Mode: 1
30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0}
31 | m_AlwaysIncludedShaders:
32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0}
33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0}
34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0}
35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
38 | m_PreloadedShaders: []
39 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
40 | type: 0}
41 | m_CustomRenderPipeline: {fileID: 0}
42 | m_TransparencySortMode: 0
43 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
44 | m_DefaultRenderingPath: 1
45 | m_DefaultMobileRenderingPath: 1
46 | m_TierSettings: []
47 | m_LightmapStripping: 0
48 | m_FogStripping: 0
49 | m_InstancingStripping: 0
50 | m_LightmapKeepPlain: 1
51 | m_LightmapKeepDirCombined: 1
52 | m_LightmapKeepDynamicPlain: 1
53 | m_LightmapKeepDynamicDirCombined: 1
54 | m_LightmapKeepShadowMask: 1
55 | m_LightmapKeepSubtractive: 1
56 | m_FogKeepLinear: 1
57 | m_FogKeepExp: 1
58 | m_FogKeepExp2: 1
59 | m_AlbedoSwatchInfos: []
60 | m_LightsUseLinearIntensity: 0
61 | m_LightsUseColorTemperature: 0
62 | m_LogWhenShaderIsCompiled: 0
63 |
--------------------------------------------------------------------------------
/ProjectSettings/InputManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!13 &1
4 | InputManager:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Axes:
8 | - serializedVersion: 3
9 | m_Name: Horizontal
10 | descriptiveName:
11 | descriptiveNegativeName:
12 | negativeButton: left
13 | positiveButton: right
14 | altNegativeButton: a
15 | altPositiveButton: d
16 | gravity: 3
17 | dead: 0.001
18 | sensitivity: 3
19 | snap: 1
20 | invert: 0
21 | type: 0
22 | axis: 0
23 | joyNum: 0
24 | - serializedVersion: 3
25 | m_Name: Vertical
26 | descriptiveName:
27 | descriptiveNegativeName:
28 | negativeButton: down
29 | positiveButton: up
30 | altNegativeButton: s
31 | altPositiveButton: w
32 | gravity: 3
33 | dead: 0.001
34 | sensitivity: 3
35 | snap: 1
36 | invert: 0
37 | type: 0
38 | axis: 0
39 | joyNum: 0
40 | - serializedVersion: 3
41 | m_Name: Fire1
42 | descriptiveName:
43 | descriptiveNegativeName:
44 | negativeButton:
45 | positiveButton: left ctrl
46 | altNegativeButton:
47 | altPositiveButton: mouse 0
48 | gravity: 1000
49 | dead: 0.001
50 | sensitivity: 1000
51 | snap: 0
52 | invert: 0
53 | type: 0
54 | axis: 0
55 | joyNum: 0
56 | - serializedVersion: 3
57 | m_Name: Fire2
58 | descriptiveName:
59 | descriptiveNegativeName:
60 | negativeButton:
61 | positiveButton: left alt
62 | altNegativeButton:
63 | altPositiveButton: mouse 1
64 | gravity: 1000
65 | dead: 0.001
66 | sensitivity: 1000
67 | snap: 0
68 | invert: 0
69 | type: 0
70 | axis: 0
71 | joyNum: 0
72 | - serializedVersion: 3
73 | m_Name: Fire3
74 | descriptiveName:
75 | descriptiveNegativeName:
76 | negativeButton:
77 | positiveButton: left shift
78 | altNegativeButton:
79 | altPositiveButton: mouse 2
80 | gravity: 1000
81 | dead: 0.001
82 | sensitivity: 1000
83 | snap: 0
84 | invert: 0
85 | type: 0
86 | axis: 0
87 | joyNum: 0
88 | - serializedVersion: 3
89 | m_Name: Jump
90 | descriptiveName:
91 | descriptiveNegativeName:
92 | negativeButton:
93 | positiveButton: space
94 | altNegativeButton:
95 | altPositiveButton:
96 | gravity: 1000
97 | dead: 0.001
98 | sensitivity: 1000
99 | snap: 0
100 | invert: 0
101 | type: 0
102 | axis: 0
103 | joyNum: 0
104 | - serializedVersion: 3
105 | m_Name: Mouse X
106 | descriptiveName:
107 | descriptiveNegativeName:
108 | negativeButton:
109 | positiveButton:
110 | altNegativeButton:
111 | altPositiveButton:
112 | gravity: 0
113 | dead: 0
114 | sensitivity: 0.1
115 | snap: 0
116 | invert: 0
117 | type: 1
118 | axis: 0
119 | joyNum: 0
120 | - serializedVersion: 3
121 | m_Name: Mouse Y
122 | descriptiveName:
123 | descriptiveNegativeName:
124 | negativeButton:
125 | positiveButton:
126 | altNegativeButton:
127 | altPositiveButton:
128 | gravity: 0
129 | dead: 0
130 | sensitivity: 0.1
131 | snap: 0
132 | invert: 0
133 | type: 1
134 | axis: 1
135 | joyNum: 0
136 | - serializedVersion: 3
137 | m_Name: Mouse ScrollWheel
138 | descriptiveName:
139 | descriptiveNegativeName:
140 | negativeButton:
141 | positiveButton:
142 | altNegativeButton:
143 | altPositiveButton:
144 | gravity: 0
145 | dead: 0
146 | sensitivity: 0.1
147 | snap: 0
148 | invert: 0
149 | type: 1
150 | axis: 2
151 | joyNum: 0
152 | - serializedVersion: 3
153 | m_Name: Horizontal
154 | descriptiveName:
155 | descriptiveNegativeName:
156 | negativeButton:
157 | positiveButton:
158 | altNegativeButton:
159 | altPositiveButton:
160 | gravity: 0
161 | dead: 0.19
162 | sensitivity: 1
163 | snap: 0
164 | invert: 0
165 | type: 2
166 | axis: 0
167 | joyNum: 0
168 | - serializedVersion: 3
169 | m_Name: Vertical
170 | descriptiveName:
171 | descriptiveNegativeName:
172 | negativeButton:
173 | positiveButton:
174 | altNegativeButton:
175 | altPositiveButton:
176 | gravity: 0
177 | dead: 0.19
178 | sensitivity: 1
179 | snap: 0
180 | invert: 1
181 | type: 2
182 | axis: 1
183 | joyNum: 0
184 | - serializedVersion: 3
185 | m_Name: Fire1
186 | descriptiveName:
187 | descriptiveNegativeName:
188 | negativeButton:
189 | positiveButton: joystick button 0
190 | altNegativeButton:
191 | altPositiveButton:
192 | gravity: 1000
193 | dead: 0.001
194 | sensitivity: 1000
195 | snap: 0
196 | invert: 0
197 | type: 0
198 | axis: 0
199 | joyNum: 0
200 | - serializedVersion: 3
201 | m_Name: Fire2
202 | descriptiveName:
203 | descriptiveNegativeName:
204 | negativeButton:
205 | positiveButton: joystick button 1
206 | altNegativeButton:
207 | altPositiveButton:
208 | gravity: 1000
209 | dead: 0.001
210 | sensitivity: 1000
211 | snap: 0
212 | invert: 0
213 | type: 0
214 | axis: 0
215 | joyNum: 0
216 | - serializedVersion: 3
217 | m_Name: Fire3
218 | descriptiveName:
219 | descriptiveNegativeName:
220 | negativeButton:
221 | positiveButton: joystick button 2
222 | altNegativeButton:
223 | altPositiveButton:
224 | gravity: 1000
225 | dead: 0.001
226 | sensitivity: 1000
227 | snap: 0
228 | invert: 0
229 | type: 0
230 | axis: 0
231 | joyNum: 0
232 | - serializedVersion: 3
233 | m_Name: Jump
234 | descriptiveName:
235 | descriptiveNegativeName:
236 | negativeButton:
237 | positiveButton: joystick button 3
238 | altNegativeButton:
239 | altPositiveButton:
240 | gravity: 1000
241 | dead: 0.001
242 | sensitivity: 1000
243 | snap: 0
244 | invert: 0
245 | type: 0
246 | axis: 0
247 | joyNum: 0
248 | - serializedVersion: 3
249 | m_Name: Submit
250 | descriptiveName:
251 | descriptiveNegativeName:
252 | negativeButton:
253 | positiveButton: return
254 | altNegativeButton:
255 | altPositiveButton: joystick button 0
256 | gravity: 1000
257 | dead: 0.001
258 | sensitivity: 1000
259 | snap: 0
260 | invert: 0
261 | type: 0
262 | axis: 0
263 | joyNum: 0
264 | - serializedVersion: 3
265 | m_Name: Submit
266 | descriptiveName:
267 | descriptiveNegativeName:
268 | negativeButton:
269 | positiveButton: enter
270 | altNegativeButton:
271 | altPositiveButton: space
272 | gravity: 1000
273 | dead: 0.001
274 | sensitivity: 1000
275 | snap: 0
276 | invert: 0
277 | type: 0
278 | axis: 0
279 | joyNum: 0
280 | - serializedVersion: 3
281 | m_Name: Cancel
282 | descriptiveName:
283 | descriptiveNegativeName:
284 | negativeButton:
285 | positiveButton: escape
286 | altNegativeButton:
287 | altPositiveButton: joystick button 1
288 | gravity: 1000
289 | dead: 0.001
290 | sensitivity: 1000
291 | snap: 0
292 | invert: 0
293 | type: 0
294 | axis: 0
295 | joyNum: 0
296 |
--------------------------------------------------------------------------------
/ProjectSettings/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/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 | m_DefaultList: []
7 |
--------------------------------------------------------------------------------
/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: 18
7 | productGUID: 00000000000000000000000000000000
8 | AndroidProfiler: 0
9 | AndroidFilterTouchesWhenObscured: 0
10 | AndroidEnableSustainedPerformanceMode: 0
11 | defaultScreenOrientation: 4
12 | targetDevice: 2
13 | useOnDemandResources: 0
14 | accelerometerFrequency: 60
15 | companyName:
16 | productName:
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: 1024
46 | defaultScreenHeight: 768
47 | defaultScreenWidthWeb: 960
48 | defaultScreenHeightWeb: 600
49 | m_StereoRenderingPath: 0
50 | m_ActiveColorSpace: 0
51 | m_MTRendering: 1
52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000
53 | iosShowActivityIndicatorOnLoading: -1
54 | androidShowActivityIndicatorOnLoading: -1
55 | displayResolutionDialog: 0
56 | iosUseCustomAppBackgroundBehavior: 0
57 | iosAllowHTTPDownload: 1
58 | allowedAutorotateToPortrait: 1
59 | allowedAutorotateToPortraitUpsideDown: 1
60 | allowedAutorotateToLandscapeRight: 1
61 | allowedAutorotateToLandscapeLeft: 1
62 | useOSAutorotation: 1
63 | use32BitDisplayBuffer: 1
64 | preserveFramebufferAlpha: 0
65 | disableDepthAndStencilBuffers: 0
66 | androidStartInFullscreen: 1
67 | androidRenderOutsideSafeArea: 1
68 | androidUseSwappy: 0
69 | androidBlitType: 0
70 | defaultIsNativeResolution: 1
71 | macRetinaSupport: 1
72 | runInBackground: 1
73 | captureSingleScreen: 0
74 | muteOtherAudioSources: 0
75 | Prepare IOS For Recording: 0
76 | Force IOS Speakers When Recording: 0
77 | deferSystemGesturesMode: 0
78 | hideHomeButton: 0
79 | submitAnalytics: 1
80 | usePlayerLog: 1
81 | bakeCollisionMeshes: 0
82 | forceSingleInstance: 0
83 | useFlipModelSwapchain: 1
84 | resizableWindow: 0
85 | useMacAppStoreValidation: 0
86 | macAppStoreCategory: public.app-category.games
87 | gpuSkinning: 1
88 | graphicsJobs: 0
89 | xboxPIXTextureCapture: 0
90 | xboxEnableAvatar: 0
91 | xboxEnableKinect: 0
92 | xboxEnableKinectAutoTracking: 0
93 | xboxEnableFitness: 0
94 | visibleInBackground: 1
95 | allowFullscreenSwitch: 1
96 | graphicsJobMode: 0
97 | fullscreenMode: 1
98 | xboxSpeechDB: 0
99 | xboxEnableHeadOrientation: 0
100 | xboxEnableGuest: 0
101 | xboxEnablePIXSampling: 0
102 | metalFramebufferOnly: 0
103 | xboxOneResolution: 0
104 | xboxOneSResolution: 0
105 | xboxOneXResolution: 3
106 | xboxOneMonoLoggingLevel: 0
107 | xboxOneLoggingLevel: 1
108 | xboxOneDisableEsram: 0
109 | xboxOnePresentImmediateThreshold: 0
110 | switchQueueCommandMemory: 0
111 | switchQueueControlMemory: 16384
112 | switchQueueComputeMemory: 262144
113 | switchNVNShaderPoolsGranularity: 33554432
114 | switchNVNDefaultPoolsGranularity: 16777216
115 | switchNVNOtherPoolsGranularity: 16777216
116 | vulkanEnableSetSRGBWrite: 0
117 | m_SupportedAspectRatios:
118 | 4:3: 1
119 | 5:4: 1
120 | 16:10: 1
121 | 16:9: 1
122 | Others: 1
123 | bundleVersion: 0.1
124 | preloadedAssets: []
125 | metroInputSource: 0
126 | wsaTransparentSwapchain: 0
127 | m_HolographicPauseOnTrackingLoss: 1
128 | xboxOneDisableKinectGpuReservation: 1
129 | xboxOneEnable7thCore: 1
130 | vrSettings:
131 | cardboard:
132 | depthFormat: 0
133 | enableTransitionView: 0
134 | daydream:
135 | depthFormat: 0
136 | useSustainedPerformanceMode: 0
137 | enableVideoLayer: 0
138 | useProtectedVideoMemory: 0
139 | minimumSupportedHeadTracking: 0
140 | maximumSupportedHeadTracking: 1
141 | hololens:
142 | depthFormat: 1
143 | depthBufferSharingEnabled: 1
144 | lumin:
145 | depthFormat: 0
146 | frameTiming: 2
147 | enableGLCache: 0
148 | glCacheMaxBlobSize: 524288
149 | glCacheMaxFileSize: 8388608
150 | oculus:
151 | sharedDepthBuffer: 1
152 | dashSupport: 1
153 | lowOverheadMode: 0
154 | protectedContext: 0
155 | v2Signing: 0
156 | enable360StereoCapture: 0
157 | isWsaHolographicRemotingEnabled: 0
158 | protectGraphicsMemory: 0
159 | enableFrameTimingStats: 0
160 | useHDRDisplay: 0
161 | m_ColorGamuts: 00000000
162 | targetPixelDensity: 30
163 | resolutionScalingMode: 0
164 | androidSupportedAspectRatio: 1
165 | androidMaxAspectRatio: 2.1
166 | applicationIdentifier: {}
167 | buildNumber: {}
168 | AndroidBundleVersionCode: 1
169 | AndroidMinSdkVersion: 16
170 | AndroidTargetSdkVersion: 0
171 | AndroidPreferredInstallLocation: 1
172 | aotOptions:
173 | stripEngineCode: 1
174 | iPhoneStrippingLevel: 0
175 | iPhoneScriptCallOptimization: 0
176 | ForceInternetPermission: 0
177 | ForceSDCardPermission: 0
178 | CreateWallpaper: 0
179 | APKExpansionFiles: 0
180 | keepLoadedShadersAlive: 0
181 | StripUnusedMeshComponents: 1
182 | VertexChannelCompressionMask: 4054
183 | iPhoneSdkVersion: 988
184 | iOSTargetOSVersionString: 9.0
185 | tvOSSdkVersion: 0
186 | tvOSRequireExtendedGameController: 0
187 | tvOSTargetOSVersionString: 9.0
188 | uIPrerenderedIcon: 0
189 | uIRequiresPersistentWiFi: 0
190 | uIRequiresFullScreen: 1
191 | uIStatusBarHidden: 1
192 | uIExitOnSuspend: 0
193 | uIStatusBarStyle: 0
194 | iPhoneSplashScreen: {fileID: 0}
195 | iPhoneHighResSplashScreen: {fileID: 0}
196 | iPhoneTallHighResSplashScreen: {fileID: 0}
197 | iPhone47inSplashScreen: {fileID: 0}
198 | iPhone55inPortraitSplashScreen: {fileID: 0}
199 | iPhone55inLandscapeSplashScreen: {fileID: 0}
200 | iPhone58inPortraitSplashScreen: {fileID: 0}
201 | iPhone58inLandscapeSplashScreen: {fileID: 0}
202 | iPadPortraitSplashScreen: {fileID: 0}
203 | iPadHighResPortraitSplashScreen: {fileID: 0}
204 | iPadLandscapeSplashScreen: {fileID: 0}
205 | iPadHighResLandscapeSplashScreen: {fileID: 0}
206 | iPhone65inPortraitSplashScreen: {fileID: 0}
207 | iPhone65inLandscapeSplashScreen: {fileID: 0}
208 | iPhone61inPortraitSplashScreen: {fileID: 0}
209 | iPhone61inLandscapeSplashScreen: {fileID: 0}
210 | appleTVSplashScreen: {fileID: 0}
211 | appleTVSplashScreen2x: {fileID: 0}
212 | tvOSSmallIconLayers: []
213 | tvOSSmallIconLayers2x: []
214 | tvOSLargeIconLayers: []
215 | tvOSLargeIconLayers2x: []
216 | tvOSTopShelfImageLayers: []
217 | tvOSTopShelfImageLayers2x: []
218 | tvOSTopShelfImageWideLayers: []
219 | tvOSTopShelfImageWideLayers2x: []
220 | iOSLaunchScreenType: 0
221 | iOSLaunchScreenPortrait: {fileID: 0}
222 | iOSLaunchScreenLandscape: {fileID: 0}
223 | iOSLaunchScreenBackgroundColor:
224 | serializedVersion: 2
225 | rgba: 0
226 | iOSLaunchScreenFillPct: 100
227 | iOSLaunchScreenSize: 100
228 | iOSLaunchScreenCustomXibPath:
229 | iOSLaunchScreeniPadType: 0
230 | iOSLaunchScreeniPadImage: {fileID: 0}
231 | iOSLaunchScreeniPadBackgroundColor:
232 | serializedVersion: 2
233 | rgba: 0
234 | iOSLaunchScreeniPadFillPct: 100
235 | iOSLaunchScreeniPadSize: 100
236 | iOSLaunchScreeniPadCustomXibPath:
237 | iOSUseLaunchScreenStoryboard: 0
238 | iOSLaunchScreenCustomStoryboardPath:
239 | iOSDeviceRequirements: []
240 | iOSURLSchemes: []
241 | iOSBackgroundModes: 0
242 | iOSMetalForceHardShadows: 0
243 | metalEditorSupport: 1
244 | metalAPIValidation: 1
245 | iOSRenderExtraFrameOnPause: 0
246 | appleDeveloperTeamID:
247 | iOSManualSigningProvisioningProfileID:
248 | tvOSManualSigningProvisioningProfileID:
249 | iOSManualSigningProvisioningProfileType: 0
250 | tvOSManualSigningProvisioningProfileType: 0
251 | appleEnableAutomaticSigning: 0
252 | iOSRequireARKit: 0
253 | iOSAutomaticallyDetectAndAddCapabilities: 1
254 | appleEnableProMotion: 0
255 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
256 | templatePackageId: com.unity.template.3d@3.1.2
257 | templateDefaultScene: Assets/Scenes/SampleScene.unity
258 | AndroidTargetArchitectures: 1
259 | AndroidSplashScreenScale: 0
260 | androidSplashScreen: {fileID: 0}
261 | AndroidKeystoreName: '{inproject}: '
262 | AndroidKeyaliasName:
263 | AndroidBuildApkPerCpuArchitecture: 0
264 | AndroidTVCompatibility: 0
265 | AndroidIsGame: 1
266 | AndroidEnableTango: 0
267 | androidEnableBanner: 1
268 | androidUseLowAccuracyLocation: 0
269 | androidUseCustomKeystore: 0
270 | m_AndroidBanners:
271 | - width: 320
272 | height: 180
273 | banner: {fileID: 0}
274 | androidGamepadSupportLevel: 0
275 | AndroidValidateAppBundleSize: 1
276 | AndroidAppBundleSizeToValidate: 150
277 | resolutionDialogBanner: {fileID: 0}
278 | m_BuildTargetIcons: []
279 | m_BuildTargetPlatformIcons: []
280 | m_BuildTargetBatching:
281 | - m_BuildTarget: Standalone
282 | m_StaticBatching: 1
283 | m_DynamicBatching: 0
284 | - m_BuildTarget: tvOS
285 | m_StaticBatching: 1
286 | m_DynamicBatching: 0
287 | - m_BuildTarget: Android
288 | m_StaticBatching: 1
289 | m_DynamicBatching: 0
290 | - m_BuildTarget: iPhone
291 | m_StaticBatching: 1
292 | m_DynamicBatching: 0
293 | - m_BuildTarget: WebGL
294 | m_StaticBatching: 0
295 | m_DynamicBatching: 0
296 | m_BuildTargetGraphicsAPIs:
297 | - m_BuildTarget: AndroidPlayer
298 | m_APIs: 150000000b000000
299 | m_Automatic: 0
300 | - m_BuildTarget: iOSSupport
301 | m_APIs: 10000000
302 | m_Automatic: 1
303 | - m_BuildTarget: AppleTVSupport
304 | m_APIs: 10000000
305 | m_Automatic: 0
306 | - m_BuildTarget: WebGLSupport
307 | m_APIs: 0b000000
308 | m_Automatic: 1
309 | m_BuildTargetVRSettings:
310 | - m_BuildTarget: Standalone
311 | m_Enabled: 0
312 | m_Devices:
313 | - Oculus
314 | - OpenVR
315 | openGLRequireES31: 0
316 | openGLRequireES31AEP: 0
317 | openGLRequireES32: 0
318 | vuforiaEnabled: 0
319 | m_TemplateCustomTags: {}
320 | mobileMTRendering:
321 | Android: 1
322 | iPhone: 1
323 | tvOS: 1
324 | m_BuildTargetGroupLightmapEncodingQuality: []
325 | m_BuildTargetGroupLightmapSettings: []
326 | playModeTestRunnerEnabled: 0
327 | runPlayModeTestAsEditModeTest: 0
328 | actionOnDotNetUnhandledException: 1
329 | enableInternalProfiler: 0
330 | logObjCUncaughtExceptions: 1
331 | enableCrashReportAPI: 0
332 | cameraUsageDescription:
333 | locationUsageDescription:
334 | microphoneUsageDescription:
335 | switchNetLibKey:
336 | switchSocketMemoryPoolSize: 6144
337 | switchSocketAllocatorPoolSize: 128
338 | switchSocketConcurrencyLimit: 14
339 | switchScreenResolutionBehavior: 2
340 | switchUseCPUProfiler: 0
341 | switchApplicationID: 0x01004b9000490000
342 | switchNSODependencies:
343 | switchTitleNames_0:
344 | switchTitleNames_1:
345 | switchTitleNames_2:
346 | switchTitleNames_3:
347 | switchTitleNames_4:
348 | switchTitleNames_5:
349 | switchTitleNames_6:
350 | switchTitleNames_7:
351 | switchTitleNames_8:
352 | switchTitleNames_9:
353 | switchTitleNames_10:
354 | switchTitleNames_11:
355 | switchTitleNames_12:
356 | switchTitleNames_13:
357 | switchTitleNames_14:
358 | switchPublisherNames_0:
359 | switchPublisherNames_1:
360 | switchPublisherNames_2:
361 | switchPublisherNames_3:
362 | switchPublisherNames_4:
363 | switchPublisherNames_5:
364 | switchPublisherNames_6:
365 | switchPublisherNames_7:
366 | switchPublisherNames_8:
367 | switchPublisherNames_9:
368 | switchPublisherNames_10:
369 | switchPublisherNames_11:
370 | switchPublisherNames_12:
371 | switchPublisherNames_13:
372 | switchPublisherNames_14:
373 | switchIcons_0: {fileID: 0}
374 | switchIcons_1: {fileID: 0}
375 | switchIcons_2: {fileID: 0}
376 | switchIcons_3: {fileID: 0}
377 | switchIcons_4: {fileID: 0}
378 | switchIcons_5: {fileID: 0}
379 | switchIcons_6: {fileID: 0}
380 | switchIcons_7: {fileID: 0}
381 | switchIcons_8: {fileID: 0}
382 | switchIcons_9: {fileID: 0}
383 | switchIcons_10: {fileID: 0}
384 | switchIcons_11: {fileID: 0}
385 | switchIcons_12: {fileID: 0}
386 | switchIcons_13: {fileID: 0}
387 | switchIcons_14: {fileID: 0}
388 | switchSmallIcons_0: {fileID: 0}
389 | switchSmallIcons_1: {fileID: 0}
390 | switchSmallIcons_2: {fileID: 0}
391 | switchSmallIcons_3: {fileID: 0}
392 | switchSmallIcons_4: {fileID: 0}
393 | switchSmallIcons_5: {fileID: 0}
394 | switchSmallIcons_6: {fileID: 0}
395 | switchSmallIcons_7: {fileID: 0}
396 | switchSmallIcons_8: {fileID: 0}
397 | switchSmallIcons_9: {fileID: 0}
398 | switchSmallIcons_10: {fileID: 0}
399 | switchSmallIcons_11: {fileID: 0}
400 | switchSmallIcons_12: {fileID: 0}
401 | switchSmallIcons_13: {fileID: 0}
402 | switchSmallIcons_14: {fileID: 0}
403 | switchManualHTML:
404 | switchAccessibleURLs:
405 | switchLegalInformation:
406 | switchMainThreadStackSize: 1048576
407 | switchPresenceGroupId:
408 | switchLogoHandling: 0
409 | switchReleaseVersion: 0
410 | switchDisplayVersion: 1.0.0
411 | switchStartupUserAccount: 0
412 | switchTouchScreenUsage: 0
413 | switchSupportedLanguagesMask: 0
414 | switchLogoType: 0
415 | switchApplicationErrorCodeCategory:
416 | switchUserAccountSaveDataSize: 0
417 | switchUserAccountSaveDataJournalSize: 0
418 | switchApplicationAttribute: 0
419 | switchCardSpecSize: -1
420 | switchCardSpecClock: -1
421 | switchRatingsMask: 0
422 | switchRatingsInt_0: 0
423 | switchRatingsInt_1: 0
424 | switchRatingsInt_2: 0
425 | switchRatingsInt_3: 0
426 | switchRatingsInt_4: 0
427 | switchRatingsInt_5: 0
428 | switchRatingsInt_6: 0
429 | switchRatingsInt_7: 0
430 | switchRatingsInt_8: 0
431 | switchRatingsInt_9: 0
432 | switchRatingsInt_10: 0
433 | switchRatingsInt_11: 0
434 | switchLocalCommunicationIds_0:
435 | switchLocalCommunicationIds_1:
436 | switchLocalCommunicationIds_2:
437 | switchLocalCommunicationIds_3:
438 | switchLocalCommunicationIds_4:
439 | switchLocalCommunicationIds_5:
440 | switchLocalCommunicationIds_6:
441 | switchLocalCommunicationIds_7:
442 | switchParentalControl: 0
443 | switchAllowsScreenshot: 1
444 | switchAllowsVideoCapturing: 1
445 | switchAllowsRuntimeAddOnContentInstall: 0
446 | switchDataLossConfirmation: 0
447 | switchUserAccountLockEnabled: 0
448 | switchSystemResourceMemory: 16777216
449 | switchSupportedNpadStyles: 22
450 | switchNativeFsCacheSize: 32
451 | switchIsHoldTypeHorizontal: 0
452 | switchSupportedNpadCount: 8
453 | switchSocketConfigEnabled: 0
454 | switchTcpInitialSendBufferSize: 32
455 | switchTcpInitialReceiveBufferSize: 64
456 | switchTcpAutoSendBufferSizeMax: 256
457 | switchTcpAutoReceiveBufferSizeMax: 256
458 | switchUdpSendBufferSize: 9
459 | switchUdpReceiveBufferSize: 42
460 | switchSocketBufferEfficiency: 4
461 | switchSocketInitializeEnabled: 1
462 | switchNetworkInterfaceManagerInitializeEnabled: 1
463 | switchPlayerConnectionEnabled: 1
464 | ps4NPAgeRating: 12
465 | ps4NPTitleSecret:
466 | ps4NPTrophyPackPath:
467 | ps4ParentalLevel: 11
468 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
469 | ps4Category: 0
470 | ps4MasterVersion: 01.00
471 | ps4AppVersion: 01.00
472 | ps4AppType: 0
473 | ps4ParamSfxPath:
474 | ps4VideoOutPixelFormat: 0
475 | ps4VideoOutInitialWidth: 1920
476 | ps4VideoOutBaseModeInitialWidth: 1920
477 | ps4VideoOutReprojectionRate: 60
478 | ps4PronunciationXMLPath:
479 | ps4PronunciationSIGPath:
480 | ps4BackgroundImagePath:
481 | ps4StartupImagePath:
482 | ps4StartupImagesFolder:
483 | ps4IconImagesFolder:
484 | ps4SaveDataImagePath:
485 | ps4SdkOverride:
486 | ps4BGMPath:
487 | ps4ShareFilePath:
488 | ps4ShareOverlayImagePath:
489 | ps4PrivacyGuardImagePath:
490 | ps4NPtitleDatPath:
491 | ps4RemotePlayKeyAssignment: -1
492 | ps4RemotePlayKeyMappingDir:
493 | ps4PlayTogetherPlayerCount: 0
494 | ps4EnterButtonAssignment: 1
495 | ps4ApplicationParam1: 0
496 | ps4ApplicationParam2: 0
497 | ps4ApplicationParam3: 0
498 | ps4ApplicationParam4: 0
499 | ps4DownloadDataSize: 0
500 | ps4GarlicHeapSize: 2048
501 | ps4ProGarlicHeapSize: 2560
502 | playerPrefsMaxSize: 32768
503 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
504 | ps4pnSessions: 1
505 | ps4pnPresence: 1
506 | ps4pnFriends: 1
507 | ps4pnGameCustomData: 1
508 | playerPrefsSupport: 0
509 | enableApplicationExit: 0
510 | resetTempFolder: 1
511 | restrictedAudioUsageRights: 0
512 | ps4UseResolutionFallback: 0
513 | ps4ReprojectionSupport: 0
514 | ps4UseAudio3dBackend: 0
515 | ps4SocialScreenEnabled: 0
516 | ps4ScriptOptimizationLevel: 0
517 | ps4Audio3dVirtualSpeakerCount: 14
518 | ps4attribCpuUsage: 0
519 | ps4PatchPkgPath:
520 | ps4PatchLatestPkgPath:
521 | ps4PatchChangeinfoPath:
522 | ps4PatchDayOne: 0
523 | ps4attribUserManagement: 0
524 | ps4attribMoveSupport: 0
525 | ps4attrib3DSupport: 0
526 | ps4attribShareSupport: 0
527 | ps4attribExclusiveVR: 0
528 | ps4disableAutoHideSplash: 0
529 | ps4videoRecordingFeaturesUsed: 0
530 | ps4contentSearchFeaturesUsed: 0
531 | ps4attribEyeToEyeDistanceSettingVR: 0
532 | ps4IncludedModules: []
533 | monoEnv:
534 | splashScreenBackgroundSourceLandscape: {fileID: 0}
535 | splashScreenBackgroundSourcePortrait: {fileID: 0}
536 | blurSplashScreenBackground: 1
537 | spritePackerPolicy:
538 | webGLMemorySize: 16
539 | webGLExceptionSupport: 1
540 | webGLNameFilesAsHashes: 0
541 | webGLDataCaching: 1
542 | webGLDebugSymbols: 0
543 | webGLEmscriptenArgs:
544 | webGLModulesDirectory:
545 | webGLTemplate: APPLICATION:Default
546 | webGLAnalyzeBuildSize: 0
547 | webGLUseEmbeddedResources: 0
548 | webGLCompressionFormat: 1
549 | webGLLinkerTarget: 1
550 | webGLThreadsSupport: 0
551 | webGLWasmStreaming: 0
552 | scriptingDefineSymbols: {}
553 | platformArchitecture: {}
554 | scriptingBackend: {}
555 | il2cppCompilerConfiguration: {}
556 | managedStrippingLevel: {}
557 | incrementalIl2cppBuild: {}
558 | allowUnsafeCode: 0
559 | additionalIl2CppArgs:
560 | scriptingRuntimeVersion: 1
561 | gcIncremental: 0
562 | gcWBarrierValidation: 0
563 | apiCompatibilityLevelPerPlatform: {}
564 | m_RenderingPath: 1
565 | m_MobileRenderingPath: 1
566 | metroPackageName: Template_3D
567 | metroPackageVersion:
568 | metroCertificatePath:
569 | metroCertificatePassword:
570 | metroCertificateSubject:
571 | metroCertificateIssuer:
572 | metroCertificateNotAfter: 0000000000000000
573 | metroApplicationDescription: Template_3D
574 | wsaImages: {}
575 | metroTileShortName:
576 | metroTileShowName: 0
577 | metroMediumTileShowName: 0
578 | metroLargeTileShowName: 0
579 | metroWideTileShowName: 0
580 | metroSupportStreamingInstall: 0
581 | metroLastRequiredScene: 0
582 | metroDefaultTileSize: 1
583 | metroTileForegroundText: 2
584 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
585 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
586 | a: 1}
587 | metroSplashScreenUseBackgroundColor: 0
588 | platformCapabilities: {}
589 | metroTargetDeviceFamilies: {}
590 | metroFTAName:
591 | metroFTAFileTypes: []
592 | metroProtocolName:
593 | XboxOneProductId:
594 | XboxOneUpdateKey:
595 | XboxOneSandboxId:
596 | XboxOneContentId:
597 | XboxOneTitleId:
598 | XboxOneSCId:
599 | XboxOneGameOsOverridePath:
600 | XboxOnePackagingOverridePath:
601 | XboxOneAppManifestOverridePath:
602 | XboxOneVersion: 1.0.0.0
603 | XboxOnePackageEncryption: 0
604 | XboxOnePackageUpdateGranularity: 2
605 | XboxOneDescription:
606 | XboxOneLanguage:
607 | - enus
608 | XboxOneCapability: []
609 | XboxOneGameRating: {}
610 | XboxOneIsContentPackage: 0
611 | XboxOneEnableGPUVariability: 1
612 | XboxOneSockets: {}
613 | XboxOneSplashScreen: {fileID: 0}
614 | XboxOneAllowedProductIds: []
615 | XboxOnePersistentLocalStorageSize: 0
616 | XboxOneXTitleMemory: 8
617 | xboxOneScriptCompiler: 1
618 | XboxOneOverrideIdentityName:
619 | vrEditorSettings:
620 | daydream:
621 | daydreamIconForeground: {fileID: 0}
622 | daydreamIconBackground: {fileID: 0}
623 | cloudServicesEnabled:
624 | UNet: 1
625 | luminIcon:
626 | m_Name:
627 | m_ModelFolderPath:
628 | m_PortalFolderPath:
629 | luminCert:
630 | m_CertPath:
631 | m_SignPackage: 1
632 | luminIsChannelApp: 0
633 | luminVersion:
634 | m_VersionCode: 1
635 | m_VersionName:
636 | facebookSdkVersion: 7.9.4
637 | facebookAppId:
638 | facebookCookies: 1
639 | facebookLogging: 1
640 | facebookStatus: 1
641 | facebookXfbml: 0
642 | facebookFrictionlessRequests: 1
643 | apiCompatibilityLevel: 6
644 | cloudProjectId:
645 | framebufferDepthMemorylessMode: 0
646 | projectName:
647 | organizationId:
648 | cloudEnabled: 0
649 | enableNativePlatformBackendsForNewInputSystem: 0
650 | disableOldInputManagerSupport: 0
651 | legacyClampBlendShapeWeights: 0
652 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2019.2.8f1
2 | m_EditorVersionWithRevision: 2019.2.8f1 (ff5b465c8d13)
3 |
--------------------------------------------------------------------------------
/ProjectSettings/QualitySettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!47 &1
4 | QualitySettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 5
7 | m_CurrentQuality: 5
8 | m_QualitySettings:
9 | - serializedVersion: 2
10 | name: Very Low
11 | pixelLightCount: 0
12 | shadows: 0
13 | shadowResolution: 0
14 | shadowProjection: 1
15 | shadowCascades: 1
16 | shadowDistance: 15
17 | shadowNearPlaneOffset: 3
18 | shadowCascade2Split: 0.33333334
19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
20 | shadowmaskMode: 0
21 | blendWeights: 1
22 | textureQuality: 1
23 | anisotropicTextures: 0
24 | antiAliasing: 0
25 | softParticles: 0
26 | softVegetation: 0
27 | realtimeReflectionProbes: 0
28 | billboardsFaceCameraPosition: 0
29 | vSyncCount: 0
30 | lodBias: 0.3
31 | maximumLODLevel: 0
32 | streamingMipmapsActive: 0
33 | streamingMipmapsAddAllCameras: 1
34 | streamingMipmapsMemoryBudget: 512
35 | streamingMipmapsRenderersPerFrame: 512
36 | streamingMipmapsMaxLevelReduction: 2
37 | streamingMipmapsMaxFileIORequests: 1024
38 | particleRaycastBudget: 4
39 | asyncUploadTimeSlice: 2
40 | asyncUploadBufferSize: 16
41 | asyncUploadPersistentBuffer: 1
42 | resolutionScalingFixedDPIFactor: 1
43 | excludedTargetPlatforms: []
44 | - serializedVersion: 2
45 | name: Low
46 | pixelLightCount: 0
47 | shadows: 0
48 | shadowResolution: 0
49 | shadowProjection: 1
50 | shadowCascades: 1
51 | shadowDistance: 20
52 | shadowNearPlaneOffset: 3
53 | shadowCascade2Split: 0.33333334
54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
55 | shadowmaskMode: 0
56 | blendWeights: 2
57 | textureQuality: 0
58 | anisotropicTextures: 0
59 | antiAliasing: 0
60 | softParticles: 0
61 | softVegetation: 0
62 | realtimeReflectionProbes: 0
63 | billboardsFaceCameraPosition: 0
64 | vSyncCount: 0
65 | lodBias: 0.4
66 | maximumLODLevel: 0
67 | streamingMipmapsActive: 0
68 | streamingMipmapsAddAllCameras: 1
69 | streamingMipmapsMemoryBudget: 512
70 | streamingMipmapsRenderersPerFrame: 512
71 | streamingMipmapsMaxLevelReduction: 2
72 | streamingMipmapsMaxFileIORequests: 1024
73 | particleRaycastBudget: 16
74 | asyncUploadTimeSlice: 2
75 | asyncUploadBufferSize: 16
76 | asyncUploadPersistentBuffer: 1
77 | resolutionScalingFixedDPIFactor: 1
78 | excludedTargetPlatforms: []
79 | - serializedVersion: 2
80 | name: Medium
81 | pixelLightCount: 1
82 | shadows: 1
83 | shadowResolution: 0
84 | shadowProjection: 1
85 | shadowCascades: 1
86 | shadowDistance: 20
87 | shadowNearPlaneOffset: 3
88 | shadowCascade2Split: 0.33333334
89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
90 | shadowmaskMode: 0
91 | blendWeights: 2
92 | textureQuality: 0
93 | anisotropicTextures: 1
94 | antiAliasing: 0
95 | softParticles: 0
96 | softVegetation: 0
97 | realtimeReflectionProbes: 0
98 | billboardsFaceCameraPosition: 0
99 | vSyncCount: 1
100 | lodBias: 0.7
101 | maximumLODLevel: 0
102 | streamingMipmapsActive: 0
103 | streamingMipmapsAddAllCameras: 1
104 | streamingMipmapsMemoryBudget: 512
105 | streamingMipmapsRenderersPerFrame: 512
106 | streamingMipmapsMaxLevelReduction: 2
107 | streamingMipmapsMaxFileIORequests: 1024
108 | particleRaycastBudget: 64
109 | asyncUploadTimeSlice: 2
110 | asyncUploadBufferSize: 16
111 | asyncUploadPersistentBuffer: 1
112 | resolutionScalingFixedDPIFactor: 1
113 | excludedTargetPlatforms: []
114 | - serializedVersion: 2
115 | name: High
116 | pixelLightCount: 2
117 | shadows: 2
118 | shadowResolution: 1
119 | shadowProjection: 1
120 | shadowCascades: 2
121 | shadowDistance: 40
122 | shadowNearPlaneOffset: 3
123 | shadowCascade2Split: 0.33333334
124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
125 | shadowmaskMode: 1
126 | blendWeights: 2
127 | textureQuality: 0
128 | anisotropicTextures: 1
129 | antiAliasing: 0
130 | softParticles: 0
131 | softVegetation: 1
132 | realtimeReflectionProbes: 1
133 | billboardsFaceCameraPosition: 1
134 | vSyncCount: 1
135 | lodBias: 1
136 | maximumLODLevel: 0
137 | streamingMipmapsActive: 0
138 | streamingMipmapsAddAllCameras: 1
139 | streamingMipmapsMemoryBudget: 512
140 | streamingMipmapsRenderersPerFrame: 512
141 | streamingMipmapsMaxLevelReduction: 2
142 | streamingMipmapsMaxFileIORequests: 1024
143 | particleRaycastBudget: 256
144 | asyncUploadTimeSlice: 2
145 | asyncUploadBufferSize: 16
146 | asyncUploadPersistentBuffer: 1
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Very High
151 | pixelLightCount: 3
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 2
156 | shadowDistance: 70
157 | shadowNearPlaneOffset: 3
158 | shadowCascade2Split: 0.33333334
159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
160 | shadowmaskMode: 1
161 | blendWeights: 4
162 | textureQuality: 0
163 | anisotropicTextures: 2
164 | antiAliasing: 2
165 | softParticles: 1
166 | softVegetation: 1
167 | realtimeReflectionProbes: 1
168 | billboardsFaceCameraPosition: 1
169 | vSyncCount: 1
170 | lodBias: 1.5
171 | maximumLODLevel: 0
172 | streamingMipmapsActive: 0
173 | streamingMipmapsAddAllCameras: 1
174 | streamingMipmapsMemoryBudget: 512
175 | streamingMipmapsRenderersPerFrame: 512
176 | streamingMipmapsMaxLevelReduction: 2
177 | streamingMipmapsMaxFileIORequests: 1024
178 | particleRaycastBudget: 1024
179 | asyncUploadTimeSlice: 2
180 | asyncUploadBufferSize: 16
181 | asyncUploadPersistentBuffer: 1
182 | resolutionScalingFixedDPIFactor: 1
183 | excludedTargetPlatforms: []
184 | - serializedVersion: 2
185 | name: Ultra
186 | pixelLightCount: 4
187 | shadows: 2
188 | shadowResolution: 2
189 | shadowProjection: 1
190 | shadowCascades: 4
191 | shadowDistance: 150
192 | shadowNearPlaneOffset: 3
193 | shadowCascade2Split: 0.33333334
194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
195 | shadowmaskMode: 1
196 | blendWeights: 4
197 | textureQuality: 0
198 | anisotropicTextures: 2
199 | antiAliasing: 2
200 | softParticles: 1
201 | softVegetation: 1
202 | realtimeReflectionProbes: 1
203 | billboardsFaceCameraPosition: 1
204 | vSyncCount: 1
205 | lodBias: 2
206 | maximumLODLevel: 0
207 | streamingMipmapsActive: 0
208 | streamingMipmapsAddAllCameras: 1
209 | streamingMipmapsMemoryBudget: 512
210 | streamingMipmapsRenderersPerFrame: 512
211 | streamingMipmapsMaxLevelReduction: 2
212 | streamingMipmapsMaxFileIORequests: 1024
213 | particleRaycastBudget: 4096
214 | asyncUploadTimeSlice: 2
215 | asyncUploadBufferSize: 16
216 | asyncUploadPersistentBuffer: 1
217 | resolutionScalingFixedDPIFactor: 1
218 | excludedTargetPlatforms: []
219 | m_PerPlatformDefaultQuality:
220 | Android: 2
221 | Lumin: 5
222 | Nintendo 3DS: 5
223 | Nintendo Switch: 5
224 | PS4: 5
225 | PSP2: 2
226 | Standalone: 5
227 | WebGL: 3
228 | Windows Store Apps: 5
229 | XboxOne: 5
230 | iPhone: 2
231 | tvOS: 2
232 |
--------------------------------------------------------------------------------
/ProjectSettings/TagManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!78 &1
4 | TagManager:
5 | serializedVersion: 2
6 | tags: []
7 | layers:
8 | - Default
9 | - TransparentFX
10 | - Ignore Raycast
11 | -
12 | - Water
13 | - UI
14 | -
15 | -
16 | -
17 | -
18 | -
19 | -
20 | -
21 | -
22 | -
23 | -
24 | -
25 | -
26 | -
27 | -
28 | -
29 | -
30 | -
31 | -
32 | -
33 | -
34 | -
35 | -
36 | -
37 | -
38 | -
39 | -
40 | m_SortingLayers:
41 | - name: Default
42 | uniqueID: 0
43 | locked: 0
44 |
--------------------------------------------------------------------------------
/ProjectSettings/TimeManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!5 &1
4 | TimeManager:
5 | m_ObjectHideFlags: 0
6 | Fixed Timestep: 0.02
7 | Maximum Allowed Timestep: 0.33333334
8 | m_TimeScale: 1
9 | Maximum Particle Timestep: 0.03
10 |
--------------------------------------------------------------------------------
/ProjectSettings/UnityConnectSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!310 &1
4 | UnityConnectSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 1
7 | m_Enabled: 0
8 | m_TestMode: 0
9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events
10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events
11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com
12 | m_TestInitMode: 0
13 | CrashReportingSettings:
14 | m_EventUrl: https://perf-events.cloud.unity3d.com
15 | m_Enabled: 0
16 | m_LogBufferSize: 10
17 | m_CaptureEditorExceptions: 1
18 | UnityPurchasingSettings:
19 | m_Enabled: 0
20 | m_TestMode: 0
21 | UnityAnalyticsSettings:
22 | m_Enabled: 0
23 | m_TestMode: 0
24 | m_InitializeOnStartup: 1
25 | UnityAdsSettings:
26 | m_Enabled: 0
27 | m_InitializeOnStartup: 1
28 | m_TestMode: 0
29 | m_IosGameId:
30 | m_AndroidGameId:
31 | m_GameIds: {}
32 | m_GameId:
33 | PerformanceReportingSettings:
34 | m_Enabled: 0
35 |
--------------------------------------------------------------------------------
/ProjectSettings/VFXManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!937362698 &1
4 | VFXManager:
5 | m_ObjectHideFlags: 0
6 | m_IndirectShader: {fileID: 0}
7 | m_CopyBufferShader: {fileID: 0}
8 | m_SortShader: {fileID: 0}
9 | m_RenderPipeSettingsPath:
10 | m_FixedTimeStep: 0.016666668
11 | m_MaxDeltaTime: 0.05
12 |
--------------------------------------------------------------------------------
/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 | # ComputeShaderSpline
2 | Generate spline with compute shader
3 |
4 | Include:
5 |
6 | - Catmull-Rom
7 | - Bezier
8 | - Quadratic B-spline
9 | - Cubic B-spline
10 |
--------------------------------------------------------------------------------