├── .gitignore
├── Assets
├── Scripts.meta
├── Scripts
│ ├── Common.meta
│ ├── Common
│ │ ├── Native.meta
│ │ ├── Native
│ │ │ ├── ListExtensions.cs
│ │ │ ├── ListExtensions.cs.meta
│ │ │ ├── NativeUnit.cs
│ │ │ └── NativeUnit.cs.meta
│ │ ├── Utility.meta
│ │ └── Utility
│ │ │ ├── BatchSystem.cs
│ │ │ ├── BatchSystem.cs.meta
│ │ │ ├── NoAllocHelpers.cs
│ │ │ └── NoAllocHelpers.cs.meta
│ ├── MeshDemo.asmdef
│ ├── MeshDemo.asmdef.meta
│ ├── Systems.meta
│ └── Systems
│ │ ├── Mesh.meta
│ │ └── Mesh
│ │ ├── Components.cs
│ │ ├── Components.cs.meta
│ │ ├── MeshSystem.cs
│ │ └── MeshSystem.cs.meta
├── _Demo.meta
└── _Demo
│ ├── BlockModel.cs
│ ├── BlockModel.cs.meta
│ ├── Bootstrap.cs
│ ├── Bootstrap.cs.meta
│ ├── MeshManipulation.cs
│ ├── MeshManipulation.cs.meta
│ ├── Scenes.meta
│ └── Scenes
│ ├── SampleScene.unity
│ └── SampleScene.unity.meta
├── Logs
└── Packages-Update.log
├── Packages
└── manifest.json
└── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── NetworkManager.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── ProjectVersion.txt
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
└── VFXManager.asset
/.gitignore:
--------------------------------------------------------------------------------
1 | [Ll]ibrary/
2 | [Tt]emp/
3 | [Oo]bj/
4 | [Bb]uild/
5 | [Bb]uilds/
6 | Assets/AssetStoreTools*
7 |
8 | # Visual Studio cache directory
9 | .vs/
10 |
11 | # Autogenerated VS/MD/Consulo solution and project files
12 | ExportedObj/
13 | .consulo/
14 | *.csproj
15 | *.unityproj
16 | *.sln
17 | *.suo
18 | *.tmp
19 | *.user
20 | *.userprefs
21 | *.pidb
22 | *.booproj
23 | *.svd
24 | *.pdb
25 | *.opendb
26 |
27 | # Unity3D generated meta files
28 | *.pidb.meta
29 | *.pdb.meta
30 |
31 | # Unity3D Generated File On Crash Reports
32 | sysinfo.txt
33 |
34 | # Builds
35 | *.apk
36 | *.unitypackage
37 |
--------------------------------------------------------------------------------
/Assets/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a03a8f2d421ea2b4ca570642216a2655
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Common.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 702914808b1b35245a2547b41b8a4b19
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Native.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c8a9fcd53864e934085d1d077e5adc14
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Native/ListExtensions.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Common.Native
6 | {
7 | using System;
8 | using System.Collections.Generic;
9 | using System.Linq;
10 | using BovineLabs.Common.Utility;
11 | using Unity.Collections;
12 | using Unity.Collections.LowLevel.Unsafe;
13 | using Unity.Entities;
14 |
15 | ///
16 | /// Extensions for Native Containers.
17 | ///
18 | public static class Extensions
19 | {
20 | ///
21 | /// Adds a native version of .
22 | ///
23 | /// The type.
24 | /// The to add to.
25 | /// The native array to add to the list.
26 | public static void AddRange(this List list, NativeArray array)
27 | where T : struct
28 | {
29 | AddRange(list, array, array.Length);
30 | }
31 |
32 | ///
33 | /// Adds a native version of .
34 | ///
35 | /// The type.
36 | /// The to add to.
37 | /// The array to add to the list.
38 | /// The length of the array to add to the list.
39 | public static unsafe void AddRange(this List list, NativeArray array, int length)
40 | where T : struct
41 | {
42 | list.AddRange(array.GetUnsafeReadOnlyPtr(), length);
43 | }
44 |
45 | ///
46 | /// Adds a native version of .
47 | ///
48 | /// The type.
49 | /// The to add to.
50 | /// The native list to add to the list.
51 | public static unsafe void AddRange(this List list, NativeList nativeList)
52 | where T : struct
53 | {
54 | list.AddRange(nativeList.GetUnsafePtr(), nativeList.Length);
55 | }
56 |
57 | ///
58 | /// Adds a native version of .
59 | ///
60 | /// The type.
61 | /// The to add to.
62 | /// The array to add to the list.
63 | public static unsafe void AddRange(this List list, NativeSlice nativeSlice)
64 | where T : struct
65 | {
66 | list.AddRange(nativeSlice.GetUnsafeReadOnlyPtr(), nativeSlice.Length);
67 | }
68 |
69 | ///
70 | /// Adds a native version of .
71 | ///
72 | /// The type.
73 | /// The to add to.
74 | /// The dynamic buffer to add to the list.
75 | public static unsafe void AddRange(this List list, DynamicBuffer dynamicBuffer)
76 | where T : struct
77 | {
78 | list.AddRange(dynamicBuffer.GetUnsafePtr(), dynamicBuffer.Length);
79 | }
80 |
81 | ///
82 | /// Adds a range of values to a list using a buffer;
83 | ///
84 | /// The type.
85 | /// The list to add the values to.
86 | /// The buffer to add from.
87 | /// The length of the buffer.
88 | public static unsafe void AddRange(this List list, void* arrayBuffer, int length)
89 | where T : struct
90 | {
91 | var index = list.Count;
92 | var newLength = index + length;
93 |
94 | // Resize our list if we require
95 | if (list.Capacity < newLength)
96 | {
97 | list.Capacity = newLength;
98 | }
99 |
100 | var items = NoAllocHelpers.ExtractArrayFromListT(list);
101 | var size = UnsafeUtility.SizeOf();
102 |
103 | // Get the pointer to the end of the list
104 | var bufferStart = (IntPtr)UnsafeUtility.AddressOf(ref items[0]);
105 | var buffer = (byte*)(bufferStart + (size * index));
106 |
107 | UnsafeUtility.MemCpy(buffer, arrayBuffer, length * (long)size);
108 |
109 | NoAllocHelpers.ResizeList(list, newLength);
110 | }
111 |
112 |
113 | public static void Resize(this List list, int sz, T c = default)
114 | {
115 | int cur = list.Count;
116 |
117 | if (sz < cur)
118 | {
119 | list.RemoveRange(sz, cur - sz);
120 | }
121 | else if (sz > cur)
122 | {
123 | list.AddRange(Enumerable.Repeat(c, sz - cur));
124 | }
125 | }
126 |
127 | public static void EnsureLength(this List list, int sz, T c = default)
128 | {
129 | int cur = list.Count;
130 |
131 | if (sz > cur)
132 | {
133 | list.AddRange(Enumerable.Repeat(c, sz - cur));
134 | }
135 | }
136 | }
137 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Native/ListExtensions.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2a8f5c97ab5f4313b90473edc94a8d42
3 | timeCreated: 1532670298
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Native/NativeUnit.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Common.Native
6 | {
7 | using System;
8 |
9 | using Unity.Burst;
10 | using Unity.Collections;
11 | using Unity.Collections.LowLevel.Unsafe;
12 |
13 | ///
14 | /// A single value native container to allow values to be passed between jobs.
15 | ///
16 | /// The type of the .
17 | [NativeContainerSupportsDeallocateOnJobCompletion]
18 | [NativeContainer]
19 | public unsafe struct NativeUnit : IDisposable
20 | where T : struct
21 | {
22 | [NativeDisableUnsafePtrRestriction]
23 | private void* m_Buffer;
24 |
25 | private Allocator m_AllocatorLabel;
26 |
27 | #if ENABLE_UNITY_COLLECTIONS_CHECKS
28 | private AtomicSafetyHandle m_Safety;
29 |
30 | [NativeSetClassTypeToNullOnSchedule]
31 | private DisposeSentinel m_DisposeSentinel;
32 | #endif
33 |
34 | ///
35 | /// Initializes a new instance of the struct.
36 | ///
37 | /// The of the .
38 | /// The default memory state.
39 | public NativeUnit(Allocator allocator, NativeArrayOptions options = NativeArrayOptions.ClearMemory)
40 | {
41 | if (allocator <= Allocator.None)
42 | {
43 | throw new ArgumentException("Allocator must be Temp, TempJob or Persistent", nameof(allocator));
44 | }
45 |
46 | IsBlittableAndThrow();
47 |
48 | var size = UnsafeUtility.SizeOf();
49 | this.m_Buffer = UnsafeUtility.Malloc(size, UnsafeUtility.AlignOf(), allocator);
50 | this.m_AllocatorLabel = allocator;
51 |
52 | #if ENABLE_UNITY_COLLECTIONS_CHECKS
53 | DisposeSentinel.Create(out this.m_Safety, out this.m_DisposeSentinel, 1, allocator);
54 | #endif
55 |
56 | if ((options & NativeArrayOptions.ClearMemory) == NativeArrayOptions.ClearMemory)
57 | {
58 | UnsafeUtility.MemClear(this.m_Buffer, UnsafeUtility.SizeOf());
59 | }
60 | }
61 |
62 | ///
63 | /// Gets or sets the value of the unit.
64 | ///
65 | public T Value
66 | {
67 | get
68 | {
69 | #if ENABLE_UNITY_COLLECTIONS_CHECKS
70 | AtomicSafetyHandle.CheckReadAndThrow(this.m_Safety);
71 | #endif
72 | return UnsafeUtility.ReadArrayElement(this.m_Buffer, 0);
73 | }
74 |
75 | [WriteAccessRequired]
76 | set
77 | {
78 | #if ENABLE_UNITY_COLLECTIONS_CHECKS
79 | AtomicSafetyHandle.CheckWriteAndThrow(this.m_Safety);
80 | #endif
81 | UnsafeUtility.WriteArrayElement(this.m_Buffer, 0, value);
82 | }
83 | }
84 |
85 | ///
86 | /// Gets a value indicating whether the has been initialized.
87 | ///
88 | public bool IsCreated => (IntPtr)this.m_Buffer != IntPtr.Zero;
89 |
90 | ///
91 | [WriteAccessRequired]
92 | public void Dispose()
93 | {
94 | if (!UnsafeUtility.IsValidAllocator(this.m_AllocatorLabel))
95 | {
96 | throw new InvalidOperationException(
97 | "The NativeArray can not be Disposed because it was not allocated with a valid allocator.");
98 | }
99 |
100 | #if ENABLE_UNITY_COLLECTIONS_CHECKS
101 | DisposeSentinel.Dispose(ref this.m_Safety, ref this.m_DisposeSentinel);
102 | #endif
103 | UnsafeUtility.Free(this.m_Buffer, this.m_AllocatorLabel);
104 | this.m_Buffer = null;
105 | }
106 |
107 | [BurstDiscard]
108 | private static void IsBlittableAndThrow()
109 | {
110 | if (!UnsafeUtility.IsBlittable())
111 | {
112 | throw new ArgumentException($"{typeof(T)} used in NativeArray<{typeof(T)}> must be blittable");
113 | }
114 | }
115 | }
116 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Native/NativeUnit.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 05754dcf85144d5fbb0042cf2a1337c3
3 | timeCreated: 1533701124
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Utility.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 072707e7726c00646b601281524bee3b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Utility/BatchSystem.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Common.Utility
6 | {
7 | using System;
8 | using System.Collections.Generic;
9 | using BovineLabs.Common.Native;
10 | using Unity.Burst;
11 | using Unity.Collections;
12 | using Unity.Entities;
13 | using Unity.Jobs;
14 |
15 | ///
16 | /// The BatchBarrierSystem.
17 | ///
18 | public sealed class BatchSystem : ComponentSystem
19 | {
20 | private readonly Dictionary types = new Dictionary();
21 |
22 | private readonly List> destroyBatch = new List>();
23 |
24 | private interface IEventBatch : IDisposable
25 | {
26 | void Update(EntityManager entityManager);
27 | }
28 |
29 | ///
30 | /// Any component added to the returned will be attached to a new entity as an event.
31 | /// These entities will be destroyed after 1 frame.
32 | ///
33 | /// The type of component data event.
34 | /// A which any component that is added will be turned into a single frame event.
35 | public NativeQueue GetEventBatch()
36 | where T : struct, IComponentData
37 | {
38 | if (!this.types.TryGetValue(typeof(T), out var create))
39 | {
40 | create = this.types[typeof(T)] = new EventBatch();
41 | }
42 |
43 | return ((EventBatch)create).GetNew();
44 | }
45 |
46 | public NativeQueue GetDestroyBatch()
47 | {
48 | var queue = new NativeQueue(Allocator.TempJob);
49 | this.destroyBatch.Add(queue);
50 | return queue;
51 | }
52 |
53 | ///
54 | protected override void OnDestroyManager()
55 | {
56 | foreach (var t in this.types)
57 | {
58 | t.Value.Dispose();
59 | }
60 |
61 | this.types.Clear();
62 | }
63 |
64 | ///
65 | protected override void OnUpdate()
66 | {
67 | this.DestroyEntities();
68 |
69 | foreach (var t in this.types)
70 | {
71 | t.Value.Update(this.EntityManager);
72 | }
73 | }
74 |
75 | private void DestroyEntities()
76 | {
77 | var count = 0;
78 |
79 | foreach (var s in this.destroyBatch)
80 | {
81 | count += s.Count;
82 | }
83 |
84 | if (count == 0)
85 | {
86 | return;
87 | }
88 |
89 | var array = new NativeArray(count, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
90 |
91 | int index = 0;
92 |
93 | foreach (var destroy in this.destroyBatch)
94 | {
95 | while (destroy.TryDequeue(out var entity))
96 | {
97 | array[index++] = entity;
98 | }
99 |
100 | destroy.Dispose();
101 | }
102 |
103 | this.destroyBatch.Clear();
104 |
105 | this.EntityManager.DestroyEntity(array);
106 | array.Dispose();
107 | }
108 |
109 | private class EventBatch : IEventBatch
110 | where T : struct, IComponentData
111 | {
112 | private readonly List> queues = new List>();
113 | private readonly EntityArchetypeQuery query;
114 |
115 | private EntityArchetype archetype;
116 | private NativeArray entities;
117 |
118 | public EventBatch()
119 | {
120 | this.query = new EntityArchetypeQuery
121 | {
122 | Any = Array.Empty(),
123 | None = Array.Empty(),
124 | All = new[] { ComponentType.Create() },
125 | };
126 | }
127 |
128 | public NativeQueue GetNew()
129 | {
130 | // Having allocation leak warnings when using TempJob
131 | var queue = new NativeQueue(Allocator.Persistent);
132 | this.queues.Add(queue);
133 | return queue;
134 | }
135 |
136 | ///
137 | public void Update(EntityManager entityManager)
138 | {
139 | if (this.entities.IsCreated)
140 | {
141 | entityManager.DestroyEntity(this.entities);
142 | this.entities.Dispose();
143 | }
144 |
145 | var count = this.GetCount();
146 |
147 | if (count == 0)
148 | {
149 | return;
150 | }
151 |
152 | // Felt like Temp should be the allocator but gets disposed for some reason.
153 | this.entities = new NativeArray(count, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
154 |
155 | if (!this.archetype.Valid)
156 | {
157 | this.archetype = entityManager.CreateArchetype(typeof(T));
158 | }
159 |
160 | entityManager.CreateEntity(this.archetype, this.entities);
161 |
162 | JobHandle handle = default;
163 |
164 | var chunkIndex = new NativeUnit(Allocator.TempJob);
165 | var entityIndex = new NativeUnit(Allocator.TempJob);
166 |
167 | var componentType = entityManager.GetArchetypeChunkComponentType(false);
168 |
169 | var chunks = entityManager.CreateArchetypeChunkArray(this.query, Allocator.TempJob);
170 |
171 | foreach (var queue in this.queues)
172 | {
173 | handle = new SetJob
174 | {
175 | Chunks = chunks,
176 | Queue = queue,
177 | ChunkIndex = chunkIndex,
178 | EntityIndex = entityIndex,
179 | ComponentType = componentType,
180 | }
181 | .Schedule(handle);
182 | }
183 |
184 | handle.Complete();
185 |
186 | chunks.Dispose();
187 | chunkIndex.Dispose();
188 | entityIndex.Dispose();
189 |
190 | foreach (var queue in this.queues)
191 | {
192 | queue.Dispose();
193 | }
194 |
195 | this.queues.Clear();
196 | }
197 |
198 | public void Dispose()
199 | {
200 | if (this.entities.IsCreated)
201 | {
202 | this.entities.Dispose();
203 | }
204 |
205 | foreach (var queue in this.queues)
206 | {
207 | queue.Dispose();
208 | }
209 | this.queues.Clear();
210 | }
211 |
212 | private int GetCount()
213 | {
214 | var sum = 0;
215 | foreach (var i in this.queues)
216 | {
217 | sum += i.Count;
218 | }
219 |
220 | return sum;
221 | }
222 |
223 |
224 | [BurstCompile]
225 | private struct SetJob : IJob
226 | {
227 | public NativeQueue Queue;
228 |
229 | public NativeArray Chunks;
230 |
231 | public NativeUnit ChunkIndex;
232 |
233 | public NativeUnit EntityIndex;
234 |
235 | public ArchetypeChunkComponentType ComponentType;
236 |
237 | ///
238 | public void Execute()
239 | {
240 | for (; this.ChunkIndex.Value < this.Chunks.Length; this.ChunkIndex.Value++)
241 | {
242 | var chunk = this.Chunks[this.ChunkIndex.Value];
243 |
244 | var components = chunk.GetNativeArray(this.ComponentType);
245 |
246 | var intLocalIndex = this.EntityIndex.Value;
247 |
248 | while (this.Queue.TryDequeue(out var item) && intLocalIndex < components.Length)
249 | {
250 | components[intLocalIndex++] = item;
251 | }
252 |
253 | this.EntityIndex.Value = intLocalIndex < components.Length ? intLocalIndex : 0;
254 | }
255 | }
256 | }
257 | }
258 | }
259 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Utility/BatchSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2f226f331f094cf489708953e658238a
3 | timeCreated: 1544053799
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Utility/NoAllocHelpers.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Common.Utility
6 | {
7 | using System;
8 | using System.Collections.Generic;
9 | using System.Reflection;
10 |
11 | using UnityEngine;
12 |
13 | ///
14 | /// Provides access to the internal UnityEngine.NoAllocHelpers methods.
15 | ///
16 | public static class NoAllocHelpers
17 | {
18 | private static readonly Dictionary ExtractArrayFromListTDelegates = new Dictionary();
19 | private static readonly Dictionary ResizeListDelegates = new Dictionary();
20 |
21 | ///
22 | /// Extract the internal array from a list.
23 | ///
24 | /// .
25 | /// The to extract from.
26 | /// The internal array of the list.
27 | public static T[] ExtractArrayFromListT(List list)
28 | {
29 | if (!ExtractArrayFromListTDelegates.TryGetValue(typeof(T), out var obj))
30 | {
31 | var ass = Assembly.GetAssembly(typeof(Mesh)); // any class in UnityEngine
32 | var type = ass.GetType("UnityEngine.NoAllocHelpers");
33 | var methodInfo = type.GetMethod("ExtractArrayFromListT", BindingFlags.Static | BindingFlags.Public)
34 | .MakeGenericMethod(typeof(T));
35 |
36 | obj = ExtractArrayFromListTDelegates[typeof(T)] = Delegate.CreateDelegate(typeof(Func, T[]>), methodInfo);
37 | }
38 |
39 | var func = (Func, T[]>)obj;
40 | return func.Invoke(list);
41 | }
42 |
43 | ///
44 | /// Resize a list.
45 | ///
46 | /// .
47 | /// The to resize.
48 | /// The new length of the .
49 | public static void ResizeList(List list, int size)
50 | {
51 | if (!ResizeListDelegates.TryGetValue(typeof(T), out var obj))
52 | {
53 | var ass = Assembly.GetAssembly(typeof(Mesh)); // any class in UnityEngine
54 | var type = ass.GetType("UnityEngine.NoAllocHelpers");
55 | var methodInfo = type.GetMethod("ResizeList", BindingFlags.Static | BindingFlags.Public)
56 | .MakeGenericMethod(typeof(T));
57 | obj = ResizeListDelegates[typeof(T)] =
58 | Delegate.CreateDelegate(typeof(Action, int>), methodInfo);
59 | }
60 |
61 | var action = (Action, int>)obj;
62 | action.Invoke(list, size);
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/Assets/Scripts/Common/Utility/NoAllocHelpers.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b37d9bd10bf31244990c79c6d5bb5cf3
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/MeshDemo.asmdef:
--------------------------------------------------------------------------------
1 | {
2 | "name": "MeshDemo",
3 | "references": [
4 | "Unity.Entities",
5 | "Unity.Entities.Hybrid",
6 | "Unity.Mathematics",
7 | "Unity.Burst",
8 | "Unity.Collections",
9 | "Unity.Rendering.Hybrid"
10 | ],
11 | "optionalUnityReferences": [],
12 | "includePlatforms": [],
13 | "excludePlatforms": [],
14 | "allowUnsafeCode": true,
15 | "overrideReferences": false,
16 | "precompiledReferences": [],
17 | "autoReferenced": true,
18 | "defineConstraints": []
19 | }
--------------------------------------------------------------------------------
/Assets/Scripts/MeshDemo.asmdef.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: aa5fc2aa156e1fc499e8f64b6b6c6991
3 | AssemblyDefinitionImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/Scripts/Systems.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 5f0677d1d3f0a6e4f83d14952f81caf1
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Systems/Mesh.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7da18daa500f1644293b9915384e723b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/Scripts/Systems/Mesh/Components.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 | //
5 | // Components to define a mesh
6 | //
7 |
8 | namespace BovineLabs.Systems.Mesh
9 | {
10 | using Unity.Entities;
11 | using Unity.Mathematics;
12 |
13 | ///
14 | /// The buffer of mesh vertices.
15 | ///
16 | [InternalBufferCapacity(0)]
17 | public struct Vertex : IBufferElementData
18 | {
19 | ///
20 | /// The Vertex.
21 | ///
22 | public float3 Value;
23 | }
24 |
25 | ///
26 | /// The buffer of mesh uvs.
27 | ///
28 | [InternalBufferCapacity(0)]
29 | public struct Uv : IBufferElementData
30 | {
31 | ///
32 | /// The uv.
33 | ///
34 | public float3 Value;
35 | }
36 |
37 | ///
38 | /// The buffer of mesh normals.
39 | ///
40 | [InternalBufferCapacity(0)]
41 | public struct Normal : IBufferElementData
42 | {
43 | ///
44 | /// The normal.
45 | ///
46 | public float3 Value;
47 | }
48 |
49 | ///
50 | /// The buffer of mesh triangles.
51 | ///
52 | [InternalBufferCapacity(0)]
53 | public struct Triangle : IBufferElementData
54 | {
55 | ///
56 | /// The triangle.
57 | ///
58 | public int Value;
59 | }
60 |
61 | ///
62 | /// Component tag that marks a mesh as being dirty and requiring an update.
63 | ///
64 | public struct MeshDirty : IComponentData
65 | {
66 | public Entity Entity;
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/Assets/Scripts/Systems/Mesh/Components.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fdeade513b223fc4182d4230a8b7f4a2
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/Scripts/Systems/Mesh/MeshSystem.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Systems.Mesh
6 | {
7 | using System.Collections.Generic;
8 | using BovineLabs.Common.Native;
9 | using Unity.Burst;
10 | using Unity.Collections;
11 | using Unity.Entities;
12 | using Unity.Rendering;
13 | using UnityEngine;
14 |
15 | ///
16 | /// Updates a mesh.
17 | ///
18 | public class MeshSystem : ComponentSystem
19 | {
20 | private readonly List verticesList = new List();
21 | private readonly List normalsList = new List();
22 | private readonly List uvsList = new List();
23 | private readonly List trianglesList = new List();
24 |
25 | private readonly HashSet entitySet = new HashSet();
26 | private ComponentGroup meshDirtyQuery;
27 |
28 | ///
29 | protected override void OnCreateManager()
30 | {
31 | this.meshDirtyQuery = this.GetComponentGroup(new EntityArchetypeQuery
32 | {
33 | All = new[] { ComponentType.ReadOnly(), }
34 | });
35 | }
36 |
37 | ///
38 | protected override void OnUpdate()
39 | {
40 | this.entitySet.Clear();
41 |
42 | var meshDirtyType = this.GetArchetypeChunkComponentType(true);
43 |
44 | var chunks = this.meshDirtyQuery.CreateArchetypeChunkArray(Allocator.TempJob);
45 |
46 | for(var chunkIndex = 0; chunkIndex < chunks.Length; chunkIndex++)
47 | {
48 | var chunk = chunks[chunkIndex];
49 | var meshDirty = chunk.GetNativeArray(meshDirtyType);
50 |
51 | for (var index = 0; index < chunk.Count; index++)
52 | {
53 | var entity = meshDirty[index].Entity;
54 |
55 | // Already updated this entity this frame
56 | if (!this.entitySet.Add(entity))
57 | {
58 | continue;
59 | }
60 |
61 | Mesh mesh;
62 |
63 | if (this.EntityManager.HasComponent(entity))
64 | {
65 | var meshInstanceRenderer =
66 | this.EntityManager.GetSharedComponentData(entity);
67 | mesh = meshInstanceRenderer.mesh;
68 | }
69 | else if (this.EntityManager.HasComponent(entity))
70 | {
71 | var meshFilter = this.EntityManager.GetComponentObject(entity);
72 | mesh = meshFilter.mesh;
73 | }
74 | else
75 | {
76 | Debug.Log("Unsupported mesh container");
77 | continue;
78 | }
79 |
80 | this.SetMesh(
81 | mesh,
82 | this.EntityManager.GetBuffer(entity).Reinterpret(),
83 | this.EntityManager.GetBuffer(entity).Reinterpret(),
84 | this.EntityManager.GetBuffer(entity).Reinterpret(),
85 | this.EntityManager.GetBuffer(entity).Reinterpret());
86 | }
87 | }
88 |
89 | chunks.Dispose();
90 | }
91 |
92 | private void SetMesh(
93 | Mesh mesh,
94 | DynamicBuffer vertices,
95 | DynamicBuffer uvs,
96 | DynamicBuffer normals,
97 | DynamicBuffer triangles)
98 | {
99 | mesh.Clear();
100 |
101 | if (vertices.Length == 0)
102 | {
103 | return;
104 | }
105 |
106 | this.verticesList.AddRange(vertices);
107 | this.uvsList.AddRange(uvs);
108 | this.normalsList.AddRange(normals);
109 | this.trianglesList.AddRange(triangles);
110 |
111 | mesh.SetVertices(this.verticesList);
112 | mesh.SetNormals(this.normalsList);
113 | mesh.SetUVs(0, this.uvsList);
114 | mesh.SetTriangles(this.trianglesList, 0);
115 |
116 | this.verticesList.Clear();
117 | this.normalsList.Clear();
118 | this.uvsList.Clear();
119 | this.trianglesList.Clear();
120 | }
121 | }
122 | }
--------------------------------------------------------------------------------
/Assets/Scripts/Systems/Mesh/MeshSystem.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: f663ff99b7660eb46bf7908d470df83d
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Demo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ff74ce273fbcbaf469b1012d45bfd8ab
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Demo/BlockModel.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright (c) Timothy Raines. All rights reserved.
3 | //
4 |
5 | namespace BovineLabs.Systems.World.Models
6 | {
7 | using System;
8 |
9 | using Unity.Collections;
10 | using Unity.Mathematics;
11 |
12 | ///
13 | /// Defines a model for a cube.
14 | ///
15 | public struct BlockModel : IDisposable
16 | {
17 | private const float V0 = 0f;
18 | private const float V1 = 1f;
19 |
20 | ///
21 | /// The vertices of a cube, always a length of 24.
22 | ///
23 | public NativeArray Vertices;
24 |
25 | ///
26 | /// The normals of the cube, always a length of 6.
27 | ///
28 | public NativeArray Normals;
29 |
30 | ///
31 | /// The uvs of a cube, always a length of 24.
32 | ///
33 | public NativeArray Uvs;
34 |
35 | ///
36 | /// The triangles of a cube, always a length of 36. Every 3 values represent a triangle.
37 | ///
38 | public NativeArray Triangles;
39 |
40 | ///
41 | /// Create a default version of the BlockModel.
42 | ///
43 | ///
44 | /// The .
45 | ///
46 | public static BlockModel Create()
47 | {
48 | return new BlockModel
49 | {
50 | Vertices =
51 | new NativeArray(
52 | new[]
53 | {
54 | new float3(V0, V0, V0), new float3(V0, V1, V1), new float3(V0, V1, V0),
55 | new float3(V0, V0, V1), new float3(V1, V0, V0), new float3(V1, V1, V1),
56 | new float3(V1, V1, V0), new float3(V1, V0, V1), new float3(V0, V1, V0),
57 | new float3(V0, V1, V1), new float3(V1, V1, V0), new float3(V1, V1, V1),
58 | new float3(V0, V0, V0), new float3(V0, V0, V1), new float3(V1, V0, V0),
59 | new float3(V1, V0, V1), new float3(V0, V0, V0), new float3(V0, V1, V0),
60 | new float3(V1, V1, V0), new float3(V1, V0, V0), new float3(V0, V0, V1),
61 | new float3(V0, V1, V1), new float3(V1, V1, V1), new float3(V1, V0, V1),
62 | },
63 | Allocator.Persistent),
64 | Normals =
65 | new NativeArray(
66 | new[]
67 | {
68 | new float3(-1, 0, 0), new float3(-1, 0, 0), new float3(-1, 0, 0), new float3(-1, 0, 0),
69 | new float3(1, 0, 0), new float3(1, 0, 0),new float3(1, 0, 0),new float3(1, 0, 0),
70 | new float3(0, 1, 0), new float3(0, 1, 0),new float3(0, 1, 0),new float3(0, 1, 0),
71 | new float3(0, -1, 0), new float3(0, -1, 0),new float3(0, -1, 0),new float3(0, -1, 0),
72 | new float3(0, 0, -1), new float3(0, 0, -1), new float3(0, 0, -1), new float3(0, 0, -1),
73 | new float3(0, 0, 1), new float3(0, 0, 1),new float3(0, 0, 1),new float3(0, 0, 1),
74 | },
75 | Allocator.Persistent),
76 | Uvs = new NativeArray(
77 | new[]
78 | {
79 | new float3(1f, 0f, 0f), new float3(0f, 1f, 0f), new float3(1f, 1f, 0f), new float3(0f, 0f, 0f),
80 | new float3(0f, 0f, 0f), new float3(1f, 1f, 0f), new float3(0f, 1f, 0f), new float3(1f, 0f, 0f),
81 | new float3(0f, 0f, 0f), new float3(0f, 1f, 0f), new float3(1f, 0f, 0f), new float3(1f, 1f, 0f),
82 | new float3(0f, 0f, 0f), new float3(0f, 1f, 0f), new float3(1f, 0f, 0f), new float3(1f, 1f, 0f),
83 | new float3(0f, 0f, 0f), new float3(0f, 1f, 0f), new float3(1f, 1f, 0f), new float3(1f, 0f, 0f),
84 | new float3(1f, 0f, 0f), new float3(1f, 1f, 0f), new float3(0f, 1f, 0f), new float3(0f, 0f, 0f),
85 | },
86 | Allocator.Persistent),
87 | Triangles = new NativeArray(
88 | new[]
89 | {
90 | 0, 1, 2, 0, 3, 1, // left -
91 | 4, 5, 7, 4, 6, 5, // right +
92 | 8, 11, 10, 8, 9, 11, // top +
93 | 12, 15, 13, 12, 14, 15, // bottom -
94 | 16, 18, 19, 16, 17, 18, // front +
95 | 20, 22, 21, 20, 23, 22, // back -
96 | },
97 | Allocator.Persistent),
98 | };
99 | }
100 |
101 | ///
102 | public void Dispose()
103 | {
104 | if (this.Vertices.IsCreated)
105 | {
106 | this.Vertices.Dispose();
107 | }
108 |
109 | if (this.Normals.IsCreated)
110 | {
111 | this.Normals.Dispose();
112 | }
113 |
114 | if (this.Uvs.IsCreated)
115 | {
116 | this.Uvs.Dispose();
117 | }
118 |
119 | if (this.Triangles.IsCreated)
120 | {
121 | this.Triangles.Dispose();
122 | }
123 | }
124 | }
125 | }
--------------------------------------------------------------------------------
/Assets/_Demo/BlockModel.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7d1e1f5085ec4c16a984a84a3761d8d1
3 | timeCreated: 1545168016
--------------------------------------------------------------------------------
/Assets/_Demo/Bootstrap.cs:
--------------------------------------------------------------------------------
1 | using BovineLabs.Common.Utility;
2 | using BovineLabs.Systems.Mesh;
3 | using BovineLabs.Systems.World.Models;
4 | using Unity.Collections;
5 | using Unity.Entities;
6 | using Unity.Mathematics;
7 | using Unity.Rendering;
8 | using Unity.Transforms;
9 | using UnityEngine;
10 | using Random = UnityEngine.Random;
11 |
12 | public class Bootstrap
13 | {
14 | [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
15 | public static void Initialize()
16 | {
17 | const int entitiesToCreate = 10;
18 |
19 | var entityManager = World.Active.GetOrCreateManager();
20 |
21 | var meshArchetype = entityManager.CreateArchetype(typeof(MeshInstanceRenderer), typeof(Vertex), typeof(Uv), typeof(Normal), typeof(Triangle), typeof(Position), typeof(MeshScale));
22 |
23 | var meshEntities = new NativeArray(entitiesToCreate, Allocator.Temp);
24 | entityManager.CreateEntity(meshArchetype, meshEntities);
25 |
26 | var material = new Material(Shader.Find("Standard"));
27 | var model = BlockModel.Create();
28 |
29 | for (var index = 0; index < entitiesToCreate; index++)
30 | {
31 | var entity = meshEntities[index];
32 |
33 | var mesh = new Mesh();
34 | mesh.MarkDynamic();
35 |
36 | entityManager.SetSharedComponentData(entity, new MeshInstanceRenderer
37 | {
38 | mesh = mesh,
39 | material = material,
40 | });
41 |
42 | var vertices = entityManager.GetBuffer(entity).Reinterpret();
43 | vertices.AddRange(model.Vertices);
44 |
45 | var normals = entityManager.GetBuffer(entity).Reinterpret();
46 | normals.AddRange(model.Normals);
47 |
48 | var uvs = entityManager.GetBuffer(entity).Reinterpret();
49 | uvs.AddRange(model.Uvs);
50 |
51 | var triangles = entityManager.GetBuffer(entity).Reinterpret();
52 | triangles.AddRange(model.Triangles);
53 |
54 | entityManager.SetComponentData(entity, new Position { Value = new float3(index * 2, 0, 0) });
55 |
56 | entityManager.SetComponentData(entity, new MeshScale
57 | {
58 | Step = Random.Range(0.005f, 0.01f),
59 | Max = Random.Range(60, 600),
60 | //Period = Random.Range(0.5f, 2f) * (Random.Range(0,2) == 1 ? 1 : -1),
61 | });
62 | }
63 |
64 | meshEntities.Dispose();
65 | model.Dispose();
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/Assets/_Demo/Bootstrap.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 96a478db2f613844ab9796960c5ad0ac
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/_Demo/MeshManipulation.cs:
--------------------------------------------------------------------------------
1 | using BovineLabs.Common.Utility;
2 | using BovineLabs.Systems.Mesh;
3 | using Unity.Burst;
4 | using Unity.Collections;
5 | using Unity.Entities;
6 | using Unity.Jobs;
7 | using Unity.Mathematics;
8 |
9 | public struct MeshScale : IComponentData
10 | {
11 | public float Step;
12 | public int Count;
13 | public int Max;
14 | }
15 |
16 | ///
17 | /// The MeshManipulation.
18 | ///
19 | public class MeshManipulation : JobComponentSystem
20 | {
21 | private BatchSystem batchSystem;
22 |
23 | ///
24 | protected override void OnCreateManager()
25 | {
26 | this.batchSystem = this.World.GetOrCreateManager();
27 | }
28 |
29 | ///
30 | protected override JobHandle OnUpdate(JobHandle handle)
31 | {
32 | return new ManipulateMeshJob
33 | {
34 | Vertices = this.GetBufferFromEntity(),
35 | MeshDirtyQueue = this.batchSystem.GetEventBatch().ToConcurrent(),
36 | }
37 | .Schedule(this, handle);
38 | }
39 |
40 | ///
41 | /// Just some random mesh manipulation. Frame dependent, don't turn off sync.
42 | ///
43 | [BurstCompile]
44 | [RequireComponentTag(typeof(Vertex))]
45 | private struct ManipulateMeshJob : IJobProcessComponentDataWithEntity
46 | {
47 | [NativeDisableParallelForRestriction]
48 | public BufferFromEntity Vertices;
49 |
50 | public NativeQueue.Concurrent MeshDirtyQueue;
51 |
52 | ///
53 | public void Execute(Entity entity, int index, ref MeshScale meshScale)
54 | {
55 | this.MeshDirtyQueue.Enqueue(new MeshDirty{Entity = entity});
56 |
57 | meshScale.Count += 1;
58 |
59 | if (meshScale.Count == meshScale.Max)
60 | {
61 | meshScale.Count = -meshScale.Max;
62 | }
63 |
64 | var vertices = this.Vertices[entity].Reinterpret();
65 |
66 | var offset = meshScale.Step;
67 |
68 | if (meshScale.Count < 0)
69 | {
70 | offset = -offset;
71 | }
72 |
73 | for (var i = 0; i < vertices.Length; i++)
74 | {
75 | var v = vertices[i];
76 | v.y += offset;
77 | vertices[i] = v;
78 | }
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/Assets/_Demo/MeshManipulation.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: ba5df1ff0e1e48d2985ba0157d1fbf00
3 | timeCreated: 1545168783
--------------------------------------------------------------------------------
/Assets/_Demo/Scenes.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e3531782d11b6684881056cf0a01d999
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/_Demo/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: 170076734}
41 | m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
42 | m_UseRadianceAmbientProbe: 0
43 | --- !u!157 &3
44 | LightmapSettings:
45 | m_ObjectHideFlags: 0
46 | serializedVersion: 11
47 | m_GIWorkflowMode: 0
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: 0
56 | m_LightmapEditorSettings:
57 | serializedVersion: 10
58 | m_Resolution: 2
59 | m_BakeResolution: 10
60 | m_AtlasSize: 512
61 | m_AO: 0
62 | m_AOMaxDistance: 1
63 | m_CompAOExponent: 1
64 | m_CompAOExponentDirect: 0
65 | m_Padding: 2
66 | m_LightmapParameters: {fileID: 0}
67 | m_LightmapsBakeMode: 1
68 | m_TextureCompression: 1
69 | m_FinalGather: 0
70 | m_FinalGatherFiltering: 1
71 | m_FinalGatherRayCount: 256
72 | m_ReflectionCompression: 2
73 | m_MixedBakeMode: 2
74 | m_BakeBackend: 1
75 | m_PVRSampling: 1
76 | m_PVRDirectSampleCount: 32
77 | m_PVRSampleCount: 256
78 | m_PVRBounces: 2
79 | m_PVRFilterTypeDirect: 0
80 | m_PVRFilterTypeIndirect: 0
81 | m_PVRFilterTypeAO: 0
82 | m_PVRFilteringMode: 1
83 | m_PVRCulling: 1
84 | m_PVRFilteringGaussRadiusDirect: 1
85 | m_PVRFilteringGaussRadiusIndirect: 5
86 | m_PVRFilteringGaussRadiusAO: 2
87 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
88 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
89 | m_PVRFilteringAtrousPositionSigmaAO: 1
90 | m_ShowResolutionOverlay: 1
91 | m_LightingDataAsset: {fileID: 0}
92 | m_UseShadowmask: 1
93 | --- !u!196 &4
94 | NavMeshSettings:
95 | serializedVersion: 2
96 | m_ObjectHideFlags: 0
97 | m_BuildSettings:
98 | serializedVersion: 2
99 | agentTypeID: 0
100 | agentRadius: 0.5
101 | agentHeight: 2
102 | agentSlope: 45
103 | agentClimb: 0.4
104 | ledgeDropHeight: 0
105 | maxJumpAcrossDistance: 0
106 | minRegionArea: 2
107 | manualCellSize: 0
108 | cellSize: 0.16666667
109 | manualTileSize: 0
110 | tileSize: 256
111 | accuratePlacement: 0
112 | debug:
113 | m_Flags: 0
114 | m_NavMeshData: {fileID: 0}
115 | --- !u!1 &170076733
116 | GameObject:
117 | m_ObjectHideFlags: 0
118 | m_CorrespondingSourceObject: {fileID: 0}
119 | m_PrefabInstance: {fileID: 0}
120 | m_PrefabAsset: {fileID: 0}
121 | serializedVersion: 6
122 | m_Component:
123 | - component: {fileID: 170076735}
124 | - component: {fileID: 170076734}
125 | m_Layer: 0
126 | m_Name: Directional Light
127 | m_TagString: Untagged
128 | m_Icon: {fileID: 0}
129 | m_NavMeshLayer: 0
130 | m_StaticEditorFlags: 0
131 | m_IsActive: 1
132 | --- !u!108 &170076734
133 | Light:
134 | m_ObjectHideFlags: 0
135 | m_CorrespondingSourceObject: {fileID: 0}
136 | m_PrefabInstance: {fileID: 0}
137 | m_PrefabAsset: {fileID: 0}
138 | m_GameObject: {fileID: 170076733}
139 | m_Enabled: 1
140 | serializedVersion: 8
141 | m_Type: 1
142 | m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
143 | m_Intensity: 1
144 | m_Range: 10
145 | m_SpotAngle: 30
146 | m_CookieSize: 10
147 | m_Shadows:
148 | m_Type: 2
149 | m_Resolution: -1
150 | m_CustomResolution: -1
151 | m_Strength: 1
152 | m_Bias: 0.05
153 | m_NormalBias: 0.4
154 | m_NearPlane: 0.2
155 | m_Cookie: {fileID: 0}
156 | m_DrawHalo: 0
157 | m_Flare: {fileID: 0}
158 | m_RenderMode: 0
159 | m_CullingMask:
160 | serializedVersion: 2
161 | m_Bits: 4294967295
162 | m_Lightmapping: 1
163 | m_LightShadowCasterMode: 0
164 | m_AreaSize: {x: 1, y: 1}
165 | m_BounceIntensity: 1
166 | m_ColorTemperature: 6570
167 | m_UseColorTemperature: 0
168 | m_ShadowRadius: 0
169 | m_ShadowAngle: 0
170 | --- !u!4 &170076735
171 | Transform:
172 | m_ObjectHideFlags: 0
173 | m_CorrespondingSourceObject: {fileID: 0}
174 | m_PrefabInstance: {fileID: 0}
175 | m_PrefabAsset: {fileID: 0}
176 | m_GameObject: {fileID: 170076733}
177 | m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
178 | m_LocalPosition: {x: 0, y: 3, z: 0}
179 | m_LocalScale: {x: 1, y: 1, z: 1}
180 | m_Children: []
181 | m_Father: {fileID: 0}
182 | m_RootOrder: 1
183 | m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
184 | --- !u!1 &534669902
185 | GameObject:
186 | m_ObjectHideFlags: 0
187 | m_CorrespondingSourceObject: {fileID: 0}
188 | m_PrefabInstance: {fileID: 0}
189 | m_PrefabAsset: {fileID: 0}
190 | serializedVersion: 6
191 | m_Component:
192 | - component: {fileID: 534669905}
193 | - component: {fileID: 534669904}
194 | - component: {fileID: 534669903}
195 | m_Layer: 0
196 | m_Name: Main Camera
197 | m_TagString: MainCamera
198 | m_Icon: {fileID: 0}
199 | m_NavMeshLayer: 0
200 | m_StaticEditorFlags: 0
201 | m_IsActive: 1
202 | --- !u!81 &534669903
203 | AudioListener:
204 | m_ObjectHideFlags: 0
205 | m_CorrespondingSourceObject: {fileID: 0}
206 | m_PrefabInstance: {fileID: 0}
207 | m_PrefabAsset: {fileID: 0}
208 | m_GameObject: {fileID: 534669902}
209 | m_Enabled: 1
210 | --- !u!20 &534669904
211 | Camera:
212 | m_ObjectHideFlags: 0
213 | m_CorrespondingSourceObject: {fileID: 0}
214 | m_PrefabInstance: {fileID: 0}
215 | m_PrefabAsset: {fileID: 0}
216 | m_GameObject: {fileID: 534669902}
217 | m_Enabled: 1
218 | serializedVersion: 2
219 | m_ClearFlags: 1
220 | m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
221 | m_projectionMatrixMode: 1
222 | m_SensorSize: {x: 36, y: 24}
223 | m_LensShift: {x: 0, y: 0}
224 | m_GateFitMode: 2
225 | m_FocalLength: 50
226 | m_NormalizedViewPortRect:
227 | serializedVersion: 2
228 | x: 0
229 | y: 0
230 | width: 1
231 | height: 1
232 | near clip plane: 0.3
233 | far clip plane: 1000
234 | field of view: 60
235 | orthographic: 0
236 | orthographic size: 5
237 | m_Depth: -1
238 | m_CullingMask:
239 | serializedVersion: 2
240 | m_Bits: 4294967295
241 | m_RenderingPath: -1
242 | m_TargetTexture: {fileID: 0}
243 | m_TargetDisplay: 0
244 | m_TargetEye: 3
245 | m_HDR: 1
246 | m_AllowMSAA: 1
247 | m_AllowDynamicResolution: 0
248 | m_ForceIntoRT: 0
249 | m_OcclusionCulling: 1
250 | m_StereoConvergence: 10
251 | m_StereoSeparation: 0.022
252 | --- !u!4 &534669905
253 | Transform:
254 | m_ObjectHideFlags: 0
255 | m_CorrespondingSourceObject: {fileID: 0}
256 | m_PrefabInstance: {fileID: 0}
257 | m_PrefabAsset: {fileID: 0}
258 | m_GameObject: {fileID: 534669902}
259 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
260 | m_LocalPosition: {x: 10, y: 1, z: -15}
261 | m_LocalScale: {x: 1, y: 1, z: 1}
262 | m_Children: []
263 | m_Father: {fileID: 0}
264 | m_RootOrder: 0
265 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
266 |
--------------------------------------------------------------------------------
/Assets/_Demo/Scenes/SampleScene.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0b2175134db49d44582f9f09df3cc2e2
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Logs/Packages-Update.log:
--------------------------------------------------------------------------------
1 |
2 | === Wed Dec 19 07:56:39 2018
3 |
4 | Packages were changed.
5 | Update Mode: mergeDefaultDependencies
6 |
7 | The following packages were added:
8 | com.unity.analytics@3.2.2
9 | com.unity.purchasing@2.0.3
10 | com.unity.ads@2.3.1
11 | com.unity.textmeshpro@1.3.0
12 | com.unity.package-manager-ui@2.0.3
13 | com.unity.collab-proxy@1.2.15
14 | com.unity.modules.ai@1.0.0
15 | com.unity.modules.animation@1.0.0
16 | com.unity.modules.assetbundle@1.0.0
17 | com.unity.modules.audio@1.0.0
18 | com.unity.modules.cloth@1.0.0
19 | com.unity.modules.director@1.0.0
20 | com.unity.modules.imageconversion@1.0.0
21 | com.unity.modules.imgui@1.0.0
22 | com.unity.modules.jsonserialize@1.0.0
23 | com.unity.modules.particlesystem@1.0.0
24 | com.unity.modules.physics@1.0.0
25 | com.unity.modules.physics2d@1.0.0
26 | com.unity.modules.screencapture@1.0.0
27 | com.unity.modules.terrain@1.0.0
28 | com.unity.modules.terrainphysics@1.0.0
29 | com.unity.modules.tilemap@1.0.0
30 | com.unity.modules.ui@1.0.0
31 | com.unity.modules.uielements@1.0.0
32 | com.unity.modules.umbra@1.0.0
33 | com.unity.modules.unityanalytics@1.0.0
34 | com.unity.modules.unitywebrequest@1.0.0
35 | com.unity.modules.unitywebrequestassetbundle@1.0.0
36 | com.unity.modules.unitywebrequestaudio@1.0.0
37 | com.unity.modules.unitywebrequesttexture@1.0.0
38 | com.unity.modules.unitywebrequestwww@1.0.0
39 | com.unity.modules.vehicles@1.0.0
40 | com.unity.modules.video@1.0.0
41 | com.unity.modules.vr@1.0.0
42 | com.unity.modules.wind@1.0.0
43 | com.unity.modules.xr@1.0.0
44 |
--------------------------------------------------------------------------------
/Packages/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "com.unity.entities": "0.0.12-preview.21",
4 | "com.unity.mathematics": "0.0.12-preview.19",
5 | "com.unity.ads": "2.3.1",
6 | "com.unity.analytics": "3.2.2",
7 | "com.unity.collab-proxy": "1.2.15",
8 | "com.unity.package-manager-ui": "2.0.3",
9 | "com.unity.purchasing": "2.0.3",
10 | "com.unity.textmeshpro": "1.3.0",
11 | "com.unity.modules.ai": "1.0.0",
12 | "com.unity.modules.animation": "1.0.0",
13 | "com.unity.modules.assetbundle": "1.0.0",
14 | "com.unity.modules.audio": "1.0.0",
15 | "com.unity.modules.cloth": "1.0.0",
16 | "com.unity.modules.director": "1.0.0",
17 | "com.unity.modules.imageconversion": "1.0.0",
18 | "com.unity.modules.imgui": "1.0.0",
19 | "com.unity.modules.jsonserialize": "1.0.0",
20 | "com.unity.modules.particlesystem": "1.0.0",
21 | "com.unity.modules.physics": "1.0.0",
22 | "com.unity.modules.physics2d": "1.0.0",
23 | "com.unity.modules.screencapture": "1.0.0",
24 | "com.unity.modules.terrain": "1.0.0",
25 | "com.unity.modules.terrainphysics": "1.0.0",
26 | "com.unity.modules.tilemap": "1.0.0",
27 | "com.unity.modules.ui": "1.0.0",
28 | "com.unity.modules.uielements": "1.0.0",
29 | "com.unity.modules.umbra": "1.0.0",
30 | "com.unity.modules.unityanalytics": "1.0.0",
31 | "com.unity.modules.unitywebrequest": "1.0.0",
32 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
33 | "com.unity.modules.unitywebrequestaudio": "1.0.0",
34 | "com.unity.modules.unitywebrequesttexture": "1.0.0",
35 | "com.unity.modules.unitywebrequestwww": "1.0.0",
36 | "com.unity.modules.vehicles": "1.0.0",
37 | "com.unity.modules.video": "1.0.0",
38 | "com.unity.modules.vr": "1.0.0",
39 | "com.unity.modules.wind": "1.0.0",
40 | "com.unity.modules.xr": "1.0.0"
41 | },
42 | "registry": "https://staging-packages.unity.com",
43 | "testables": [
44 | "com.unity.collections",
45 | "com.unity.entities",
46 | "com.unity.jobs",
47 | "com.unity.test-framework.performance"
48 | ]
49 | }
50 |
--------------------------------------------------------------------------------
/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 | m_Volume: 1
7 | Rolloff Scale: 1
8 | Doppler Factor: 1
9 | Default Speaker Mode: 2
10 | m_SampleRate: 0
11 | m_DSPBufferSize: 1024
12 | m_VirtualVoiceCount: 512
13 | m_RealVoiceCount: 32
14 | m_SpatializerPlugin:
15 | m_AmbisonicDecoderPlugin:
16 | m_DisableAudio: 0
17 | m_VirtualizeEffects: 1
18 |
--------------------------------------------------------------------------------
/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: 8
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 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorBuildSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!1045 &1
4 | EditorBuildSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 2
7 | m_Scenes:
8 | - enabled: 1
9 | path: Assets/Scenes/SampleScene.unity
10 | guid: 99c9720ab356a0642a771bea13969a05
11 | m_configObjects: {}
12 |
--------------------------------------------------------------------------------
/ProjectSettings/EditorSettings.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!159 &1
4 | EditorSettings:
5 | m_ObjectHideFlags: 0
6 | serializedVersion: 7
7 | m_ExternalVersionControlSupport: Visible Meta Files
8 | m_SerializationMode: 2
9 | m_LineEndingsForNewScripts: 2
10 | m_DefaultBehaviorMode: 0
11 | m_SpritePackerMode: 0
12 | m_SpritePackerPaddingPower: 1
13 | m_EtcTextureCompressorBehavior: 1
14 | m_EtcTextureFastCompressor: 1
15 | m_EtcTextureNormalCompressor: 2
16 | m_EtcTextureBestCompressor: 4
17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd
18 | m_ProjectGenerationRootNamespace:
19 | m_UserGeneratedProjectSuffix:
20 | m_CollabEditorSettings:
21 | inProgressEnabled: 1
22 |
--------------------------------------------------------------------------------
/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 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0}
39 | m_PreloadedShaders: []
40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
41 | type: 0}
42 | m_CustomRenderPipeline: {fileID: 0}
43 | m_TransparencySortMode: 0
44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1}
45 | m_DefaultRenderingPath: 1
46 | m_DefaultMobileRenderingPath: 1
47 | m_TierSettings: []
48 | m_LightmapStripping: 0
49 | m_FogStripping: 0
50 | m_InstancingStripping: 0
51 | m_LightmapKeepPlain: 1
52 | m_LightmapKeepDirCombined: 1
53 | m_LightmapKeepDynamicPlain: 1
54 | m_LightmapKeepDynamicDirCombined: 1
55 | m_LightmapKeepShadowMask: 1
56 | m_LightmapKeepSubtractive: 1
57 | m_FogKeepLinear: 1
58 | m_FogKeepExp: 1
59 | m_FogKeepExp2: 1
60 | m_AlbedoSwatchInfos: []
61 | m_LightsUseLinearIntensity: 0
62 | m_LightsUseColorTemperature: 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/NetworkManager.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!149 &1
4 | NetworkManager:
5 | m_ObjectHideFlags: 0
6 | m_DebugLevel: 0
7 | m_Sendrate: 15
8 | m_AssetToPrefab: {}
9 |
--------------------------------------------------------------------------------
/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_AutoSimulation: 1
23 | m_QueriesHitTriggers: 1
24 | m_QueriesStartInColliders: 1
25 | m_ChangeStopsCallbacks: 0
26 | m_CallbacksOnDisable: 1
27 | m_ReuseCollisionCallbacks: 1
28 | m_AutoSyncTransforms: 0
29 | m_AlwaysShowColliders: 0
30 | m_ShowColliderSleep: 1
31 | m_ShowColliderContacts: 0
32 | m_ShowColliderAABB: 0
33 | m_ContactArrowScale: 0.2
34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
39 |
--------------------------------------------------------------------------------
/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 | - type:
8 | m_NativeTypeID: 108
9 | m_ManagedTypePPtr: {fileID: 0}
10 | m_ManagedTypeFallback:
11 | defaultPresets:
12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea,
13 | type: 2}
14 | - type:
15 | m_NativeTypeID: 1020
16 | m_ManagedTypePPtr: {fileID: 0}
17 | m_ManagedTypeFallback:
18 | defaultPresets:
19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6,
20 | type: 2}
21 | - type:
22 | m_NativeTypeID: 1006
23 | m_ManagedTypePPtr: {fileID: 0}
24 | m_ManagedTypeFallback:
25 | defaultPresets:
26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9,
27 | type: 2}
28 |
--------------------------------------------------------------------------------
/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: 15
7 | productGUID: 7d671b9d12f71af42b9b0bb3a8b5e538
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: MeshDemo
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 | iosAppInBackgroundBehavior: 0
56 | displayResolutionDialog: 1
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: 0
68 | androidBlitType: 0
69 | defaultIsNativeResolution: 1
70 | macRetinaSupport: 1
71 | runInBackground: 1
72 | captureSingleScreen: 0
73 | muteOtherAudioSources: 0
74 | Prepare IOS For Recording: 0
75 | Force IOS Speakers When Recording: 0
76 | deferSystemGesturesMode: 0
77 | hideHomeButton: 0
78 | submitAnalytics: 1
79 | usePlayerLog: 1
80 | bakeCollisionMeshes: 0
81 | forceSingleInstance: 0
82 | resizableWindow: 0
83 | useMacAppStoreValidation: 0
84 | macAppStoreCategory: public.app-category.games
85 | gpuSkinning: 1
86 | graphicsJobs: 0
87 | xboxPIXTextureCapture: 0
88 | xboxEnableAvatar: 0
89 | xboxEnableKinect: 0
90 | xboxEnableKinectAutoTracking: 0
91 | xboxEnableFitness: 0
92 | visibleInBackground: 1
93 | allowFullscreenSwitch: 1
94 | graphicsJobMode: 0
95 | fullscreenMode: 1
96 | xboxSpeechDB: 0
97 | xboxEnableHeadOrientation: 0
98 | xboxEnableGuest: 0
99 | xboxEnablePIXSampling: 0
100 | metalFramebufferOnly: 0
101 | xboxOneResolution: 0
102 | xboxOneSResolution: 0
103 | xboxOneXResolution: 3
104 | xboxOneMonoLoggingLevel: 0
105 | xboxOneLoggingLevel: 1
106 | xboxOneDisableEsram: 0
107 | xboxOnePresentImmediateThreshold: 0
108 | switchQueueCommandMemory: 0
109 | vulkanEnableSetSRGBWrite: 0
110 | m_SupportedAspectRatios:
111 | 4:3: 1
112 | 5:4: 1
113 | 16:10: 1
114 | 16:9: 1
115 | Others: 1
116 | bundleVersion: 0.1
117 | preloadedAssets: []
118 | metroInputSource: 0
119 | wsaTransparentSwapchain: 0
120 | m_HolographicPauseOnTrackingLoss: 1
121 | xboxOneDisableKinectGpuReservation: 0
122 | xboxOneEnable7thCore: 0
123 | isWsaHolographicRemotingEnabled: 0
124 | vrSettings:
125 | cardboard:
126 | depthFormat: 0
127 | enableTransitionView: 0
128 | daydream:
129 | depthFormat: 0
130 | useSustainedPerformanceMode: 0
131 | enableVideoLayer: 0
132 | useProtectedVideoMemory: 0
133 | minimumSupportedHeadTracking: 0
134 | maximumSupportedHeadTracking: 1
135 | hololens:
136 | depthFormat: 1
137 | depthBufferSharingEnabled: 0
138 | oculus:
139 | sharedDepthBuffer: 1
140 | dashSupport: 1
141 | enable360StereoCapture: 0
142 | protectGraphicsMemory: 0
143 | enableFrameTimingStats: 0
144 | useHDRDisplay: 0
145 | m_ColorGamuts: 00000000
146 | targetPixelDensity: 30
147 | resolutionScalingMode: 0
148 | androidSupportedAspectRatio: 1
149 | androidMaxAspectRatio: 2.1
150 | applicationIdentifier: {}
151 | buildNumber: {}
152 | AndroidBundleVersionCode: 1
153 | AndroidMinSdkVersion: 16
154 | AndroidTargetSdkVersion: 0
155 | AndroidPreferredInstallLocation: 1
156 | aotOptions:
157 | stripEngineCode: 1
158 | iPhoneStrippingLevel: 0
159 | iPhoneScriptCallOptimization: 0
160 | ForceInternetPermission: 0
161 | ForceSDCardPermission: 0
162 | CreateWallpaper: 0
163 | APKExpansionFiles: 0
164 | keepLoadedShadersAlive: 0
165 | StripUnusedMeshComponents: 1
166 | VertexChannelCompressionMask: 4054
167 | iPhoneSdkVersion: 988
168 | iOSTargetOSVersionString: 9.0
169 | tvOSSdkVersion: 0
170 | tvOSRequireExtendedGameController: 0
171 | tvOSTargetOSVersionString: 9.0
172 | uIPrerenderedIcon: 0
173 | uIRequiresPersistentWiFi: 0
174 | uIRequiresFullScreen: 1
175 | uIStatusBarHidden: 1
176 | uIExitOnSuspend: 0
177 | uIStatusBarStyle: 0
178 | iPhoneSplashScreen: {fileID: 0}
179 | iPhoneHighResSplashScreen: {fileID: 0}
180 | iPhoneTallHighResSplashScreen: {fileID: 0}
181 | iPhone47inSplashScreen: {fileID: 0}
182 | iPhone55inPortraitSplashScreen: {fileID: 0}
183 | iPhone55inLandscapeSplashScreen: {fileID: 0}
184 | iPhone58inPortraitSplashScreen: {fileID: 0}
185 | iPhone58inLandscapeSplashScreen: {fileID: 0}
186 | iPadPortraitSplashScreen: {fileID: 0}
187 | iPadHighResPortraitSplashScreen: {fileID: 0}
188 | iPadLandscapeSplashScreen: {fileID: 0}
189 | iPadHighResLandscapeSplashScreen: {fileID: 0}
190 | appleTVSplashScreen: {fileID: 0}
191 | appleTVSplashScreen2x: {fileID: 0}
192 | tvOSSmallIconLayers: []
193 | tvOSSmallIconLayers2x: []
194 | tvOSLargeIconLayers: []
195 | tvOSLargeIconLayers2x: []
196 | tvOSTopShelfImageLayers: []
197 | tvOSTopShelfImageLayers2x: []
198 | tvOSTopShelfImageWideLayers: []
199 | tvOSTopShelfImageWideLayers2x: []
200 | iOSLaunchScreenType: 0
201 | iOSLaunchScreenPortrait: {fileID: 0}
202 | iOSLaunchScreenLandscape: {fileID: 0}
203 | iOSLaunchScreenBackgroundColor:
204 | serializedVersion: 2
205 | rgba: 0
206 | iOSLaunchScreenFillPct: 100
207 | iOSLaunchScreenSize: 100
208 | iOSLaunchScreenCustomXibPath:
209 | iOSLaunchScreeniPadType: 0
210 | iOSLaunchScreeniPadImage: {fileID: 0}
211 | iOSLaunchScreeniPadBackgroundColor:
212 | serializedVersion: 2
213 | rgba: 0
214 | iOSLaunchScreeniPadFillPct: 100
215 | iOSLaunchScreeniPadSize: 100
216 | iOSLaunchScreeniPadCustomXibPath:
217 | iOSUseLaunchScreenStoryboard: 0
218 | iOSLaunchScreenCustomStoryboardPath:
219 | iOSDeviceRequirements: []
220 | iOSURLSchemes: []
221 | iOSBackgroundModes: 0
222 | iOSMetalForceHardShadows: 0
223 | metalEditorSupport: 1
224 | metalAPIValidation: 1
225 | iOSRenderExtraFrameOnPause: 0
226 | appleDeveloperTeamID:
227 | iOSManualSigningProvisioningProfileID:
228 | tvOSManualSigningProvisioningProfileID:
229 | iOSManualSigningProvisioningProfileType: 0
230 | tvOSManualSigningProvisioningProfileType: 0
231 | appleEnableAutomaticSigning: 0
232 | iOSRequireARKit: 0
233 | appleEnableProMotion: 0
234 | clonedFromGUID: c0afd0d1d80e3634a9dac47e8a0426ea
235 | templatePackageId: com.unity.template.3d@1.0.4
236 | templateDefaultScene: Assets/Scenes/SampleScene.unity
237 | AndroidTargetArchitectures: 5
238 | AndroidSplashScreenScale: 0
239 | androidSplashScreen: {fileID: 0}
240 | AndroidKeystoreName:
241 | AndroidKeyaliasName:
242 | AndroidBuildApkPerCpuArchitecture: 0
243 | AndroidTVCompatibility: 1
244 | AndroidIsGame: 1
245 | AndroidEnableTango: 0
246 | androidEnableBanner: 1
247 | androidUseLowAccuracyLocation: 0
248 | m_AndroidBanners:
249 | - width: 320
250 | height: 180
251 | banner: {fileID: 0}
252 | androidGamepadSupportLevel: 0
253 | resolutionDialogBanner: {fileID: 0}
254 | m_BuildTargetIcons: []
255 | m_BuildTargetPlatformIcons: []
256 | m_BuildTargetBatching:
257 | - m_BuildTarget: Standalone
258 | m_StaticBatching: 1
259 | m_DynamicBatching: 0
260 | - m_BuildTarget: tvOS
261 | m_StaticBatching: 1
262 | m_DynamicBatching: 0
263 | - m_BuildTarget: Android
264 | m_StaticBatching: 1
265 | m_DynamicBatching: 0
266 | - m_BuildTarget: iPhone
267 | m_StaticBatching: 1
268 | m_DynamicBatching: 0
269 | - m_BuildTarget: WebGL
270 | m_StaticBatching: 0
271 | m_DynamicBatching: 0
272 | m_BuildTargetGraphicsAPIs:
273 | - m_BuildTarget: AndroidPlayer
274 | m_APIs: 0b00000008000000
275 | m_Automatic: 1
276 | - m_BuildTarget: iOSSupport
277 | m_APIs: 10000000
278 | m_Automatic: 1
279 | - m_BuildTarget: AppleTVSupport
280 | m_APIs: 10000000
281 | m_Automatic: 0
282 | - m_BuildTarget: WebGLSupport
283 | m_APIs: 0b000000
284 | m_Automatic: 1
285 | m_BuildTargetVRSettings:
286 | - m_BuildTarget: Standalone
287 | m_Enabled: 0
288 | m_Devices:
289 | - Oculus
290 | - OpenVR
291 | m_BuildTargetEnableVuforiaSettings: []
292 | openGLRequireES31: 0
293 | openGLRequireES31AEP: 0
294 | m_TemplateCustomTags: {}
295 | mobileMTRendering:
296 | Android: 1
297 | iPhone: 1
298 | tvOS: 1
299 | m_BuildTargetGroupLightmapEncodingQuality: []
300 | m_BuildTargetGroupLightmapSettings: []
301 | playModeTestRunnerEnabled: 0
302 | runPlayModeTestAsEditModeTest: 0
303 | actionOnDotNetUnhandledException: 1
304 | enableInternalProfiler: 0
305 | logObjCUncaughtExceptions: 1
306 | enableCrashReportAPI: 0
307 | cameraUsageDescription:
308 | locationUsageDescription:
309 | microphoneUsageDescription:
310 | switchNetLibKey:
311 | switchSocketMemoryPoolSize: 6144
312 | switchSocketAllocatorPoolSize: 128
313 | switchSocketConcurrencyLimit: 14
314 | switchScreenResolutionBehavior: 2
315 | switchUseCPUProfiler: 0
316 | switchApplicationID: 0x01004b9000490000
317 | switchNSODependencies:
318 | switchTitleNames_0:
319 | switchTitleNames_1:
320 | switchTitleNames_2:
321 | switchTitleNames_3:
322 | switchTitleNames_4:
323 | switchTitleNames_5:
324 | switchTitleNames_6:
325 | switchTitleNames_7:
326 | switchTitleNames_8:
327 | switchTitleNames_9:
328 | switchTitleNames_10:
329 | switchTitleNames_11:
330 | switchTitleNames_12:
331 | switchTitleNames_13:
332 | switchTitleNames_14:
333 | switchPublisherNames_0:
334 | switchPublisherNames_1:
335 | switchPublisherNames_2:
336 | switchPublisherNames_3:
337 | switchPublisherNames_4:
338 | switchPublisherNames_5:
339 | switchPublisherNames_6:
340 | switchPublisherNames_7:
341 | switchPublisherNames_8:
342 | switchPublisherNames_9:
343 | switchPublisherNames_10:
344 | switchPublisherNames_11:
345 | switchPublisherNames_12:
346 | switchPublisherNames_13:
347 | switchPublisherNames_14:
348 | switchIcons_0: {fileID: 0}
349 | switchIcons_1: {fileID: 0}
350 | switchIcons_2: {fileID: 0}
351 | switchIcons_3: {fileID: 0}
352 | switchIcons_4: {fileID: 0}
353 | switchIcons_5: {fileID: 0}
354 | switchIcons_6: {fileID: 0}
355 | switchIcons_7: {fileID: 0}
356 | switchIcons_8: {fileID: 0}
357 | switchIcons_9: {fileID: 0}
358 | switchIcons_10: {fileID: 0}
359 | switchIcons_11: {fileID: 0}
360 | switchIcons_12: {fileID: 0}
361 | switchIcons_13: {fileID: 0}
362 | switchIcons_14: {fileID: 0}
363 | switchSmallIcons_0: {fileID: 0}
364 | switchSmallIcons_1: {fileID: 0}
365 | switchSmallIcons_2: {fileID: 0}
366 | switchSmallIcons_3: {fileID: 0}
367 | switchSmallIcons_4: {fileID: 0}
368 | switchSmallIcons_5: {fileID: 0}
369 | switchSmallIcons_6: {fileID: 0}
370 | switchSmallIcons_7: {fileID: 0}
371 | switchSmallIcons_8: {fileID: 0}
372 | switchSmallIcons_9: {fileID: 0}
373 | switchSmallIcons_10: {fileID: 0}
374 | switchSmallIcons_11: {fileID: 0}
375 | switchSmallIcons_12: {fileID: 0}
376 | switchSmallIcons_13: {fileID: 0}
377 | switchSmallIcons_14: {fileID: 0}
378 | switchManualHTML:
379 | switchAccessibleURLs:
380 | switchLegalInformation:
381 | switchMainThreadStackSize: 1048576
382 | switchPresenceGroupId:
383 | switchLogoHandling: 0
384 | switchReleaseVersion: 0
385 | switchDisplayVersion: 1.0.0
386 | switchStartupUserAccount: 0
387 | switchTouchScreenUsage: 0
388 | switchSupportedLanguagesMask: 0
389 | switchLogoType: 0
390 | switchApplicationErrorCodeCategory:
391 | switchUserAccountSaveDataSize: 0
392 | switchUserAccountSaveDataJournalSize: 0
393 | switchApplicationAttribute: 0
394 | switchCardSpecSize: -1
395 | switchCardSpecClock: -1
396 | switchRatingsMask: 0
397 | switchRatingsInt_0: 0
398 | switchRatingsInt_1: 0
399 | switchRatingsInt_2: 0
400 | switchRatingsInt_3: 0
401 | switchRatingsInt_4: 0
402 | switchRatingsInt_5: 0
403 | switchRatingsInt_6: 0
404 | switchRatingsInt_7: 0
405 | switchRatingsInt_8: 0
406 | switchRatingsInt_9: 0
407 | switchRatingsInt_10: 0
408 | switchRatingsInt_11: 0
409 | switchLocalCommunicationIds_0:
410 | switchLocalCommunicationIds_1:
411 | switchLocalCommunicationIds_2:
412 | switchLocalCommunicationIds_3:
413 | switchLocalCommunicationIds_4:
414 | switchLocalCommunicationIds_5:
415 | switchLocalCommunicationIds_6:
416 | switchLocalCommunicationIds_7:
417 | switchParentalControl: 0
418 | switchAllowsScreenshot: 1
419 | switchAllowsVideoCapturing: 1
420 | switchAllowsRuntimeAddOnContentInstall: 0
421 | switchDataLossConfirmation: 0
422 | switchUserAccountLockEnabled: 0
423 | switchSupportedNpadStyles: 3
424 | switchNativeFsCacheSize: 32
425 | switchIsHoldTypeHorizontal: 0
426 | switchSupportedNpadCount: 8
427 | switchSocketConfigEnabled: 0
428 | switchTcpInitialSendBufferSize: 32
429 | switchTcpInitialReceiveBufferSize: 64
430 | switchTcpAutoSendBufferSizeMax: 256
431 | switchTcpAutoReceiveBufferSizeMax: 256
432 | switchUdpSendBufferSize: 9
433 | switchUdpReceiveBufferSize: 42
434 | switchSocketBufferEfficiency: 4
435 | switchSocketInitializeEnabled: 1
436 | switchNetworkInterfaceManagerInitializeEnabled: 1
437 | switchPlayerConnectionEnabled: 1
438 | ps4NPAgeRating: 12
439 | ps4NPTitleSecret:
440 | ps4NPTrophyPackPath:
441 | ps4ParentalLevel: 11
442 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000
443 | ps4Category: 0
444 | ps4MasterVersion: 01.00
445 | ps4AppVersion: 01.00
446 | ps4AppType: 0
447 | ps4ParamSfxPath:
448 | ps4VideoOutPixelFormat: 0
449 | ps4VideoOutInitialWidth: 1920
450 | ps4VideoOutBaseModeInitialWidth: 1920
451 | ps4VideoOutReprojectionRate: 60
452 | ps4PronunciationXMLPath:
453 | ps4PronunciationSIGPath:
454 | ps4BackgroundImagePath:
455 | ps4StartupImagePath:
456 | ps4StartupImagesFolder:
457 | ps4IconImagesFolder:
458 | ps4SaveDataImagePath:
459 | ps4SdkOverride:
460 | ps4BGMPath:
461 | ps4ShareFilePath:
462 | ps4ShareOverlayImagePath:
463 | ps4PrivacyGuardImagePath:
464 | ps4NPtitleDatPath:
465 | ps4RemotePlayKeyAssignment: -1
466 | ps4RemotePlayKeyMappingDir:
467 | ps4PlayTogetherPlayerCount: 0
468 | ps4EnterButtonAssignment: 1
469 | ps4ApplicationParam1: 0
470 | ps4ApplicationParam2: 0
471 | ps4ApplicationParam3: 0
472 | ps4ApplicationParam4: 0
473 | ps4DownloadDataSize: 0
474 | ps4GarlicHeapSize: 2048
475 | ps4ProGarlicHeapSize: 2560
476 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ
477 | ps4pnSessions: 1
478 | ps4pnPresence: 1
479 | ps4pnFriends: 1
480 | ps4pnGameCustomData: 1
481 | playerPrefsSupport: 0
482 | enableApplicationExit: 0
483 | resetTempFolder: 1
484 | restrictedAudioUsageRights: 0
485 | ps4UseResolutionFallback: 0
486 | ps4ReprojectionSupport: 0
487 | ps4UseAudio3dBackend: 0
488 | ps4SocialScreenEnabled: 0
489 | ps4ScriptOptimizationLevel: 0
490 | ps4Audio3dVirtualSpeakerCount: 14
491 | ps4attribCpuUsage: 0
492 | ps4PatchPkgPath:
493 | ps4PatchLatestPkgPath:
494 | ps4PatchChangeinfoPath:
495 | ps4PatchDayOne: 0
496 | ps4attribUserManagement: 0
497 | ps4attribMoveSupport: 0
498 | ps4attrib3DSupport: 0
499 | ps4attribShareSupport: 0
500 | ps4attribExclusiveVR: 0
501 | ps4disableAutoHideSplash: 0
502 | ps4videoRecordingFeaturesUsed: 0
503 | ps4contentSearchFeaturesUsed: 0
504 | ps4attribEyeToEyeDistanceSettingVR: 0
505 | ps4IncludedModules: []
506 | monoEnv:
507 | splashScreenBackgroundSourceLandscape: {fileID: 0}
508 | splashScreenBackgroundSourcePortrait: {fileID: 0}
509 | spritePackerPolicy:
510 | webGLMemorySize: 256
511 | webGLExceptionSupport: 1
512 | webGLNameFilesAsHashes: 0
513 | webGLDataCaching: 1
514 | webGLDebugSymbols: 0
515 | webGLEmscriptenArgs:
516 | webGLModulesDirectory:
517 | webGLTemplate: APPLICATION:Default
518 | webGLAnalyzeBuildSize: 0
519 | webGLUseEmbeddedResources: 0
520 | webGLCompressionFormat: 1
521 | webGLLinkerTarget: 1
522 | webGLThreadsSupport: 0
523 | scriptingDefineSymbols: {}
524 | platformArchitecture: {}
525 | scriptingBackend: {}
526 | il2cppCompilerConfiguration: {}
527 | managedStrippingLevel: {}
528 | incrementalIl2cppBuild: {}
529 | allowUnsafeCode: 1
530 | additionalIl2CppArgs:
531 | scriptingRuntimeVersion: 1
532 | apiCompatibilityLevelPerPlatform: {}
533 | m_RenderingPath: 1
534 | m_MobileRenderingPath: 1
535 | metroPackageName: Template_3D
536 | metroPackageVersion:
537 | metroCertificatePath:
538 | metroCertificatePassword:
539 | metroCertificateSubject:
540 | metroCertificateIssuer:
541 | metroCertificateNotAfter: 0000000000000000
542 | metroApplicationDescription: Template_3D
543 | wsaImages: {}
544 | metroTileShortName:
545 | metroTileShowName: 0
546 | metroMediumTileShowName: 0
547 | metroLargeTileShowName: 0
548 | metroWideTileShowName: 0
549 | metroSupportStreamingInstall: 0
550 | metroLastRequiredScene: 0
551 | metroDefaultTileSize: 1
552 | metroTileForegroundText: 2
553 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0}
554 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628,
555 | a: 1}
556 | metroSplashScreenUseBackgroundColor: 0
557 | platformCapabilities: {}
558 | metroTargetDeviceFamilies: {}
559 | metroFTAName:
560 | metroFTAFileTypes: []
561 | metroProtocolName:
562 | metroCompilationOverrides: 1
563 | XboxOneProductId:
564 | XboxOneUpdateKey:
565 | XboxOneSandboxId:
566 | XboxOneContentId:
567 | XboxOneTitleId:
568 | XboxOneSCId:
569 | XboxOneGameOsOverridePath:
570 | XboxOnePackagingOverridePath:
571 | XboxOneAppManifestOverridePath:
572 | XboxOneVersion: 1.0.0.0
573 | XboxOnePackageEncryption: 0
574 | XboxOnePackageUpdateGranularity: 2
575 | XboxOneDescription:
576 | XboxOneLanguage:
577 | - enus
578 | XboxOneCapability: []
579 | XboxOneGameRating: {}
580 | XboxOneIsContentPackage: 0
581 | XboxOneEnableGPUVariability: 0
582 | XboxOneSockets: {}
583 | XboxOneSplashScreen: {fileID: 0}
584 | XboxOneAllowedProductIds: []
585 | XboxOnePersistentLocalStorageSize: 0
586 | XboxOneXTitleMemory: 8
587 | xboxOneScriptCompiler: 0
588 | XboxOneOverrideIdentityName:
589 | vrEditorSettings:
590 | daydream:
591 | daydreamIconForeground: {fileID: 0}
592 | daydreamIconBackground: {fileID: 0}
593 | cloudServicesEnabled:
594 | UNet: 1
595 | luminIcon:
596 | m_Name:
597 | m_ModelFolderPath:
598 | m_PortalFolderPath:
599 | luminCert:
600 | m_CertPath:
601 | m_PrivateKeyPath:
602 | luminIsChannelApp: 0
603 | luminVersion:
604 | m_VersionCode: 1
605 | m_VersionName:
606 | facebookSdkVersion: 7.9.4
607 | facebookAppId:
608 | facebookCookies: 1
609 | facebookLogging: 1
610 | facebookStatus: 1
611 | facebookXfbml: 0
612 | facebookFrictionlessRequests: 1
613 | apiCompatibilityLevel: 6
614 | cloudProjectId:
615 | framebufferDepthMemorylessMode: 0
616 | projectName:
617 | organizationId:
618 | cloudEnabled: 0
619 | enableNativePlatformBackendsForNewInputSystem: 0
620 | disableOldInputManagerSupport: 0
621 | legacyClampBlendShapeWeights: 0
622 |
--------------------------------------------------------------------------------
/ProjectSettings/ProjectVersion.txt:
--------------------------------------------------------------------------------
1 | m_EditorVersion: 2018.3.0f2
2 |
--------------------------------------------------------------------------------
/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: 4
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 | particleRaycastBudget: 4
33 | asyncUploadTimeSlice: 2
34 | asyncUploadBufferSize: 16
35 | resolutionScalingFixedDPIFactor: 1
36 | excludedTargetPlatforms: []
37 | - serializedVersion: 2
38 | name: Low
39 | pixelLightCount: 0
40 | shadows: 0
41 | shadowResolution: 0
42 | shadowProjection: 1
43 | shadowCascades: 1
44 | shadowDistance: 20
45 | shadowNearPlaneOffset: 3
46 | shadowCascade2Split: 0.33333334
47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
48 | shadowmaskMode: 0
49 | blendWeights: 2
50 | textureQuality: 0
51 | anisotropicTextures: 0
52 | antiAliasing: 0
53 | softParticles: 0
54 | softVegetation: 0
55 | realtimeReflectionProbes: 0
56 | billboardsFaceCameraPosition: 0
57 | vSyncCount: 0
58 | lodBias: 0.4
59 | maximumLODLevel: 0
60 | particleRaycastBudget: 16
61 | asyncUploadTimeSlice: 2
62 | asyncUploadBufferSize: 16
63 | resolutionScalingFixedDPIFactor: 1
64 | excludedTargetPlatforms: []
65 | - serializedVersion: 2
66 | name: Medium
67 | pixelLightCount: 1
68 | shadows: 1
69 | shadowResolution: 0
70 | shadowProjection: 1
71 | shadowCascades: 1
72 | shadowDistance: 20
73 | shadowNearPlaneOffset: 3
74 | shadowCascade2Split: 0.33333334
75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
76 | shadowmaskMode: 0
77 | blendWeights: 2
78 | textureQuality: 0
79 | anisotropicTextures: 1
80 | antiAliasing: 0
81 | softParticles: 0
82 | softVegetation: 0
83 | realtimeReflectionProbes: 0
84 | billboardsFaceCameraPosition: 0
85 | vSyncCount: 1
86 | lodBias: 0.7
87 | maximumLODLevel: 0
88 | particleRaycastBudget: 64
89 | asyncUploadTimeSlice: 2
90 | asyncUploadBufferSize: 16
91 | resolutionScalingFixedDPIFactor: 1
92 | excludedTargetPlatforms: []
93 | - serializedVersion: 2
94 | name: High
95 | pixelLightCount: 2
96 | shadows: 2
97 | shadowResolution: 1
98 | shadowProjection: 1
99 | shadowCascades: 2
100 | shadowDistance: 40
101 | shadowNearPlaneOffset: 3
102 | shadowCascade2Split: 0.33333334
103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
104 | shadowmaskMode: 1
105 | blendWeights: 2
106 | textureQuality: 0
107 | anisotropicTextures: 1
108 | antiAliasing: 2
109 | softParticles: 0
110 | softVegetation: 1
111 | realtimeReflectionProbes: 1
112 | billboardsFaceCameraPosition: 1
113 | vSyncCount: 1
114 | lodBias: 1
115 | maximumLODLevel: 0
116 | particleRaycastBudget: 256
117 | asyncUploadTimeSlice: 2
118 | asyncUploadBufferSize: 16
119 | resolutionScalingFixedDPIFactor: 1
120 | excludedTargetPlatforms: []
121 | - serializedVersion: 2
122 | name: Very High
123 | pixelLightCount: 3
124 | shadows: 2
125 | shadowResolution: 2
126 | shadowProjection: 1
127 | shadowCascades: 2
128 | shadowDistance: 40
129 | shadowNearPlaneOffset: 3
130 | shadowCascade2Split: 0.33333334
131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
132 | shadowmaskMode: 1
133 | blendWeights: 4
134 | textureQuality: 0
135 | anisotropicTextures: 1
136 | antiAliasing: 4
137 | softParticles: 1
138 | softVegetation: 1
139 | realtimeReflectionProbes: 1
140 | billboardsFaceCameraPosition: 1
141 | vSyncCount: 1
142 | lodBias: 1.5
143 | maximumLODLevel: 0
144 | particleRaycastBudget: 1024
145 | asyncUploadTimeSlice: 2
146 | asyncUploadBufferSize: 16
147 | resolutionScalingFixedDPIFactor: 1
148 | excludedTargetPlatforms: []
149 | - serializedVersion: 2
150 | name: Ultra
151 | pixelLightCount: 4
152 | shadows: 2
153 | shadowResolution: 2
154 | shadowProjection: 1
155 | shadowCascades: 4
156 | shadowDistance: 150
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: 1
164 | antiAliasing: 4
165 | softParticles: 1
166 | softVegetation: 1
167 | realtimeReflectionProbes: 1
168 | billboardsFaceCameraPosition: 1
169 | vSyncCount: 1
170 | lodBias: 2
171 | maximumLODLevel: 0
172 | particleRaycastBudget: 4096
173 | asyncUploadTimeSlice: 2
174 | asyncUploadBufferSize: 16
175 | resolutionScalingFixedDPIFactor: 1
176 | excludedTargetPlatforms: []
177 | m_PerPlatformDefaultQuality:
178 | Android: 2
179 | Nintendo 3DS: 5
180 | Nintendo Switch: 5
181 | PS4: 5
182 | PSP2: 2
183 | Standalone: 5
184 | Tizen: 2
185 | WebGL: 3
186 | WiiU: 5
187 | Windows Store Apps: 5
188 | XboxOne: 5
189 | iPhone: 2
190 | tvOS: 2
191 |
--------------------------------------------------------------------------------
/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 | - PostProcessing
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.1
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 |
--------------------------------------------------------------------------------