Update the projects to entities 1.0.0-exp.8 packages

This commit is contained in:
Abdul Algharbi 2022-09-27 16:09:01 -07:00
Родитель 0af8dc7281
Коммит 81d262961b
1954 изменённых файлов: 5831693 добавлений и 740981 удалений

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c35781bf5951a5e4b96a3072056e3366
guid: 46f57acf33de6b3428fb33bc0d13e03c
folderAsset: yes
DefaultImporter:
externalObjects: {}

Просмотреть файл

@ -0,0 +1,139 @@
using System.Collections.Generic;
using Unity.Burst;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
using Unity.Transforms;
using UnityEngine;
using UnityEngine.Profiling;
using Hash128 = Unity.Entities.Hash128;
public struct MeshBBFactorySettings
{
public Hash128 Hash;
public float MeshScale;
public int PointStartIndex;
public int PointCount;
public float3 MinBoundingBox;
public float3 MaxBoundingBox;
}
[BurstCompile]
public struct ComputeMeshBBAssetJob : IJobParallelFor
{
[ReadOnly] public NativeArray<MeshBBFactorySettings> Settings;
[ReadOnly] public NativeArray<float3> Vertices;
public NativeArray<BlobAssetReference<MeshBBBlobAsset>> BlobAssets;
public ComputeMeshBBAssetJob(NativeArray<MeshBBFactorySettings> settings, NativeArray<float3> vertices)
{
Settings = settings;
Vertices = vertices;
BlobAssets = new NativeArray<BlobAssetReference<MeshBBBlobAsset>>(settings.Length, Allocator.TempJob);
}
public void Execute(int index)
{
var builder = new BlobBuilder(Allocator.Temp);
var settings = Settings[index];
ref var root = ref builder.ConstructRoot<MeshBBBlobAsset>();
var array = builder.Allocate(ref root.Vertices, settings.PointCount);
var s = settings.MeshScale;
root.MeshScale = s;
root.MinBoundingBox = settings.MinBoundingBox * s;
root.MaxBoundingBox = settings.MaxBoundingBox * s;
for (int i = 0; i < array.Length; i++)
{
var v1 = Vertices[settings.PointStartIndex + i];
array[i] = new float3(v1.x * s, v1.y * s, v1.z * s);
}
BlobAssets[index] = builder.CreateBlobAssetReference<MeshBBBlobAsset>(Allocator.Persistent);
builder.Dispose();
}
}
public class MeshBBBaker : Baker<MeshToBoundingBoxAuthoring>
{
public override void Bake(MeshToBoundingBoxAuthoring authoring)
{
// new
var blobFactoryPoints = new NativeList<float3>(Allocator.TempJob);
var vertices = new List<Vector3>(4096);
Profiler.BeginSample("Bake_BuildHashAndPush");
// Compute the blob asset hash based on Authoring properties
var mesh = authoring.Mesh;
var hasMesh = mesh != null;
var meshHashCode = hasMesh ? mesh.GetHashCode() : 0;
var hash = new Hash128((uint) meshHashCode, (uint) authoring.MeshScale.GetHashCode(), 0, 0);
// Query the context to determine if we need to build the BlobAsset
if (!TryGetBlobAssetReference(hash, out BlobAssetReference<MeshBBBlobAsset> blobAssetReference))
{
Profiler.BeginSample("CopyVertices");
float xp = float.MinValue, yp = float.MinValue, zp = float.MinValue;
float xn = float.MaxValue, yn = float.MaxValue, zn = float.MaxValue;
// Copy the mesh vertices into the point array
if (hasMesh)
{
mesh.GetVertices(vertices);
for (int i = 0; i < vertices.Count; i++)
{
var p = vertices[i];
xp = math.max(p.x, xp);
yp = math.max(p.y, yp);
zp = math.max(p.z, zp);
xn = math.min(p.x, xn);
yn = math.min(p.y, yn);
zn = math.min(p.z, zn);
blobFactoryPoints.Add(new float3(p.x, p.y, p.z));
}
}
else
{
xp = yp = zp = xn = yn = zn = 0;
}
Profiler.EndSample();
// Record this blob asset for computation
var vertexCount = hasMesh ? mesh.vertexCount : 0;
var setting = new MeshBBFactorySettings
{
Hash = hash, MeshScale = authoring.MeshScale, PointStartIndex = 0,
PointCount = vertexCount, MinBoundingBox = new float3(xn, yn, zn),
MaxBoundingBox = new float3(xp, yp, zp)
};
Profiler.EndSample();
Profiler.BeginSample("Bake_CreateBlobAssets");
// Step two, compute BlobAssets
var job = new ComputeMeshBBAssetJob(new NativeArray<MeshBBFactorySettings>(1, Allocator.TempJob){[0] = setting}, blobFactoryPoints.AsArray());
job.Schedule(1,1).Complete();
blobAssetReference = job.BlobAssets[0];
AddBlobAssetWithCustomHash(ref blobAssetReference, setting.Hash);
}
Profiler.EndSample();
Profiler.BeginSample("Bake_CreateECS");
// Create the ECS component for the given GameObject
var entity = GetEntity(authoring);
AddComponent(entity, new MeshBBComponent(blobAssetReference));
#if !ENABLE_TRANSFORM_V1
AddComponent(entity, new LocalToWorldTransform {Value = UniformScaleTransform.FromPosition(authoring.transform.position)});
#else
AddComponent(entity, new Translation {Value = authoring.transform.position});
#endif
Profiler.EndSample();
blobFactoryPoints.Dispose();
}
}

Просмотреть файл

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: d49c4348cb4345d79b4ffef4439331ea
timeCreated: 1635961831

Просмотреть файл

@ -1,169 +0,0 @@
using System;
using System.Collections.Generic;
using Unity.Burst;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
using Unity.Transforms;
using UnityEngine;
using UnityEngine.Profiling;
using Hash128 = Unity.Entities.Hash128;
public struct MeshBBFactorySettings
{
public Hash128 Hash;
public float MeshScale;
public int PointStartIndex;
public int PointCount;
public float3 MinBoundingBox;
public float3 MaxBoundingBox;
}
public class MeshBBConversionSystem : GameObjectConversionSystem
{
protected override void OnCreate()
{
base.OnCreate();
GetEntityQuery(ComponentType.ReadOnly<MeshToBoundingBoxAuthoring>());
}
protected override void OnUpdate()
{
var blobFactoryPoints = new NativeList<float3>(Allocator.TempJob);
int curPointIndex = 0;
var vertices = new List<Vector3>(4096);
var processBlobAssets = new NativeList<Hash128>(32, Allocator.Temp);
Profiler.BeginSample("Conv_BuildHashAndPush");
using (var context = new BlobAssetComputationContext<MeshBBFactorySettings, MeshBBBlobAsset>(BlobAssetStore, 128, Allocator.Temp))
{
// First step: for all changed GameObjects we compute the hash of their blob asset then get the asset or register its computation
Entities.ForEach((MeshToBoundingBoxAuthoring auth) =>
{
// Compute the blob asset hash based on Authoring properties
var hasMesh = auth.Mesh != null;
var meshHashCode = hasMesh ? auth.Mesh.GetHashCode() : 0;
var hash = new Hash128((uint)meshHashCode, (uint)auth.MeshScale.GetHashCode(), 0, 0);
// Query the context to determine if we need to build the BlobAsset
processBlobAssets.Add(hash);
context.AssociateBlobAssetWithUnityObject(hash, auth.gameObject);
if (context.NeedToComputeBlobAsset(hash))
{
Profiler.BeginSample("CopyVertices");
float xp = float.MinValue, yp = float.MinValue, zp = float.MinValue;
float xn = float.MaxValue, yn = float.MaxValue, zn = float.MaxValue;
// Copy the mesh vertices into the point array
if (hasMesh)
{
auth.Mesh.GetVertices(vertices);
for (int i = 0; i < vertices.Count; i++)
{
var p = vertices[i];
xp = math.max(p.x, xp);
yp = math.max(p.y, yp);
zp = math.max(p.z, zp);
xn = math.min(p.x, xn);
yn = math.min(p.y, yn);
zn = math.min(p.z, zn);
blobFactoryPoints.Add(new float3(p.x, p.y, p.z));
}
}
else
{
xp = yp = zp = xn = yn = zn = 0;
}
Profiler.EndSample();
// Record this blob asset for computation
var vertexCount = hasMesh ? auth.Mesh.vertexCount : 0;
var setting = new MeshBBFactorySettings { Hash = hash, MeshScale = auth.MeshScale, PointStartIndex = curPointIndex, PointCount = vertexCount, MinBoundingBox = new float3(xn, yn, zn), MaxBoundingBox = new float3(xp, yp, zp)};
curPointIndex += vertexCount;
context.AddBlobAssetToCompute(hash, setting);
}
});
Profiler.EndSample();
Profiler.BeginSample("Conv_CreateBlobAssets");
using (var settings = context.GetSettings(Allocator.TempJob))
{
// Step two, compute BlobAssets
var job = new ComputeMeshBBAssetJob(settings, blobFactoryPoints.AsArray());
job.Schedule(job.Settings.Length, 1).Complete();
for (int i = 0; i < settings.Length; i++)
{
context.AddComputedBlobAsset(settings[i].Hash, job.BlobAssets[i]);
}
job.BlobAssets.Dispose();
}
Profiler.EndSample();
Profiler.BeginSample("Conv_CreateECS");
// Third step, create the ECS component with the associated blob asset
var index = 0;
Entities.ForEach((MeshToBoundingBoxAuthoring auth) =>
{
context.GetBlobAsset(processBlobAssets[index++], out var blob);
// Create the ECS component for the given GameObject
var entity = GetPrimaryEntity(auth);
DstEntityManager.AddComponentData(entity, new MeshBBComponent(blob));
DstEntityManager.AddComponentData(entity, new Translation {Value = auth.transform.position});
});
Profiler.EndSample();
blobFactoryPoints.Dispose();
processBlobAssets.Dispose();
}
}
}
[BurstCompile]
public struct ComputeMeshBBAssetJob : IJobParallelFor
{
[ReadOnly] public NativeArray<MeshBBFactorySettings> Settings;
[ReadOnly] public NativeArray<float3> Vertices;
public NativeArray<BlobAssetReference<MeshBBBlobAsset>> BlobAssets;
public ComputeMeshBBAssetJob(NativeArray<MeshBBFactorySettings> settings, NativeArray<float3> vertices)
{
Settings = settings;
Vertices = vertices;
BlobAssets = new NativeArray<BlobAssetReference<MeshBBBlobAsset>>(settings.Length, Allocator.TempJob);
}
public void Execute(int index)
{
var builder = new BlobBuilder(Allocator.Temp);
var settings = Settings[index];
ref var root = ref builder.ConstructRoot<MeshBBBlobAsset>();
var array = builder.Allocate(ref root.Vertices, settings.PointCount);
var s = settings.MeshScale;
root.MeshScale = s;
root.MinBoundingBox = settings.MinBoundingBox * s;
root.MaxBoundingBox = settings.MaxBoundingBox * s;
for (int i = 0; i < array.Length; i++)
{
var v1 = Vertices[settings.PointStartIndex + i];
array[i] = new float3(v1.x * s, v1.y * s, v1.z * s);
}
BlobAssets[index] = builder.CreateBlobAssetReference<MeshBBBlobAsset>(Allocator.Persistent);
builder.Dispose();
}
}

Просмотреть файл

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 80e6da02321640b098396b744b448398
timeCreated: 1571952937

Просмотреть файл

@ -4,31 +4,45 @@ using Unity.Mathematics;
using Unity.Transforms;
using UnityEngine;
[ExecuteAlways]
public class MeshBBRenderSystem : ComponentSystem
[WorldSystemFilter(WorldSystemFilterFlags.Default | WorldSystemFilterFlags.Editor)]
public partial class MeshBBRenderSystem : SystemBase
{
protected override void OnCreate()
{
RequireForUpdate<MeshBBComponent>();
}
protected override void OnUpdate()
{
#if !ENABLE_TRANSFORM_V1
Entities.ForEach((Entity e, ref MeshBBComponent dmc, ref LocalToWorldTransform t) =>
#else
Entities.ForEach((Entity e, ref MeshBBComponent dmc, ref Translation t) =>
#endif
{
var min = dmc.BlobData.Value.MinBoundingBox;
var max = dmc.BlobData.Value.MaxBoundingBox;
#if !ENABLE_TRANSFORM_V1
var pos = t.Value.Position;
#else
var pos = t.Value;
#endif
// Draw a bounding box
Debug.DrawLine(t.Value + new float3(min.x, min.y, min.z), t.Value + new float3(max.x, min.y, min.z));
Debug.DrawLine(t.Value + new float3(min.x, max.y, min.z), t.Value + new float3(max.x, max.y, min.z));
Debug.DrawLine(t.Value + new float3(min.x, min.y, min.z), t.Value + new float3(min.x, max.y, min.z));
Debug.DrawLine(t.Value + new float3(max.x, min.y, min.z), t.Value + new float3(max.x, max.y, min.z));
Debug.DrawLine(pos + new float3(min.x, min.y, min.z), pos + new float3(max.x, min.y, min.z));
Debug.DrawLine(pos + new float3(min.x, max.y, min.z), pos + new float3(max.x, max.y, min.z));
Debug.DrawLine(pos + new float3(min.x, min.y, min.z), pos + new float3(min.x, max.y, min.z));
Debug.DrawLine(pos + new float3(max.x, min.y, min.z), pos + new float3(max.x, max.y, min.z));
Debug.DrawLine(t.Value + new float3(min.x, min.y, max.z), t.Value + new float3(max.x, min.y, max.z));
Debug.DrawLine(t.Value + new float3(min.x, max.y, max.z), t.Value + new float3(max.x, max.y, max.z));
Debug.DrawLine(t.Value + new float3(min.x, min.y, max.z), t.Value + new float3(min.x, max.y, max.z));
Debug.DrawLine(t.Value + new float3(max.x, min.y, max.z), t.Value + new float3(max.x, max.y, max.z));
Debug.DrawLine(pos + new float3(min.x, min.y, max.z), pos + new float3(max.x, min.y, max.z));
Debug.DrawLine(pos + new float3(min.x, max.y, max.z), pos + new float3(max.x, max.y, max.z));
Debug.DrawLine(pos + new float3(min.x, min.y, max.z), pos + new float3(min.x, max.y, max.z));
Debug.DrawLine(pos + new float3(max.x, min.y, max.z), pos + new float3(max.x, max.y, max.z));
Debug.DrawLine(t.Value + new float3(min.x, min.y, min.z), t.Value + new float3(min.x, min.y, max.z));
Debug.DrawLine(t.Value + new float3(max.x, min.y, min.z), t.Value + new float3(max.x, min.y, max.z));
Debug.DrawLine(t.Value + new float3(min.x, max.y, min.z), t.Value + new float3(min.x, max.y, max.z));
Debug.DrawLine(t.Value + new float3(max.x, max.y, min.z), t.Value + new float3(max.x, max.y, max.z));
});
Debug.DrawLine(pos + new float3(min.x, min.y, min.z), pos + new float3(min.x, min.y, max.z));
Debug.DrawLine(pos + new float3(max.x, min.y, min.z), pos + new float3(max.x, min.y, max.z));
Debug.DrawLine(pos + new float3(min.x, max.y, min.z), pos + new float3(min.x, max.y, max.z));
Debug.DrawLine(pos + new float3(max.x, max.y, min.z), pos + new float3(max.x, max.y, max.z));
}).ScheduleParallel();
}
}

Просмотреть файл

@ -35,9 +35,9 @@ public struct SimpleAnimationBlob
return math.lerp(Keys[index], Keys[index+1], interp);
}
public static BlobAssetReference<SimpleAnimationBlob> CreateBlob(AnimationCurve curve, Allocator allocator)
public static BlobAssetReference<SimpleAnimationBlob> CreateBlob(AnimationCurve curve, Allocator allocator, Allocator allocatorForTemp = Allocator.TempJob)
{
using (var blob = new BlobBuilder(Allocator.TempJob))
using (var blob = new BlobBuilder(allocatorForTemp))
{
ref var anim = ref blob.ConstructRoot<SimpleAnimationBlob>();
int keyCount = 12;

Просмотреть файл

@ -3,21 +3,23 @@ using Unity.Entities;
using Unity.Transforms;
using UnityEngine;
public class SimpleBlobAnimationAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class SimpleBlobAnimationAuthoring : MonoBehaviour
{
public AnimationCurve Curve = AnimationCurve.EaseInOut(0, 0, 1, 1);
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<SimpleBlobAnimationAuthoring>
{
var blob = SimpleAnimationBlob.CreateBlob(Curve, Allocator.Persistent);
public override void Bake(SimpleBlobAnimationAuthoring authoring)
{
var blob = SimpleAnimationBlob.CreateBlob(authoring.Curve, Allocator.Persistent);
// Add the generated blob asset to the blob asset store.
// if another component generates the exact same blob asset, it will automatically be shared.
// Ownership of the blob asset is passed to the BlobAssetStore,
// it will automatically manage the lifetime of the blob asset.
conversionSystem.BlobAssetStore.AddUniqueBlobAsset(ref blob);
dstManager.AddComponentData(entity, new SimpleBlobAnimation { Anim = blob });
// Add the generated blob asset to the blob asset store.
// if another component generates the exact same blob asset, it will automatically be shared.
// Ownership of the blob asset is passed to the BlobAssetStore,
// it will automatically manage the lifetime of the blob asset.
AddBlobAsset(ref blob, out _);
AddComponent(new SimpleBlobAnimation { Anim = blob });
}
}
}
public struct SimpleBlobAnimation : IComponentData
@ -26,15 +28,24 @@ public struct SimpleBlobAnimation : IComponentData
public float T;
}
[RequireMatchingQueriesForUpdate]
partial class SimpleBlobAnimationSystem : SystemBase
{
protected override void OnUpdate()
{
var dt = Time.DeltaTime;
var dt = SystemAPI.Time.DeltaTime;
#if !ENABLE_TRANSFORM_V1
Entities.ForEach((ref SimpleBlobAnimation anim, ref LocalToWorldTransform transform) =>
#else
Entities.ForEach((ref SimpleBlobAnimation anim, ref Translation translation) =>
#endif
{
anim.T += dt;
#if !ENABLE_TRANSFORM_V1
transform.Value.Position.y = anim.Anim.Value.Evaluate(anim.T);
#else
translation.Value.y = anim.Anim.Value.Evaluate(anim.T);
#endif
}).Run();
}
}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 39b59cbc2458ad74a8f55942b3b9faad
guid: 0206502a513ddbe41afea17f7bceda9a
folderAsset: yes
DefaultImporter:
externalObjects: {}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fbce809cef3ab63428fc6756bf764bbf
guid: d5cc844bebab1624ba4c02cc858b99d6
folderAsset: yes
DefaultImporter:
externalObjects: {}

Просмотреть файл

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -23,6 +23,8 @@ Material:
m_Name: Fish
m_Shader: {fileID: -6465566751694194690, guid: 98c2c61ba3033b24e9ce5008f3fd50a5,
type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 2
@ -31,6 +33,7 @@ Material:
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:

Просмотреть файл

@ -9,6 +9,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: Floor1
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
@ -18,6 +20,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -84,7 +87,9 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
@ -94,6 +99,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
@ -108,6 +114,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1
@ -130,4 +137,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7

Просмотреть файл

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -22,6 +22,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: InstanceMat
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
@ -31,6 +33,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -97,7 +100,9 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
@ -107,6 +112,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
@ -121,6 +127,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1

Просмотреть файл

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -22,6 +22,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: OuterWall2
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _NORMALMAP
m_InvalidKeywords: []
@ -32,6 +34,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -98,7 +101,9 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
@ -108,6 +113,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
@ -122,6 +128,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1

Просмотреть файл

@ -10,6 +10,8 @@ Material:
m_Name: RedFish
m_Shader: {fileID: -6465566751694194690, guid: 98c2c61ba3033b24e9ce5008f3fd50a5,
type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- _EMISSION
@ -21,6 +23,7 @@ Material:
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -147,7 +150,7 @@ Material:
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.16176468, g: 0.16176468, b: 0.16176468, a: 1}
m_BuildTextureStacks: []
--- !u!114 &7543649369778049463
--- !u!114 &3014609738461782787
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
@ -159,4 +162,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7

Просмотреть файл

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -22,6 +22,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: Rock
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _METALLICSPECGLOSSMAP
- _NORMALMAP
@ -34,6 +36,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -100,7 +103,9 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
@ -110,6 +115,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0.5
@ -124,6 +130,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 0

Просмотреть файл

@ -1,18 +1,5 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5570847187570327751
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -23,6 +10,8 @@ Material:
m_Name: Seaweed
m_Shader: {fileID: -6465566751694194690, guid: 98c2c61ba3033b24e9ce5008f3fd50a5,
type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 2
@ -31,6 +20,7 @@ Material:
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -137,3 +127,16 @@ Material:
- _Color: {r: 0.21453287, g: 0.45588237, b: 0.30607924, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
m_BuildTextureStacks: []
--- !u!114 &1231831338894256371
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7

Просмотреть файл

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-3437174772187449535
--- !u!114 &-7771584550963380604
MonoBehaviour:
m_ObjectHideFlags: 11
m_CorrespondingSourceObject: {fileID: 0}
@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -23,6 +23,8 @@ Material:
m_Name: Shark
m_Shader: {fileID: -6465566751694194690, guid: 98c2c61ba3033b24e9ce5008f3fd50a5,
type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- _EMISSION
@ -32,6 +34,7 @@ Material:
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:

Просмотреть файл

@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
@ -22,6 +22,8 @@ Material:
m_PrefabAsset: {fileID: 0}
m_Name: Surface
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
- _EMISSION
m_InvalidKeywords: []
@ -32,6 +34,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@ -98,7 +101,9 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoat: 0
- _ClearCoatMask: 0
@ -108,6 +113,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 1
- _Glossiness: 0
@ -122,6 +128,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1

Просмотреть файл

@ -1,8 +1,7 @@
fileFormatVersion: 2
guid: b0a4152090be2495380e76763a66a3c1
NativeFormatImporter:
guid: 79a37646f9bdc5f419ac181f3d342769
PrefabImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -105,7 +105,7 @@ NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -118,7 +118,7 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
@ -172,7 +172,7 @@ MonoBehaviour:
SamplesPerSecond: 15
--- !u!95 &474439580
Animator:
serializedVersion: 3
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -185,6 +185,7 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
@ -200,6 +201,7 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -245,13 +247,14 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 474439577}
m_LocalRotation: {x: 0.014563181, y: 0.15116385, z: 0.028804462, w: 0.9879817}
m_LocalRotation: {x: 0.014563183, y: 0.15116394, z: 0.028804459, w: 0.9879817}
m_LocalPosition: {x: -10.663338, y: -0.7635689, z: 86.67111}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 897412790}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 1.1498826, y: 17.43319, z: 3.5162554}
m_LocalEulerAnglesHint: {x: 1.1498826, y: 17.433197, z: 3.5162554}
--- !u!1 &614494510
GameObject:
m_ObjectHideFlags: 0
@ -294,6 +297,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 20, y: 5, z: 120}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 897412790}
m_RootOrder: 3
@ -327,7 +331,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7902971f5de2463dbf747e9fbf85a87e, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 1501737747371270, guid: b0a4152090be2495380e76763a66a3c1, type: 3}
Prefab: {fileID: 1501737747371270, guid: 79a37646f9bdc5f419ac181f3d342769, type: 3}
InitialRadius: 15
Count: 25000
--- !u!4 &675244200
@ -340,6 +344,7 @@ Transform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -40, y: 5, z: 120}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 897412790}
m_RootOrder: 4
@ -370,6 +375,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1543227737}
- {fileID: 474439584}
@ -427,7 +433,7 @@ MonoBehaviour:
SamplesPerSecond: 15
--- !u!95 &1543227733
Animator:
serializedVersion: 3
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -440,6 +446,7 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
@ -455,6 +462,7 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -501,8 +509,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1543227730}
m_LocalRotation: {x: -0.010592553, y: 0.0083452305, z: 0.00008840532, w: 0.9999091}
m_LocalPosition: {x: 9.89418, y: 10.996906, z: 89.81562}
m_LocalPosition: {x: 9.894188, y: 10.996906, z: 89.81562}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 897412790}
m_RootOrder: 0
@ -530,7 +539,7 @@ GameObject:
m_IsActive: 1
--- !u!95 &1873786724
Animator:
serializedVersion: 3
serializedVersion: 4
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@ -543,6 +552,7 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
@ -558,6 +568,7 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
@ -616,8 +627,9 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1873786723}
m_LocalRotation: {x: -0.048202608, y: 0.99747795, z: -0.0038057854, w: 0.051960003}
m_LocalPosition: {x: 0.3035062, y: 14.478014, z: -9.213352}
m_LocalPosition: {x: 0.3035062, y: 14.478014, z: -9.213356}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 897412790}
m_RootOrder: 2

Просмотреть файл

@ -6,29 +6,18 @@ using Unity.Transforms;
namespace Samples.Boids
{
[UpdateInGroup(typeof(GameObjectConversionGroup))]
[ConverterVersion("macton", 5)]
public class BoidConversion : GameObjectConversionSystem
public class BoidAuthoringBaker : Baker<BoidAuthoring>
{
protected override void OnUpdate()
public override void Bake(BoidAuthoring authoring)
{
Entities.ForEach((BoidAuthoring boidAuthoring) =>
AddSharedComponent( new Boid
{
var entity = GetPrimaryEntity(boidAuthoring);
DstEntityManager.AddSharedComponentData(entity, new Boid
{
CellRadius = boidAuthoring.CellRadius,
SeparationWeight = boidAuthoring.SeparationWeight,
AlignmentWeight = boidAuthoring.AlignmentWeight,
TargetWeight = boidAuthoring.TargetWeight,
ObstacleAversionDistance = boidAuthoring.ObstacleAversionDistance,
MoveSpeed = boidAuthoring.MoveSpeed
});
// Remove default transform system components
DstEntityManager.RemoveComponent<Translation>(entity);
DstEntityManager.RemoveComponent<Rotation>(entity);
CellRadius = authoring.CellRadius,
SeparationWeight = authoring.SeparationWeight,
AlignmentWeight = authoring.AlignmentWeight,
TargetWeight = authoring.TargetWeight,
ObstacleAversionDistance = authoring.ObstacleAversionDistance,
MoveSpeed = authoring.MoveSpeed
});
}
}

Просмотреть файл

@ -6,12 +6,13 @@ using Unity.Entities;
using UnityEngine;
[AddComponentMenu("DOTS Samples/Boids/BoidObstacle")]
[ConverterVersion("joe", 1)]
public class BoidObstacleAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class BoidObstacleAuthoring : MonoBehaviour {}
public class BoidObstacleAuthoringBaker : Baker<BoidObstacleAuthoring>
{
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
public override void Bake(BoidObstacleAuthoring authoring)
{
dstManager.AddComponentData(entity, new BoidObstacle());
AddComponent(new BoidObstacle());
}
}

Просмотреть файл

@ -16,14 +16,17 @@ namespace Samples.Boids
public int Count;
}
[RequireMatchingQueriesForUpdate]
public partial class BoidSchoolSpawnSystem : SystemBase
{
public ComponentLookup<LocalToWorld> LocalToWorldFromEntity;
[BurstCompile]
struct SetBoidLocalToWorld : IJobParallelFor
{
[NativeDisableContainerSafetyRestriction]
[NativeDisableParallelForRestriction]
public ComponentDataFromEntity<LocalToWorld> LocalToWorldFromEntity;
public ComponentLookup<LocalToWorld> LocalToWorldFromEntity;
public NativeArray<Entity> Entities;
public float3 Center;
@ -43,6 +46,11 @@ namespace Samples.Boids
}
}
protected override void OnCreate()
{
LocalToWorldFromEntity = GetComponentLookup<LocalToWorld>();
}
protected override void OnUpdate()
{
Entities.WithStructuralChanges().ForEach((Entity entity, int entityInQueryIndex, in BoidSchool boidSchool, in LocalToWorld boidSchoolLocalToWorld) =>
@ -54,10 +62,10 @@ namespace Samples.Boids
EntityManager.Instantiate(boidSchool.Prefab, boidEntities);
Profiler.EndSample();
var localToWorldFromEntity = GetComponentDataFromEntity<LocalToWorld>();
LocalToWorldFromEntity.Update(this);
var setBoidLocalToWorldJob = new SetBoidLocalToWorld
{
LocalToWorldFromEntity = localToWorldFromEntity,
LocalToWorldFromEntity = LocalToWorldFromEntity,
Entities = boidEntities,
Center = boidSchoolLocalToWorld.Position,
Radius = boidSchool.InitialRadius

Просмотреть файл

@ -8,25 +8,22 @@ using UnityEngine;
namespace Samples.Boids
{
[AddComponentMenu("DOTS Samples/Boids/BoidSchool")]
[ConverterVersion("macton", 4)]
public class BoidSchoolAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class BoidSchoolAuthoring : MonoBehaviour
{
public GameObject Prefab;
public float InitialRadius;
public int Count;
}
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
public class BoidSchoolAuthoringBaker : Baker<BoidSchoolAuthoring>
{
public override void Bake(BoidSchoolAuthoring authoring)
{
referencedPrefabs.Add(Prefab);
}
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
{
dstManager.AddComponentData(entity, new BoidSchool
AddComponent( new BoidSchool
{
Prefab = conversionSystem.GetPrimaryEntity(Prefab),
Count = Count,
InitialRadius = InitialRadius
Prefab = GetEntity(authoring.Prefab),
Count = authoring.Count,
InitialRadius = authoring.InitialRadius
});
}
}

Просмотреть файл

@ -1,8 +1,8 @@
using System.Collections.Generic;
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Burst;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Mathematics;
using Unity.Transforms;
@ -17,9 +17,11 @@ using Unity.Transforms;
namespace Samples.Boids
{
[RequireMatchingQueriesForUpdate]
[UpdateInGroup(typeof(SimulationSystemGroup))]
[UpdateBefore(typeof(TransformSystemGroup))]
public partial class BoidSystem : SystemBase
[BurstCompile]
public partial struct BoidSystem : ISystem
{
EntityQuery m_BoidQuery;
EntityQuery m_TargetQuery;
@ -28,7 +30,6 @@ namespace Samples.Boids
// In this sample there are 3 total unique boid variants, one for each unique value of the
// Boid SharedComponent (note: this includes the default uninitialized value at
// index 0, which isnt actually used in the sample).
List<Boid> m_UniqueTypes = new List<Boid>(3);
// This accumulates the `positions` (separations) and `headings` (alignments) of all the boids in each cell to:
// 1) count the number of boids in each cell
@ -95,29 +96,160 @@ namespace Samples.Boids
public void ExecuteNext(int cellIndex, int index)
{
cellCount[cellIndex] += 1;
cellAlignment[cellIndex] = cellAlignment[cellIndex] + cellAlignment[index];
cellSeparation[cellIndex] = cellSeparation[cellIndex] + cellSeparation[index];
cellAlignment[cellIndex] += cellAlignment[cellIndex];
cellSeparation[cellIndex] += cellSeparation[cellIndex];
cellIndices[index] = cellIndex;
}
}
protected override void OnUpdate()
[BurstCompile]
partial struct InitialPerBoidJob : IJobEntity
{
[ReadOnly] public NativeArray<int> ChunkBaseEntityIndices;
[NativeDisableParallelForRestriction] public NativeArray<float3> CellAlignment;
[NativeDisableParallelForRestriction] public NativeArray<float3> CellSeparation;
public NativeMultiHashMap<int, int>.ParallelWriter ParallelHashMap;
public float InverseBoidCellRadius;
void Execute([ChunkIndexInQuery] int chunkIndexInQuery, [EntityIndexInChunk] int entityIndexInChunk, in LocalToWorld localToWorld)
{
int entityInQueryIndex = ChunkBaseEntityIndices[chunkIndexInQuery] + entityIndexInChunk;
CellAlignment[entityInQueryIndex] = localToWorld.Forward;
CellSeparation[entityInQueryIndex] = localToWorld.Position;
// Populates a hash map, where each bucket contains the indices of all Boids whose positions quantize
// to the same value for a given cell radius so that the information can be randomly accessed by
// the `MergeCells` and `Steer` jobs.
// This is useful in terms of the algorithm because it limits the number of comparisons that will
// actually occur between the different boids. Instead of for each boid, searching through all
// boids for those within a certain radius, this limits those by the hash-to-bucket simplification.
var hash = (int)math.hash(new int3(math.floor(localToWorld.Position * InverseBoidCellRadius)));
ParallelHashMap.Add(hash, entityInQueryIndex);
}
}
[BurstCompile]
partial struct InitialPerTargetJob : IJobEntity
{
[ReadOnly] public NativeArray<int> ChunkBaseEntityIndices;
[NativeDisableParallelForRestriction] public NativeArray<float3> TargetPositions;
void Execute([ChunkIndexInQuery] int chunkIndexInQuery, [EntityIndexInChunk] int entityIndexInChunk, in LocalToWorld localToWorld)
{
int entityInQueryIndex = ChunkBaseEntityIndices[chunkIndexInQuery] + entityIndexInChunk;
TargetPositions[entityInQueryIndex] = localToWorld.Position;
}
}
[BurstCompile]
partial struct InitialPerObstacleJob : IJobEntity
{
[ReadOnly] public NativeArray<int> ChunkBaseEntityIndices;
[NativeDisableParallelForRestriction] public NativeArray<float3> ObstaclePositions;
void Execute([ChunkIndexInQuery] int chunkIndexInQuery, [EntityIndexInChunk] int entityIndexInChunk, in LocalToWorld localToWorld)
{
int entityInQueryIndex = ChunkBaseEntityIndices[chunkIndexInQuery] + entityIndexInChunk;
ObstaclePositions[entityInQueryIndex] = localToWorld.Position;
}
}
[BurstCompile]
partial struct SteerBoidJob : IJobEntity
{
[ReadOnly] public NativeArray<int> ChunkBaseEntityIndices;
[ReadOnly] public NativeArray<int> CellIndices;
[ReadOnly] public NativeArray<int> CellCount;
[ReadOnly] public NativeArray<float3> CellAlignment;
[ReadOnly] public NativeArray<float3> CellSeparation;
[ReadOnly] public NativeArray<float> CellObstacleDistance;
[ReadOnly] public NativeArray<int> CellObstaclePositionIndex;
[ReadOnly] public NativeArray<int> CellTargetPositionIndex;
[ReadOnly] public NativeArray<float3> ObstaclePositions;
[ReadOnly] public NativeArray<float3> TargetPositions;
public Boid CurrentBoidVariant;
public float DeltaTime;
public float MoveDistance;
void Execute([ChunkIndexInQuery] int chunkIndexInQuery, [EntityIndexInChunk] int entityIndexInChunk, ref LocalToWorld localToWorld)
{
int entityInQueryIndex = ChunkBaseEntityIndices[chunkIndexInQuery] + entityIndexInChunk;
// temporarily storing the values for code readability
var forward = localToWorld.Forward;
var currentPosition = localToWorld.Position;
var cellIndex = CellIndices[entityInQueryIndex];
var neighborCount = CellCount[cellIndex];
var alignment = CellAlignment[cellIndex];
var separation = CellSeparation[cellIndex];
var nearestObstacleDistance = CellObstacleDistance[cellIndex];
var nearestObstaclePositionIndex = CellObstaclePositionIndex[cellIndex];
var nearestTargetPositionIndex = CellTargetPositionIndex[cellIndex];
var nearestObstaclePosition = ObstaclePositions[nearestObstaclePositionIndex];
var nearestTargetPosition = TargetPositions[nearestTargetPositionIndex];
// Setting up the directions for the three main biocrowds influencing directions adjusted based
// on the predefined weights:
// 1) alignment - how much should it move in a direction similar to those around it?
// note: we use `alignment/neighborCount`, because we need the average alignment in this case; however
// alignment is currently the summation of all those of the boids within the cellIndex being considered.
var alignmentResult = CurrentBoidVariant.AlignmentWeight
* math.normalizesafe((alignment / neighborCount) - forward);
// 2) separation - how close is it to other boids and are there too many or too few for comfort?
// note: here separation represents the summed possible center of the cell. We perform the multiplication
// so that both `currentPosition` and `separation` are weighted to represent the cell as a whole and not
// the current individual boid.
var separationResult = CurrentBoidVariant.SeparationWeight
* math.normalizesafe((currentPosition * neighborCount) - separation);
// 3) target - is it still towards its destination?
var targetHeading = CurrentBoidVariant.TargetWeight
* math.normalizesafe(nearestTargetPosition - currentPosition);
// creating the obstacle avoidant vector s.t. it's pointing towards the nearest obstacle
// but at the specified 'ObstacleAversionDistance'. If this distance is greater than the
// current distance to the obstacle, the direction becomes inverted. This simulates the
// idea that if `currentPosition` is too close to an obstacle, the weight of this pushes
// the current boid to escape in the fastest direction; however, if the obstacle isn't
// too close, the weighting denotes that the boid doesnt need to escape but will move
// slower if still moving in that direction (note: we end up not using this move-slower
// case, because of `targetForward`'s decision to not use obstacle avoidance if an obstacle
// isn't close enough).
var obstacleSteering = currentPosition - nearestObstaclePosition;
var avoidObstacleHeading = (nearestObstaclePosition + math.normalizesafe(obstacleSteering)
* CurrentBoidVariant.ObstacleAversionDistance) - currentPosition;
// the updated heading direction. If not needing to be avoidant (ie obstacle is not within
// predefined radius) then go with the usual defined heading that uses the amalgamation of
// the weighted alignment, separation, and target direction vectors.
var nearestObstacleDistanceFromRadius = nearestObstacleDistance - CurrentBoidVariant.ObstacleAversionDistance;
var normalHeading = math.normalizesafe(alignmentResult + separationResult + targetHeading);
var targetForward = math.select(normalHeading, avoidObstacleHeading, nearestObstacleDistanceFromRadius < 0);
// updates using the newly calculated heading direction
var nextHeading = math.normalizesafe(forward + DeltaTime * (targetForward - forward));
localToWorld = new LocalToWorld
{
Value = float4x4.TRS(
// TODO: precalc speed*dt
new float3(localToWorld.Position + (nextHeading * MoveDistance)),
quaternion.LookRotationSafe(nextHeading, math.up()),
new float3(1.0f, 1.0f, 1.0f))
};
}
}
[BurstCompile]
public void OnUpdate(ref SystemState state)
{
var obstacleCount = m_ObstacleQuery.CalculateEntityCount();
var targetCount = m_TargetQuery.CalculateEntityCount();
EntityManager.GetAllUniqueSharedComponentData(m_UniqueTypes);
var world = state.WorldUnmanaged;
state.EntityManager.GetAllUniqueSharedComponents(out NativeList<Boid> uniqueBoidTypes, world.UpdateAllocator.ToAllocator);
float dt = math.min(0.05f, SystemAPI.Time.DeltaTime);
// Each variant of the Boid represents a different value of the SharedComponentData and is self-contained,
// meaning Boids of the same variant only interact with one another. Thus, this loop processes each
// variant type individually.
for (int boidVariantIndex = 0; boidVariantIndex < m_UniqueTypes.Count; boidVariantIndex++)
foreach (var boidSettings in uniqueBoidTypes)
{
var settings = m_UniqueTypes[boidVariantIndex];
m_BoidQuery.AddSharedComponentFilter(settings);
m_BoidQuery.AddSharedComponentFilter(boidSettings);
var boidCount = m_BoidQuery.CalculateEntityCount();
if (boidCount == 0)
{
// Early out. If the given variant includes no Boids, move on to the next loop.
@ -131,8 +263,7 @@ namespace Samples.Boids
// note: working with a sparse grid and not a dense bounded grid so there
// are no predefined borders of the space.
var world = World.Unmanaged;
var hashMap = new NativeParallelMultiHashMap<int, int>(boidCount, world.UpdateAllocator.ToAllocator);
var hashMap = new NativeMultiHashMap<int, int>(boidCount, world.UpdateAllocator.ToAllocator);
var cellIndices = CollectionHelper.CreateNativeArray<int, RewindableAllocator>(boidCount, ref world.UpdateAllocator);
var cellObstaclePositionIndex = CollectionHelper.CreateNativeArray<int, RewindableAllocator>(boidCount, ref world.UpdateAllocator);
var cellTargetPositionIndex = CollectionHelper.CreateNativeArray<int, RewindableAllocator>(boidCount, ref world.UpdateAllocator);
@ -148,74 +279,52 @@ namespace Samples.Boids
// input dependencies when the jobs are scheduled; thus, they can run in any order (or concurrently).
// The concurrency is property of how they're scheduled, not of the job structs themselves.
var boidChunkBaseEntityIndexArray = m_BoidQuery.CalculateBaseEntityIndexArrayAsync(
world.UpdateAllocator.ToAllocator, state.Dependency,
out var boidChunkBaseIndexJobHandle);
var targetChunkBaseEntityIndexArray = m_TargetQuery.CalculateBaseEntityIndexArrayAsync(
world.UpdateAllocator.ToAllocator, state.Dependency,
out var targetChunkBaseIndexJobHandle);
var obstacleChunkBaseEntityIndexArray = m_ObstacleQuery.CalculateBaseEntityIndexArrayAsync(
world.UpdateAllocator.ToAllocator, state.Dependency,
out var obstacleChunkBaseIndexJobHandle);
// These jobs extract the relevant position, heading component
// to NativeArrays so that they can be randomly accessed by the `MergeCells` and `Steer` jobs.
// These jobs are defined inline using the Entities.ForEach lambda syntax.
var initialCellAlignmentJobHandle = Entities
.WithSharedComponentFilter(settings)
.WithName("InitialCellAlignmentJob")
.ForEach((int entityInQueryIndex, in LocalToWorld localToWorld) =>
{
cellAlignment[entityInQueryIndex] = localToWorld.Forward;
})
.ScheduleParallel(Dependency);
// These jobs are defined using the IJobEntity syntax.
var initialBoidJob = new InitialPerBoidJob
{
ChunkBaseEntityIndices = boidChunkBaseEntityIndexArray,
CellAlignment = cellAlignment,
CellSeparation = cellSeparation,
ParallelHashMap = hashMap.AsParallelWriter(),
InverseBoidCellRadius = 1.0f / boidSettings.CellRadius,
};
var initialBoidJobHandle = initialBoidJob.ScheduleParallel(m_BoidQuery, boidChunkBaseIndexJobHandle);
var initialCellSeparationJobHandle = Entities
.WithSharedComponentFilter(settings)
.WithName("InitialCellSeparationJob")
.ForEach((int entityInQueryIndex, in LocalToWorld localToWorld) =>
{
cellSeparation[entityInQueryIndex] = localToWorld.Position;
})
.ScheduleParallel(Dependency);
var initialTargetJob = new InitialPerTargetJob
{
ChunkBaseEntityIndices = targetChunkBaseEntityIndexArray,
TargetPositions = copyTargetPositions,
};
var initialTargetJobHandle = initialTargetJob.ScheduleParallel(m_TargetQuery, targetChunkBaseIndexJobHandle);
var copyTargetPositionsJobHandle = Entities
.WithName("CopyTargetPositionsJob")
.WithAll<BoidTarget>()
.WithStoreEntityQueryInField(ref m_TargetQuery)
.ForEach((int entityInQueryIndex, in LocalToWorld localToWorld) =>
{
copyTargetPositions[entityInQueryIndex] = localToWorld.Position;
})
.ScheduleParallel(Dependency);
var copyObstaclePositionsJobHandle = Entities
.WithName("CopyObstaclePositionsJob")
.WithAll<BoidObstacle>()
.WithStoreEntityQueryInField(ref m_ObstacleQuery)
.ForEach((int entityInQueryIndex, in LocalToWorld localToWorld) =>
{
copyObstaclePositions[entityInQueryIndex] = localToWorld.Position;
})
.ScheduleParallel(Dependency);
// Populates a hash map, where each bucket contains the indices of all Boids whose positions quantize
// to the same value for a given cell radius so that the information can be randomly accessed by
// the `MergeCells` and `Steer` jobs.
// This is useful in terms of the algorithm because it limits the number of comparisons that will
// actually occur between the different boids. Instead of for each boid, searching through all
// boids for those within a certain radius, this limits those by the hash-to-bucket simplification.
var parallelHashMap = hashMap.AsParallelWriter();
var hashPositionsJobHandle = Entities
.WithName("HashPositionsJob")
.WithAll<Boid>()
.ForEach((int entityInQueryIndex, in LocalToWorld localToWorld) =>
{
var hash = (int)math.hash(new int3(math.floor(localToWorld.Position / settings.CellRadius)));
parallelHashMap.Add(hash, entityInQueryIndex);
})
.ScheduleParallel(Dependency);
var initialObstacleJob = new InitialPerObstacleJob
{
ChunkBaseEntityIndices = obstacleChunkBaseEntityIndexArray,
ObstaclePositions = copyObstaclePositions,
};
var initialObstacleJobHandle = initialObstacleJob.ScheduleParallel(m_ObstacleQuery, obstacleChunkBaseIndexJobHandle);
var initialCellCountJob = new MemsetNativeArray<int>
{
Source = cellCount,
Value = 1
};
var initialCellCountJobHandle = initialCellCountJob.Schedule(boidCount, 64, Dependency);
var initialCellCountJobHandle = initialCellCountJob.Schedule(boidCount, 64, state.Dependency);
var initialCellBarrierJobHandle = JobHandle.CombineDependencies(initialCellAlignmentJobHandle, initialCellSeparationJobHandle, initialCellCountJobHandle);
var copyTargetObstacleBarrierJobHandle = JobHandle.CombineDependencies(copyTargetPositionsJobHandle, copyObstaclePositionsJobHandle);
var mergeCellsBarrierJobHandle = JobHandle.CombineDependencies(hashPositionsJobHandle, initialCellBarrierJobHandle, copyTargetObstacleBarrierJobHandle);
var initialCellBarrierJobHandle = JobHandle.CombineDependencies(initialBoidJobHandle, initialCellCountJobHandle);
var copyTargetObstacleBarrierJobHandle = JobHandle.CombineDependencies(initialTargetJobHandle, initialObstacleJobHandle);
var mergeCellsBarrierJobHandle = JobHandle.CombineDependencies(initialCellBarrierJobHandle, copyTargetObstacleBarrierJobHandle);
var mergeCellsJob = new MergeCells
{
@ -234,106 +343,59 @@ namespace Samples.Boids
// This reads the previously calculated boid information for all the boids of each cell to update
// the `localToWorld` of each of the boids based on their newly calculated headings using
// the standard boid flocking algorithm.
float deltaTime = math.min(0.05f, Time.DeltaTime);
var steerJobHandle = Entities
.WithName("Steer")
.WithSharedComponentFilter(settings) // implies .WithAll<Boid>()
.WithReadOnly(cellIndices)
.WithReadOnly(cellCount)
.WithReadOnly(cellAlignment)
.WithReadOnly(cellSeparation)
.WithReadOnly(cellObstacleDistance)
.WithReadOnly(cellObstaclePositionIndex)
.WithReadOnly(cellTargetPositionIndex)
.WithReadOnly(copyObstaclePositions)
.WithReadOnly(copyTargetPositions)
.ForEach((int entityInQueryIndex, ref LocalToWorld localToWorld) =>
{
// temporarily storing the values for code readability
var forward = localToWorld.Forward;
var currentPosition = localToWorld.Position;
var cellIndex = cellIndices[entityInQueryIndex];
var neighborCount = cellCount[cellIndex];
var alignment = cellAlignment[cellIndex];
var separation = cellSeparation[cellIndex];
var nearestObstacleDistance = cellObstacleDistance[cellIndex];
var nearestObstaclePositionIndex = cellObstaclePositionIndex[cellIndex];
var nearestTargetPositionIndex = cellTargetPositionIndex[cellIndex];
var nearestObstaclePosition = copyObstaclePositions[nearestObstaclePositionIndex];
var nearestTargetPosition = copyTargetPositions[nearestTargetPositionIndex];
// Setting up the directions for the three main biocrowds influencing directions adjusted based
// on the predefined weights:
// 1) alignment - how much should it move in a direction similar to those around it?
// note: we use `alignment/neighborCount`, because we need the average alignment in this case; however
// alignment is currently the summation of all those of the boids within the cellIndex being considered.
var alignmentResult = settings.AlignmentWeight
* math.normalizesafe((alignment / neighborCount) - forward);
// 2) separation - how close is it to other boids and are there too many or too few for comfort?
// note: here separation represents the summed possible center of the cell. We perform the multiplication
// so that both `currentPosition` and `separation` are weighted to represent the cell as a whole and not
// the current individual boid.
var separationResult = settings.SeparationWeight
* math.normalizesafe((currentPosition * neighborCount) - separation);
// 3) target - is it still towards its destination?
var targetHeading = settings.TargetWeight
* math.normalizesafe(nearestTargetPosition - currentPosition);
// creating the obstacle avoidant vector s.t. it's pointing towards the nearest obstacle
// but at the specified 'ObstacleAversionDistance'. If this distance is greater than the
// current distance to the obstacle, the direction becomes inverted. This simulates the
// idea that if `currentPosition` is too close to an obstacle, the weight of this pushes
// the current boid to escape in the fastest direction; however, if the obstacle isn't
// too close, the weighting denotes that the boid doesnt need to escape but will move
// slower if still moving in that direction (note: we end up not using this move-slower
// case, because of `targetForward`'s decision to not use obstacle avoidance if an obstacle
// isn't close enough).
var obstacleSteering = currentPosition - nearestObstaclePosition;
var avoidObstacleHeading = (nearestObstaclePosition + math.normalizesafe(obstacleSteering)
* settings.ObstacleAversionDistance) - currentPosition;
// the updated heading direction. If not needing to be avoidant (ie obstacle is not within
// predefined radius) then go with the usual defined heading that uses the amalgamation of
// the weighted alignment, separation, and target direction vectors.
var nearestObstacleDistanceFromRadius = nearestObstacleDistance - settings.ObstacleAversionDistance;
var normalHeading = math.normalizesafe(alignmentResult + separationResult + targetHeading);
var targetForward = math.select(normalHeading, avoidObstacleHeading, nearestObstacleDistanceFromRadius < 0);
// updates using the newly calculated heading direction
var nextHeading = math.normalizesafe(forward + deltaTime * (targetForward - forward));
localToWorld = new LocalToWorld
{
Value = float4x4.TRS(
new float3(localToWorld.Position + (nextHeading * settings.MoveSpeed * deltaTime)),
quaternion.LookRotationSafe(nextHeading, math.up()),
new float3(1.0f, 1.0f, 1.0f))
};
}).ScheduleParallel(mergeCellsJobHandle);
var steerBoidJob = new SteerBoidJob
{
ChunkBaseEntityIndices = boidChunkBaseEntityIndexArray,
CellIndices = cellIndices,
CellCount = cellCount,
CellAlignment = cellAlignment,
CellSeparation = cellSeparation,
CellObstacleDistance = cellObstacleDistance,
CellObstaclePositionIndex = cellObstaclePositionIndex,
CellTargetPositionIndex = cellTargetPositionIndex,
ObstaclePositions = copyObstaclePositions,
TargetPositions = copyTargetPositions,
CurrentBoidVariant = boidSettings,
DeltaTime = dt,
MoveDistance = boidSettings.MoveSpeed * dt,
};
var steerBoidJobHandle = steerBoidJob.ScheduleParallel(m_BoidQuery, mergeCellsJobHandle);
// Dispose allocated containers with dispose jobs.
Dependency = steerJobHandle;
state.Dependency = steerBoidJobHandle;
// We pass the job handle and add the dependency so that we keep the proper ordering between the jobs
// as the looping iterates. For our purposes of execution, this ordering isn't necessary; however, without
// the add dependency call here, the safety system will throw an error, because we're accessing multiple
// pieces of boid data and it would think there could possibly be a race condition.
m_BoidQuery.AddDependency(Dependency);
m_BoidQuery.AddDependency(state.Dependency);
m_BoidQuery.ResetFilter();
}
m_UniqueTypes.Clear();
uniqueBoidTypes.Dispose();
}
protected override void OnCreate()
[BurstCompile]
public void OnCreate(ref SystemState state)
{
m_BoidQuery = GetEntityQuery(new EntityQueryDesc
{
All = new[] { ComponentType.ReadOnly<Boid>(), ComponentType.ReadWrite<LocalToWorld>() },
});
using var queryBuilder = new EntityQueryBuilder(Allocator.Temp)
.WithAll<Boid>()
.WithAllRW<LocalToWorld>();
m_BoidQuery = state.GetEntityQuery(queryBuilder);
RequireForUpdate(m_BoidQuery);
RequireForUpdate(m_ObstacleQuery);
RequireForUpdate(m_TargetQuery);
queryBuilder.Reset();
queryBuilder.WithAll<BoidTarget, LocalToWorld>();
m_TargetQuery = state.GetEntityQuery(queryBuilder);
queryBuilder.Reset();
queryBuilder.WithAll<BoidObstacle, LocalToWorld>();
m_ObstacleQuery = state.GetEntityQuery(queryBuilder);
}
[BurstCompile]
public void OnDestroy(ref SystemState state)
{
}
}
}

Просмотреть файл

@ -6,12 +6,13 @@ using Unity.Entities;
using UnityEngine;
[AddComponentMenu("DOTS Samples/Boids/BoidTarget")]
[ConverterVersion("joe", 1)]
public class BoidTargetAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class BoidTargetAuthoring : MonoBehaviour {}
public class BoidTargetAuthoringBaker : Baker<BoidTargetAuthoring>
{
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
public override void Bake(BoidTargetAuthoring authoring)
{
dstManager.AddComponentData(entity, new BoidTarget());
AddComponent( new BoidTarget());
}
}

Просмотреть файл

@ -1,4 +1,5 @@
using System;
using Unity.Burst;
using Unity.Collections;
using Unity.Collections.LowLevel.Unsafe;
using Unity.Jobs;
@ -28,31 +29,69 @@ namespace Samples.Boids
public static class JobNativeMultiHashMapUniqueHashExtensions
{
internal struct JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob>
where TJob : struct, IJobNativeMultiHashMapMergedSharedKeyIndices
internal struct JobWrapper<T> where T : struct
{
[ReadOnly] public NativeParallelMultiHashMap<int, int> HashMap;
internal TJob JobData;
[ReadOnly] public NativeMultiHashMap<int, int> HashMap;
public T JobData;
}
private static IntPtr s_JobReflectionData;
/// <summary>
/// Gathers and caches reflection data for the internal job system's managed bindings. Unity is responsible for calling this method - don't call it yourself.
/// </summary>
/// <typeparam name="T"></typeparam>
/// <remarks>
/// When the Jobs package is included in the project, Unity generates code to call EarlyJobInit at startup. This allows Burst compiled code to schedule jobs because the reflection part of initialization, which is not compatible with burst compiler constraints, has already happened in EarlyJobInit.
///
/// __Note__: While the Jobs package code generator handles this automatically for all closed job types, you must register those with generic arguments (like IJobChunk&amp;lt;MyJobType&amp;lt;T&amp;gt;&amp;gt;) manually for each specialization with [[Unity.Jobs.RegisterGenericJobTypeAttribute]].
/// </remarks>
public static void EarlyJobInit<T>()
where T : struct, IJobNativeMultiHashMapMergedSharedKeyIndices
{
JobNativeMultiHashMapMergedSharedKeyIndicesProducer<T>.Initialize();
}
internal static IntPtr Initialize()
public static unsafe JobHandle Schedule<T>(this T jobData, NativeMultiHashMap<int, int> hashMap,
int minIndicesPerJobCount, JobHandle dependsOn = default)
where T : struct, IJobNativeMultiHashMapMergedSharedKeyIndices
{
var jobWrapper = new JobWrapper<T>
{
if (s_JobReflectionData == IntPtr.Zero)
{
#if UNITY_2020_2_OR_NEWER
s_JobReflectionData = JobsUtility.CreateJobReflectionData(typeof(JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob>), typeof(TJob), (ExecuteJobFunction)Execute);
#else
s_JobReflectionData = JobsUtility.CreateJobReflectionData(typeof(JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob>), typeof(TJob), JobType.ParallelFor, (ExecuteJobFunction)Execute);
#endif
}
HashMap = hashMap,
JobData = jobData,
};
JobNativeMultiHashMapMergedSharedKeyIndicesProducer<T>.Initialize();
var reflectionData = JobNativeMultiHashMapMergedSharedKeyIndicesProducer<T>.reflectionData.Data;
CollectionHelper.CheckReflectionDataCorrect<T>(reflectionData);
return s_JobReflectionData;
var scheduleParams = new JobsUtility.JobScheduleParameters(
UnsafeUtility.AddressOf(ref jobWrapper),
reflectionData,
dependsOn,
ScheduleMode.Parallel);
return JobsUtility.ScheduleParallelFor(ref scheduleParams, hashMap.GetUnsafeBucketData().bucketCapacityMask + 1, minIndicesPerJobCount);
}
[BurstCompile]
internal struct JobNativeMultiHashMapMergedSharedKeyIndicesProducer<T>
where T : struct, IJobNativeMultiHashMapMergedSharedKeyIndices
{
internal static readonly SharedStatic<IntPtr> reflectionData = SharedStatic<IntPtr>.GetOrCreate<JobNativeMultiHashMapMergedSharedKeyIndicesProducer<T>>();
[BurstDiscard]
internal static void Initialize()
{
if (reflectionData.Data == IntPtr.Zero)
reflectionData.Data = JobsUtility.CreateJobReflectionData(typeof(JobWrapper<T>), typeof(T), (ExecuteJobFunction)Execute);
}
delegate void ExecuteJobFunction(ref JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob> jobProducer, IntPtr additionalPtr, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex);
delegate void ExecuteJobFunction(ref JobWrapper<T> jobWrapper, IntPtr additionalPtr, IntPtr bufferRangePatchData,
ref JobRanges ranges, int jobIndex);
public static unsafe void Execute(ref JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob> jobProducer, IntPtr additionalPtr, IntPtr bufferRangePatchData, ref JobRanges ranges, int jobIndex)
[BurstCompile]
public static unsafe void Execute(ref JobWrapper<T> jobWrapper, IntPtr additionalPtr, IntPtr bufferRangePatchData,
ref JobRanges ranges, int jobIndex)
{
while (true)
{
@ -64,7 +103,7 @@ namespace Samples.Boids
return;
}
var bucketData = jobProducer.HashMap.GetUnsafeBucketData();
var bucketData = jobWrapper.HashMap.GetUnsafeBucketData();
var buckets = (int*)bucketData.buckets;
var nextPtrs = (int*)bucketData.next;
var keys = bucketData.keys;
@ -80,8 +119,8 @@ namespace Samples.Boids
var value = UnsafeUtility.ReadArrayElement<int>(values, entryIndex);
int firstValue;
NativeParallelMultiHashMapIterator<int> it;
jobProducer.HashMap.TryGetFirstValue(key, out firstValue, out it);
NativeMultiHashMapIterator<int> it;
jobWrapper.HashMap.TryGetFirstValue(key, out firstValue, out it);
// [macton] Didn't expect a usecase for this with multiple same values
// (since it's intended use was for unique indices.)
@ -89,9 +128,9 @@ namespace Samples.Boids
if (entryIndex == it.GetEntryIndex())
{
#if ENABLE_UNITY_COLLECTIONS_CHECKS
JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf(ref jobProducer), value, 1);
JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf(ref jobWrapper), value, 1);
#endif
jobProducer.JobData.ExecuteFirst(value);
jobWrapper.JobData.ExecuteFirst(value);
}
else
{
@ -100,9 +139,9 @@ namespace Samples.Boids
var lastIndex = math.max(firstValue, value);
var rangeLength = (lastIndex - startIndex) + 1;
JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf(ref jobProducer), startIndex, rangeLength);
JobsUtility.PatchBufferMinMaxRanges(bufferRangePatchData, UnsafeUtility.AddressOf(ref jobWrapper), startIndex, rangeLength);
#endif
jobProducer.JobData.ExecuteNext(firstValue, value);
jobWrapper.JobData.ExecuteNext(firstValue, value);
}
entryIndex = nextPtrs[entryIndex];
@ -111,28 +150,5 @@ namespace Samples.Boids
}
}
}
public static unsafe JobHandle Schedule<TJob>(this TJob jobData, NativeParallelMultiHashMap<int, int> hashMap, int minIndicesPerJobCount, JobHandle dependsOn = new JobHandle())
where TJob : struct, IJobNativeMultiHashMapMergedSharedKeyIndices
{
var jobProducer = new JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob>
{
HashMap = hashMap,
JobData = jobData
};
var scheduleParams = new JobsUtility.JobScheduleParameters(
UnsafeUtility.AddressOf(ref jobProducer)
, JobNativeMultiHashMapMergedSharedKeyIndicesProducer<TJob>.Initialize()
, dependsOn
#if UNITY_2020_2_OR_NEWER
, ScheduleMode.Parallel
#else
, ScheduleMode.Batched
#endif
);
return JobsUtility.ScheduleParallelFor(ref scheduleParams, hashMap.GetUnsafeBucketData().bucketCapacityMask + 1, minIndicesPerJobCount);
}
}
}

Просмотреть файл

@ -17,8 +17,12 @@ namespace Samples.Boids
public BlobAssetReference<TransformSamples> TransformSamplesBlob;
}
#if !ENABLE_TRANSFORM_V1
[WriteGroup(typeof(LocalToWorldTransform))]
#else
[WriteGroup(typeof(Translation))]
[WriteGroup(typeof(Rotation))]
#endif
public struct TransformSamples
{
public BlobArray<float3> TranslationSamples;

Просмотреть файл

@ -6,13 +6,18 @@ using UnityEngine;
namespace Samples.Boids
{
[RequireMatchingQueriesForUpdate]
public partial class SampledAnimationClipPlaybackSystem : SystemBase
{
protected override void OnUpdate()
{
var deltaTime = math.min(0.05f, Time.DeltaTime);
var deltaTime = math.min(0.05f, SystemAPI.Time.DeltaTime);
#if !ENABLE_TRANSFORM_V1
Entities.ForEach((ref LocalToWorldTransform transform, in SampledAnimationClip sampledAnimationClip) =>
#else
Entities.ForEach((ref Translation translation, ref Rotation rotation, in SampledAnimationClip sampledAnimationClip) =>
#endif
{
var frameIndex = sampledAnimationClip.FrameIndex;
var timeOffset = sampledAnimationClip.TimeOffset;
@ -23,8 +28,13 @@ namespace Samples.Boids
var prevRotation = sampledAnimationClip.TransformSamplesBlob.Value.RotationSamples[frameIndex];
var nextRotation = sampledAnimationClip.TransformSamplesBlob.Value.RotationSamples[frameIndex + 1];
#if !ENABLE_TRANSFORM_V1
transform.Value.Position = math.lerp(prevTranslation, nextTranslation, timeOffset);
transform.Value.Rotation = math.slerp(prevRotation, nextRotation, timeOffset);
#else
translation.Value = math.lerp(prevTranslation, nextTranslation, timeOffset);
rotation.Value = math.slerp(prevRotation, nextRotation, timeOffset);
#endif
}).ScheduleParallel();
Entities.ForEach((ref SampledAnimationClip sampledAnimationClip) =>

Просмотреть файл

@ -6,7 +6,7 @@
"Unity.Collections",
"Unity.Transforms",
"Unity.Transforms.Hybrid",
"Unity.Rendering.Hybrid",
"Unity.Entities.Graphics",
"Unity.Burst",
"Unity.Jobs",
"Unity.Mathematics",

Просмотреть файл

@ -14,18 +14,20 @@ using UnityEngine;
// - Store samples into DynamicBuffer
[AddComponentMenu("DOTS Samples/Boids/TransformRecorder")]
[ConverterVersion("macton", 2)]
public class TransformRecorderAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class TransformRecorderAuthoring : MonoBehaviour
{
[Range(2, 120)]
public int SamplesPerSecond = 60;
}
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
public class TransformRecorderAuthoringBaker : Baker<TransformRecorderAuthoring>
{
public override void Bake(TransformRecorderAuthoring authoring)
{
var animationClips = AnimationUtility.GetAnimationClips(gameObject);
var animationClips = AnimationUtility.GetAnimationClips(authoring.gameObject);
var animationClip = animationClips[0];
var lengthSeconds = animationClip.length;
var sampleRate = 1.0f / SamplesPerSecond;
var sampleRate = 1.0f / authoring.SamplesPerSecond;
var frameCount = (int)(lengthSeconds / sampleRate);
if (frameCount < 2) // Minimum two frames of animation to capture.
{
@ -41,15 +43,15 @@ public class TransformRecorderAuthoring : MonoBehaviour, IConvertGameObjectToEn
for (int i = 0; i < frameCount; i++)
{
animationClip.SampleAnimation(gameObject, s);
animationClip.SampleAnimation(authoring.gameObject, s);
translationSamples[i] = gameObject.transform.position;
rotationSamples[i] = gameObject.transform.rotation;
translationSamples[i] = authoring.gameObject.transform.position;
rotationSamples[i] = authoring.gameObject.transform.rotation;
s += sampleRate;
}
dstManager.AddComponentData(entity, new SampledAnimationClip
AddComponent( new SampledAnimationClip
{
FrameCount = frameCount,
SampleRate = sampleRate,

Просмотреть файл

@ -3,18 +3,22 @@ using Unity.Entities.Serialization;
using UnityEngine;
#if UNITY_EDITOR
public class PrefabSpawnerAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class PrefabSpawnerAuthoring : MonoBehaviour
{
public GameObject[] Prefabs;
public int SpawnCount;
public float SpawnsPerSecond;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<PrefabSpawnerAuthoring>
{
dstManager.AddComponentData(entity, new PrefabSpawner {SpawnsRemaining = SpawnCount, SpawnsPerSecond = SpawnsPerSecond});
var buffer = dstManager.AddBuffer<PrefabSpawnerBufferElement>(entity);
foreach (var prefab in Prefabs)
public override void Bake(PrefabSpawnerAuthoring authoring)
{
buffer.Add(new PrefabSpawnerBufferElement {Prefab = new EntityPrefabReference(prefab)});
AddComponent( new PrefabSpawner {SpawnsRemaining = authoring.SpawnCount, SpawnsPerSecond = authoring.SpawnsPerSecond});
var buffer = AddBuffer<PrefabSpawnerBufferElement>();
foreach (var prefab in authoring.Prefabs)
{
buffer.Add(new PrefabSpawnerBufferElement {Prefab = new EntityPrefabReference(prefab)});
}
}
}
}

Просмотреть файл

@ -17,13 +17,14 @@ public struct PrefabSpawnerBufferElement : IBufferElementData
public EntityPrefabReference Prefab;
}
[RequireMatchingQueriesForUpdate]
public partial class PrefabSpawnerSystem : SystemBase
{
private BeginSimulationEntityCommandBufferSystem m_BeginSimECBSystem;
protected override void OnCreate()
{
m_BeginSimECBSystem = World.GetExistingSystem<BeginSimulationEntityCommandBufferSystem>();
m_BeginSimECBSystem = World.GetExistingSystemManaged<BeginSimulationEntityCommandBufferSystem>();
}
protected override void OnUpdate()
@ -36,7 +37,7 @@ public partial class PrefabSpawnerSystem : SystemBase
ecb.AddComponent(entityInQueryIndex, entity, new RequestEntityPrefabLoaded {Prefab = prefabs[rnd.NextInt(prefabs.Length)].Prefab});
}).ScheduleParallel();
var dt = Time.DeltaTime;
var dt = SystemAPI.Time.DeltaTime;
Entities.ForEach((Entity entity, int entityInQueryIndex, ref PrefabSpawner spawner, in PrefabLoadResult prefab) =>
{
var remaining = spawner.SpawnsRemaining;
@ -52,7 +53,11 @@ public partial class PrefabSpawnerSystem : SystemBase
{
var instance = ecb.Instantiate(entityInQueryIndex, prefab.PrefabRoot);
int index = i + (int) remaining;
#if !ENABLE_TRANSFORM_V1
ecb.SetComponent(entityInQueryIndex, instance, new LocalToWorldTransform {Value = UniformScaleTransform.FromPosition(new float3(index*((index&1)*2-1), 0, 0))});
#else
ecb.SetComponent(entityInQueryIndex, instance, new Translation {Value = new float3(index*((index&1)*2-1), 0, 0)});
#endif
}
spawner.SpawnsRemaining = newRemaining;
}).ScheduleParallel();

Просмотреть файл

@ -2,12 +2,16 @@ using Unity.Entities;
using UnityEngine;
#if UNITY_EDITOR
public class SelfDestructAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class SelfDestructAuthoring : MonoBehaviour
{
public float TimeToLive;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<SelfDestructAuthoring>
{
dstManager.AddComponentData(entity, new SelfDestruct {TimeToLive = TimeToLive});
public override void Bake(SelfDestructAuthoring authoring)
{
AddComponent(new SelfDestruct {TimeToLive = authoring.TimeToLive});
}
}
}

Просмотреть файл

@ -5,18 +5,19 @@ public struct SelfDestruct : IComponentData
public float TimeToLive;
}
[RequireMatchingQueriesForUpdate]
public partial class SelfDestructSystem : SystemBase
{
private EndSimulationEntityCommandBufferSystem m_EndSimECBSystem;
protected override void OnCreate()
{
m_EndSimECBSystem = World.GetExistingSystem<EndSimulationEntityCommandBufferSystem>();
m_EndSimECBSystem = World.GetExistingSystemManaged<EndSimulationEntityCommandBufferSystem>();
}
protected override void OnUpdate()
{
var ecb = m_EndSimECBSystem.CreateCommandBuffer().AsParallelWriter();
var dt = Time.DeltaTime;
var dt = SystemAPI.Time.DeltaTime;
Entities.ForEach((Entity entity, int entityInQueryIndex, ref SelfDestruct spawner) =>
{
if((spawner.TimeToLive -= dt) < 0)

Просмотреть файл

@ -5,24 +5,22 @@ using UnityEngine;
namespace Samples.FixedTimestepSystem.Authoring
{
[AddComponentMenu("DOTS Samples/FixedTimestepWorkaround/Fixed Rate Spawner")]
[ConverterVersion("joe", 1)]
public class FixedRateSpawnerAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class FixedRateSpawnerAuthoring : MonoBehaviour
{
public GameObject projectilePrefab;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<FixedRateSpawnerAuthoring>
{
var spawnerData = new FixedRateSpawner
public override void Bake(FixedRateSpawnerAuthoring authoring)
{
Prefab = conversionSystem.GetPrimaryEntity(projectilePrefab),
SpawnPos = transform.position,
};
dstManager.AddComponentData(entity, spawnerData);
}
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
{
referencedPrefabs.Add(projectilePrefab);
var transform = authoring.GetComponent<Transform>();
var spawnerData = new FixedRateSpawner
{
Prefab = GetEntity(authoring.projectilePrefab),
SpawnPos = transform.position,
};
AddComponent(spawnerData);
}
}
}
}

Просмотреть файл

@ -12,18 +12,19 @@ namespace Samples.FixedTimestepSystem
// This system is virtually identical to VariableRateSpawner; the key difference is that it updates in the
// FixedStepSimulationSystemGroup instead of the default SimulationSystemGroup.
[RequireMatchingQueriesForUpdate]
[UpdateInGroup(typeof(FixedStepSimulationSystemGroup))]
public partial class FixedRateSpawnerSystem : SystemBase
{
private EndFixedStepSimulationEntityCommandBufferSystem ecbSystem;
protected override void OnCreate()
{
ecbSystem = World.GetExistingSystem<EndFixedStepSimulationEntityCommandBufferSystem>();
ecbSystem = World.GetExistingSystemManaged<EndFixedStepSimulationEntityCommandBufferSystem>();
}
protected override void OnUpdate()
{
float spawnTime = (float)Time.ElapsedTime;
float spawnTime = (float)SystemAPI.Time.ElapsedTime;
var ecb = ecbSystem.CreateCommandBuffer();
Entities
.WithName("FixedRateSpawner")
@ -32,7 +33,11 @@ namespace Samples.FixedTimestepSystem
var projectileEntity = ecb.Instantiate(spawner.Prefab);
var spawnPos = spawner.SpawnPos;
spawnPos.y += 0.3f * math.sin(5.0f * spawnTime);
#if !ENABLE_TRANSFORM_V1
ecb.SetComponent(projectileEntity, new LocalToWorldTransform {Value = UniformScaleTransform.FromPosition(spawnPos)});
#else
ecb.SetComponent(projectileEntity, new Translation {Value = spawnPos});
#endif
ecb.SetComponent(projectileEntity, new Projectile
{
SpawnTime = spawnTime,

Просмотреть файл

@ -9,29 +9,39 @@ namespace Samples.FixedTimestepSystem
public float SpawnTime;
public float3 SpawnPos;
}
[RequireMatchingQueriesForUpdate]
public partial class MoveProjectilesSystem : SystemBase
{
BeginSimulationEntityCommandBufferSystem m_beginSimEcbSystem;
protected override void OnCreate()
{
m_beginSimEcbSystem = World.GetExistingSystem<BeginSimulationEntityCommandBufferSystem>();
m_beginSimEcbSystem = World.GetExistingSystemManaged<BeginSimulationEntityCommandBufferSystem>();
}
protected override void OnUpdate()
{
var ecb = m_beginSimEcbSystem.CreateCommandBuffer().AsParallelWriter();
float timeSinceLoad = (float) Time.ElapsedTime;
float timeSinceLoad = (float) SystemAPI.Time.ElapsedTime;
float projectileSpeed = 5.0f;
Entities
.WithName("MoveProjectiles")
#if !ENABLE_TRANSFORM_V1
.ForEach((Entity projectileEntity, int entityInQueryIndex, ref LocalToWorldTransform transform, in Projectile projectile) =>
#else
.ForEach((Entity projectileEntity, int entityInQueryIndex, ref Translation translation, in Projectile projectile) =>
#endif
{
float aliveTime = (timeSinceLoad - projectile.SpawnTime);
if (aliveTime > 5.0f)
{
ecb.DestroyEntity(entityInQueryIndex, projectileEntity);
}
#if !ENABLE_TRANSFORM_V1
transform.Value.Position.x = projectile.SpawnPos.x + aliveTime * projectileSpeed;
#else
translation.Value.x = projectile.SpawnPos.x + aliveTime * projectileSpeed;
#endif
}).ScheduleParallel();
m_beginSimEcbSystem.AddJobHandleForProducer(Dependency);
}

Просмотреть файл

@ -4,12 +4,14 @@ using UnityEngine;
namespace Samples.FixedTimestepSystem.Authoring
{
[AddComponentMenu("DOTS Samples/FixedTimestepWorkaround/Projectile Spawn Time")]
[ConverterVersion("joe", 1)]
public class ProjectileAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class ProjectileAuthoring : MonoBehaviour
{
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<ProjectileAuthoring>
{
dstManager.AddComponent<Projectile>(entity);
public override void Bake(ProjectileAuthoring authoring)
{
AddComponent<Projectile>();
}
}
}
}

Просмотреть файл

@ -10,7 +10,7 @@ public class SliderHandler : MonoBehaviour
public void OnSliderChange()
{
float fixedFps = GetComponent<Slider>().value;
var fixedSimulationGroup = World.DefaultGameObjectInjectionWorld?.GetExistingSystem<FixedStepSimulationSystemGroup>();
var fixedSimulationGroup = World.DefaultGameObjectInjectionWorld?.GetExistingSystemManaged<FixedStepSimulationSystemGroup>();
if (fixedSimulationGroup != null)
{
// The group timestep can be set at runtime:

Просмотреть файл

@ -5,24 +5,22 @@ using UnityEngine;
namespace Samples.FixedTimestepSystem.Authoring
{
[AddComponentMenu("DOTS Samples/FixedTimestepWorkaround/Variable Rate Spawner")]
[ConverterVersion("joe", 1)]
public class VariableRateSpawnerAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class VariableRateSpawnerAuthoring : MonoBehaviour
{
public GameObject projectilePrefab;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<VariableRateSpawnerAuthoring>
{
var spawnerData = new VariableRateSpawner
public override void Bake(VariableRateSpawnerAuthoring authoring)
{
Prefab = conversionSystem.GetPrimaryEntity(projectilePrefab),
SpawnPos = transform.position,
};
dstManager.AddComponentData(entity, spawnerData);
}
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
{
referencedPrefabs.Add(projectilePrefab);
var transform = GetComponent<Transform>();
var spawnerData = new VariableRateSpawner
{
Prefab = GetEntity(authoring.projectilePrefab),
SpawnPos = transform.position,
};
AddComponent(spawnerData);
}
}
}
}

Просмотреть файл

@ -10,17 +10,18 @@ namespace Samples.FixedTimestepSystem
public float3 SpawnPos;
}
[RequireMatchingQueriesForUpdate]
public partial class VariableRateSpawnerSystem : SystemBase
{
private BeginSimulationEntityCommandBufferSystem ecbSystem;
protected override void OnCreate()
{
ecbSystem = World.GetExistingSystem<BeginSimulationEntityCommandBufferSystem>();
ecbSystem = World.GetExistingSystemManaged<BeginSimulationEntityCommandBufferSystem>();
}
protected override void OnUpdate()
{
float spawnTime = (float)Time.ElapsedTime;
float spawnTime = (float)SystemAPI.Time.ElapsedTime;
var ecb = ecbSystem.CreateCommandBuffer();
Entities
.WithName("VariableRateSpawner")
@ -29,7 +30,11 @@ namespace Samples.FixedTimestepSystem
var projectileEntity = ecb.Instantiate(spawner.Prefab);
var spawnPos = spawner.SpawnPos;
spawnPos.y += 0.3f * math.sin(5.0f * spawnTime);
#if !ENABLE_TRANSFORM_V1
ecb.SetComponent(projectileEntity, new LocalToWorldTransform {Value = UniformScaleTransform.FromPosition(spawnPos)});
#else
ecb.SetComponent(projectileEntity, new Translation {Value = spawnPos});
#endif
ecb.SetComponent(projectileEntity, new Projectile
{
SpawnTime = spawnTime,

Просмотреть файл

@ -9,7 +9,6 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 8677578845857320225}
- component: {fileID: 7241256591259727247}
- component: {fileID: 2166536328003235753}
- component: {fileID: 3139632156233265087}
- component: {fileID: 8085697106929772112}
@ -28,25 +27,13 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5504584424357794562}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -5.672221, y: -6.2789955, z: -2.8151016}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7241256591259727247
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5504584424357794562}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!33 &2166536328003235753
MeshFilter:
m_ObjectHideFlags: 0
@ -66,10 +53,12 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@ -94,6 +83,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &8085697106929772112
MonoBehaviour:
m_ObjectHideFlags: 0

Просмотреть файл

@ -12,9 +12,8 @@ GameObject:
- component: {fileID: 6226756458611596984}
- component: {fileID: 6226756458611596985}
- component: {fileID: 6226756458611596982}
- component: {fileID: 6226756458611596983}
m_Layer: 0
m_Name: BasicCube
m_Name: BasicCube0
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -30,6 +29,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -14.746666, y: -15.219937, z: -33.825005}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -53,10 +53,12 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@ -81,6 +83,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &6226756458611596982
BoxCollider:
m_ObjectHideFlags: 0
@ -89,21 +92,16 @@ BoxCollider:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6226756458611596980}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 2
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &6226756458611596983
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6226756458611596980}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0

Просмотреть файл

@ -9,7 +9,6 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 5066949011654320161}
- component: {fileID: 6504187674550917263}
- component: {fileID: 2318383987450806953}
- component: {fileID: 1562659410885755583}
- component: {fileID: 5623784369351740240}
@ -30,23 +29,11 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -5.672221, y: -6.2789955, z: -2.8151016}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &6504187674550917263
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8239809292469255682}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!33 &2318383987450806953
MeshFilter:
m_ObjectHideFlags: 0
@ -66,10 +53,12 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@ -94,6 +83,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &5623784369351740240
MonoBehaviour:
m_ObjectHideFlags: 0

Просмотреть файл

@ -9,7 +9,6 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 306639716728302639}
- component: {fileID: 1752894555363284097}
- component: {fileID: 7078675106104626855}
- component: {fileID: 6322950528405180081}
- component: {fileID: 872500286842406750}
@ -30,23 +29,11 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -5.672221, y: -6.2789955, z: -2.8151016}
m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1752894555363284097
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3479490926574203404}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!33 &7078675106104626855
MeshFilter:
m_ObjectHideFlags: 0
@ -66,10 +53,12 @@ MeshRenderer:
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
@ -94,6 +83,7 @@ MeshRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &872500286842406750
MonoBehaviour:
m_ObjectHideFlags: 0

Просмотреть файл

@ -38,12 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_IndirectSpecularColor: {r: 0.18315287, g: 0.22670832, b: 0.29430667, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
@ -98,13 +98,14 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 4890085278179872738, guid: 944e6c008596d4fff8f3ce647fb0a1fd,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -117,7 +118,9 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
@ -161,9 +164,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@ -200,6 +211,7 @@ Transform:
m_LocalRotation: {x: 0.287946, y: -0, z: -0, w: 0.95764667}
m_LocalPosition: {x: 0, y: 26, z: -39.7}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -214,6 +226,7 @@ GameObject:
m_Component:
- component: {fileID: 366118348}
- component: {fileID: 366118347}
- component: {fileID: 366118349}
m_Layer: 0
m_Name: Directional Light A
m_TagString: Untagged
@ -280,6 +293,7 @@ Light:
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &366118348
@ -292,10 +306,32 @@ Transform:
m_LocalRotation: {x: 0.15864775, y: -0.4277569, z: 0.12144193, w: 0.8815366}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 402307335}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 22.557001, y: -50.797, z: 4.8690004}
--- !u!114 &366118349
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366118346}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!1 &402307334
GameObject:
m_ObjectHideFlags: 0
@ -322,6 +358,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 366118348}
- {fileID: 580201623}
@ -338,6 +375,7 @@ GameObject:
m_Component:
- component: {fileID: 580201623}
- component: {fileID: 580201622}
- component: {fileID: 580201624}
m_Layer: 0
m_Name: Directional Light B
m_TagString: Untagged
@ -404,6 +442,7 @@ Light:
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &580201623
@ -416,10 +455,32 @@ Transform:
m_LocalRotation: {x: -0.6363282, y: -0.71778905, z: -0.26438808, w: -0.09982163}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 402307335}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: -14.626, y: -209.726, z: 87.01601}
--- !u!114 &580201624
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 580201621}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!1 &694976994
GameObject:
m_ObjectHideFlags: 0
@ -468,129 +529,61 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350647}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Version: 3-macton
Prefab: {fileID: 4839979164330552634, guid: 7b80be4c2579d4312950c22919c1d102, type: 3}
CoolDownSeconds: 0.1
GenerateMaxCount: 5000
--- !u!114 &698350647
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742821}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Version: 3-macton
Prefab: {fileID: 5504584424357794562, guid: 185fc72fe6b8347aa833fe241a0dd4de, type: 3}
CoolDownSeconds: 0.1
GenerateMaxCount: 5000
--- !u!114 &947742821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1357678881
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1357678883}
- component: {fileID: 1357678882}
m_Layer: 0
m_Name: Generators
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1357678882
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1357678881}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45a335734b1572644a6a5d09d87adc65, type: 3}
m_Name:
m_EditorClassIdentifier:
_SceneAsset: {fileID: 102900000, guid: 10769bd255fd1416eb6d88bfd111dd31, type: 3}
_HierarchyColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
AutoLoadScene: 1
_SceneGUID:
Value:
x: 767125249
y: 1631706965
z: 4220049086
w: 333254941
--- !u!4 &1357678883
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1357678881}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

Просмотреть файл

@ -38,12 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_IndirectSpecularColor: {r: 0.18315287, g: 0.22670832, b: 0.29430667, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
@ -98,13 +98,14 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 4890085278179872738, guid: c0ea0f3dd6782411bb216aadb06b0854,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -117,7 +118,9 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
@ -132,6 +135,7 @@ GameObject:
- component: {fileID: 166484213}
- component: {fileID: 166484212}
- component: {fileID: 166484211}
- component: {fileID: 166484214}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
@ -161,9 +165,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@ -200,10 +212,47 @@ Transform:
m_LocalRotation: {x: 0.287946, y: -0, z: -0, w: 0.95764667}
m_LocalPosition: {x: 0, y: 26, z: -39.7}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 33.47, y: 0, z: 0}
--- !u!114 &166484214
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 166484210}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
--- !u!1 &366118346
GameObject:
m_ObjectHideFlags: 0
@ -214,6 +263,7 @@ GameObject:
m_Component:
- component: {fileID: 366118348}
- component: {fileID: 366118347}
- component: {fileID: 366118349}
m_Layer: 0
m_Name: Directional Light A
m_TagString: Untagged
@ -280,6 +330,7 @@ Light:
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &366118348
@ -292,10 +343,34 @@ Transform:
m_LocalRotation: {x: 0.15864775, y: -0.4277569, z: 0.12144193, w: 0.8815366}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 402307335}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 22.557001, y: -50.797, z: 4.8690004}
--- !u!114 &366118349
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366118346}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 2
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_RenderingLayers: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_ShadowRenderingLayers: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!1 &402307334
GameObject:
m_ObjectHideFlags: 0
@ -322,105 +397,13 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 366118348}
- {fileID: 580201623}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &449620888
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 449620889}
- component: {fileID: 449620892}
- component: {fileID: 449620891}
- component: {fileID: 449620890}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &449620889
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1.5, z: 0}
m_LocalScale: {x: 1, y: 3.1548, z: 1}
m_Children: []
m_Father: {fileID: 882561005}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &449620890
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &449620891
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &449620892
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &580201621
GameObject:
m_ObjectHideFlags: 0
@ -431,6 +414,7 @@ GameObject:
m_Component:
- component: {fileID: 580201623}
- component: {fileID: 580201622}
- component: {fileID: 580201624}
m_Layer: 0
m_Name: Directional Light B
m_TagString: Untagged
@ -497,6 +481,7 @@ Light:
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &580201623
@ -509,10 +494,34 @@ Transform:
m_LocalRotation: {x: -0.6363282, y: -0.71778905, z: -0.26438808, w: -0.09982163}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 402307335}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: -14.626, y: -209.726, z: 87.01601}
--- !u!114 &580201624
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 580201621}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 2
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_RenderingLayers: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_ShadowRenderingLayers: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!1 &694976994
GameObject:
m_ObjectHideFlags: 0
@ -561,204 +570,12 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350647}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 3479490926574203404, guid: 4f055a23850cd4a2e9b87a6e7e5e731b, type: 3}
CoolDownSeconds: 0.3
GenerateMaxCount: 5000
--- !u!114 &698350647
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &882561001
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 882561005}
- component: {fileID: 882561004}
- component: {fileID: 882561003}
- component: {fileID: 882561002}
m_Layer: 0
m_Name: Target 1 Root
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &882561002
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 882561001}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &882561003
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 882561001}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 1.25
Movement: 0
--- !u!114 &882561004
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 882561001}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &882561005
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 882561001}
m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 16.5, y: 1.5, z: -3.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 449620889}
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742821}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 8239809292469255682, guid: 28d80e37b80c2462aaaaf3a0ebe3061a, type: 3}
CoolDownSeconds: 0.3
GenerateMaxCount: 5000
--- !u!114 &947742821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1176673075
--- !u!1 &2046135466
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -766,161 +583,48 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1176673076}
- component: {fileID: 1176673079}
- component: {fileID: 1176673078}
- component: {fileID: 1176673077}
- component: {fileID: 2046135468}
- component: {fileID: 2046135467}
m_Layer: 0
m_Name: Target 0 Root
m_Name: FollowGeneratorsAndTargets
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1176673076
--- !u!114 &2046135467
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2046135466}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45a335734b1572644a6a5d09d87adc65, type: 3}
m_Name:
m_EditorClassIdentifier:
_SceneAsset: {fileID: 102900000, guid: 61000363cd5904587adfadd0435ea484, type: 3}
_HierarchyColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
AutoLoadScene: 1
_SceneGUID:
Value:
x: 909115414
y: 2235602396
z: 232455591
w: 1212867892
--- !u!4 &2046135468
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1176673075}
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
m_LocalPosition: {x: 3.5, y: 1.5, z: -16.61}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1435458095}
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
--- !u!114 &1176673077
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1176673075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1176673078
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1176673075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 1.25
Movement: 0
--- !u!114 &1176673079
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1176673075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!1 &1435458094
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1435458095}
- component: {fileID: 1435458100}
- component: {fileID: 1435458099}
- component: {fileID: 1435458098}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1435458095
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_GameObject: {fileID: 2046135466}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1.5, z: 0}
m_LocalScale: {x: 1, y: 3.1548, z: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1176673076}
m_RootOrder: 0
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1435458098
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1435458099
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &1435458100
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}

Просмотреть файл

@ -6,9 +6,9 @@ LightingSettings:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 4b. Limit DOFSettings
serializedVersion: 4
m_GIWorkflowMode: 0
m_Name: GridCubeFollowTargetsSettings
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
@ -17,8 +17,8 @@ LightingSettings:
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 512
m_BakeResolution: 10
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_LightmapCompression: 3
m_AO: 0
@ -41,17 +41,17 @@ LightingSettings:
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 256
m_PVRSampleCount: 512
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentMIS: 0
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
@ -62,3 +62,4 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8397ae0feb6934c78843c40600cd0d6d
guid: c0ea0f3dd6782411bb216aadb06b0854
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738

Просмотреть файл

@ -6,9 +6,9 @@ LightingSettings:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 4a. Joints ParadeSettings
serializedVersion: 4
m_GIWorkflowMode: 0
m_Name: GridCubeSettings
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
@ -17,8 +17,8 @@ LightingSettings:
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 512
m_BakeResolution: 10
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_LightmapCompression: 3
m_AO: 0
@ -41,17 +41,17 @@ LightingSettings:
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 256
m_PVRSampleCount: 512
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentMIS: 0
m_PVRFilteringMode: 2
m_PVRDenoiserTypeDirect: 0
m_PVRDenoiserTypeIndirect: 0
m_PVRDenoiserTypeAO: 0
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
@ -62,3 +62,4 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 513c1f77573b84f0ea4a6162f72f3fe8
guid: 944e6c008596d4fff8f3ce647fb0a1fd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738

Просмотреть файл

@ -38,12 +38,12 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_IndirectSpecularColor: {r: 0.17997876, g: 0.22534493, b: 0.30672762, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
@ -98,13 +98,13 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 1856571275}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -117,7 +117,9 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
@ -161,9 +163,17 @@ Camera:
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@ -200,6 +210,7 @@ Transform:
m_LocalRotation: {x: -0.21397533, y: 0.67468005, z: -0.21449125, w: -0.6730639}
m_LocalPosition: {x: 72.78, y: 21.319756, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
@ -214,6 +225,7 @@ GameObject:
m_Component:
- component: {fileID: 366118348}
- component: {fileID: 366118347}
- component: {fileID: 366118349}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
@ -280,6 +292,7 @@ Light:
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &366118348
@ -292,11 +305,33 @@ Transform:
m_LocalRotation: {x: -0.017379975, y: -0.51948684, z: 0.76247275, w: 0.38531366}
m_LocalPosition: {x: -0.43, y: 2.94, z: -0.56}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 51.15, y: -42.879, z: 105.093}
--- !u!1 &698350645
--- !u!114 &366118349
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 366118346}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!1 &1692329121
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -304,118 +339,51 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350647}
- component: {fileID: 698350646}
- component: {fileID: 1692329123}
- component: {fileID: 1692329122}
m_Layer: 0
m_Name: Team1Generator
m_Name: Generators
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
--- !u!114 &1692329122
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_GameObject: {fileID: 1692329121}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Script: {fileID: 11500000, guid: 45a335734b1572644a6a5d09d87adc65, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 4839979164330552634, guid: 7b80be4c2579d4312950c22919c1d102, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!114 &698350647
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &698350648
_SceneAsset: {fileID: 102900000, guid: e5712a8d848da43a2b491fc81d55163e, type: 3}
_HierarchyColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
AutoLoadScene: 1
_SceneGUID:
Value:
x: 3634501470
y: 2739591240
z: 2364642482
w: 3814806993
--- !u!4 &1692329123
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_GameObject: {fileID: 1692329121}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742821}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 5504584424357794562, guid: 185fc72fe6b8347aa833fe241a0dd4de, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!114 &947742821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
ConversionMode: 0
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.16926202, y: 0.5, z: -0.47711325}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1831934784
GameObject:
m_ObjectHideFlags: 0
@ -464,7 +432,71 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!850595691 &1856571275
LightingSettings:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Settings.lighting
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
m_IndirectOutputScale: 1
m_UsingShadowmask: 1
m_BakeBackend: 1
m_LightmapMaxSize: 1024
m_BakeResolution: 40
m_Padding: 2
m_LightmapCompression: 3
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAO: 0
m_MixedBakeMode: 2
m_LightmapsBakeMode: 1
m_FilterMode: 1
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_RealtimeResolution: 2
m_ForceWhiteAlbedo: 0
m_ForceUpdates: 0
m_FinalGather: 0
m_FinalGatherRayCount: 256
m_FinalGatherFiltering: 1
m_PVRCulling: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,485 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &449620888
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 449620889}
- component: {fileID: 449620892}
- component: {fileID: 449620891}
- component: {fileID: 449620890}
- component: {fileID: 449620894}
- component: {fileID: 449620893}
m_Layer: 0
m_Name: Target 1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &449620889
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_LocalRotation: {x: 0, y: -0, z: -0.7071068, w: 0.7071068}
m_LocalPosition: {x: 18, y: 1.4999998, z: -3.5}
m_LocalScale: {x: 1, y: 3.154801, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &449620890
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &449620891
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &449620892
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &449620893
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 1.25
Movement: 0
--- !u!114 &449620894
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 449620888}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 3479490926574203404, guid: 4f055a23850cd4a2e9b87a6e7e5e731b, type: 3}
CoolDownSeconds: 0.3
GenerateMaxCount: 5000
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 8239809292469255682, guid: 28d80e37b80c2462aaaaf3a0ebe3061a, type: 3}
CoolDownSeconds: 0.3
GenerateMaxCount: 5000
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1435458094
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1435458095}
- component: {fileID: 1435458100}
- component: {fileID: 1435458099}
- component: {fileID: 1435458098}
- component: {fileID: 1435458102}
- component: {fileID: 1435458101}
m_Layer: 0
m_Name: Target 0
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1435458095
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: 3.5, y: 1.4999998, z: -18.11}
m_LocalScale: {x: 1, y: 3.154801, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1435458098
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1435458099
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1435458100
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &1435458101
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 1.25
Movement: 0
--- !u!114 &1435458102
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1435458094}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: f05fdaec0e58f4b9cb7cbc815696286a
guid: 61000363cd5904587adfadd0435ea484
DefaultImporter:
externalObjects: {}
userData:

Просмотреть файл

@ -0,0 +1,219 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 4839979164330552634, guid: 7b80be4c2579d4312950c22919c1d102, type: 3}
CoolDownSeconds: 0.1
GenerateMaxCount: 5000
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 5504584424357794562, guid: 185fc72fe6b8347aa833fe241a0dd4de, type: 3}
CoolDownSeconds: 0.1
GenerateMaxCount: 5000
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b292abe8630d8436c918377aae789b35
guid: 10769bd255fd1416eb6d88bfd111dd31
DefaultImporter:
externalObjects: {}
userData:

Просмотреть файл

@ -43,7 +43,7 @@ RenderSettings:
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
@ -98,13 +98,14 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 4890085278179872738, guid: d921d4d2c0ea74ac0991eba727bdf381,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -117,7 +118,9 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
@ -168,6 +171,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

Просмотреть файл

@ -6,11 +6,11 @@ LightingSettings:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 2c3. Material Properties - Collision FiltersSettings
serializedVersion: 4
m_Name: GridSettings
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
@ -47,7 +47,7 @@ LightingSettings:
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentMIS: 1
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
@ -62,3 +62,4 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ac4b9c809b77e44e99bb965457fa1b0d
guid: d921d4d2c0ea74ac0991eba727bdf381
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738

Просмотреть файл

@ -0,0 +1,787 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &260769071
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 260769072}
- component: {fileID: 260769075}
- component: {fileID: 260769074}
- component: {fileID: 260769077}
- component: {fileID: 260769076}
m_Layer: 0
m_Name: Target 3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &260769072
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 260769071}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -27.5, y: 1, z: -10.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &260769074
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 260769071}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &260769075
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 260769071}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &260769076
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 260769071}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &260769077
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 260769071}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 2
Movement: 0
--- !u!1 &269196148
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 269196149}
- component: {fileID: 269196152}
- component: {fileID: 269196151}
- component: {fileID: 269196154}
- component: {fileID: 269196153}
m_Layer: 0
m_Name: Target 0
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &269196149
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 269196148}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 10.5, y: 1, z: 12.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &269196151
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 269196148}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &269196152
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 269196148}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &269196153
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 269196148}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &269196154
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 269196148}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 2
Movement: 0
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 3479490926574203404, guid: 4f055a23850cd4a2e9b87a6e7e5e731b, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742821}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 8239809292469255682, guid: 28d80e37b80c2462aaaaf3a0ebe3061a, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!114 &947742821
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ea7d7495833204790ba1d3a8755397f8, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1558299003
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1558299004}
- component: {fileID: 1558299007}
- component: {fileID: 1558299006}
- component: {fileID: 1558299009}
- component: {fileID: 1558299008}
m_Layer: 0
m_Name: Target 4
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1558299004
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558299003}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 51.5, y: 1, z: 2.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &1558299006
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558299003}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1558299007
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558299003}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &1558299008
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558299003}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &1558299009
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1558299003}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 2
Movement: 0
--- !u!1 &2010147232
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2010147233}
- component: {fileID: 2010147236}
- component: {fileID: 2010147235}
- component: {fileID: 2010147238}
- component: {fileID: 2010147237}
m_Layer: 0
m_Name: Target 2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2010147233
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2010147232}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 30.5, y: 1, z: -8.1}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &2010147235
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2010147232}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &2010147236
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2010147232}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &2010147237
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2010147232}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2010147238
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2010147232}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 2
Movement: 0
--- !u!1 &2024250523
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2024250524}
- component: {fileID: 2024250527}
- component: {fileID: 2024250526}
- component: {fileID: 2024250529}
- component: {fileID: 2024250528}
m_Layer: 0
m_Name: Target 1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2024250524
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024250523}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -48.5, y: 1, z: 6.5}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &2024250526
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024250523}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 6c67e8a34c4b6484e8d87a3ad3f2eacb, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &2024250527
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024250523}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!114 &2024250528
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024250523}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f873b9ccdb784aff82c30a0300263dd0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &2024250529
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2024250523}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ede02fc5d83e4273ad9b2b008f644a5a, type: 3}
m_Name:
m_EditorClassIdentifier:
Speed: 2
Movement: 0

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cd4119f30f4a68d4285b68d77a2cd70f
guid: 3652976d21a7944d7976cd2fbb494397
DefaultImporter:
externalObjects: {}
userData:

Просмотреть файл

@ -0,0 +1,219 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &698350645
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 698350648}
- component: {fileID: 698350646}
m_Layer: 0
m_Name: Team1Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &698350646
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 4839979164330552634, guid: 7b80be4c2579d4312950c22919c1d102, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!4 &698350648
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 698350645}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &947742819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 947742822}
- component: {fileID: 947742820}
m_Layer: 0
m_Name: Team0Generator
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &947742820
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 495672948ade40e68dd0ee92888daafa, type: 3}
m_Name:
m_EditorClassIdentifier:
Prefab: {fileID: 5504584424357794562, guid: 185fc72fe6b8347aa833fe241a0dd4de, type: 3}
CoolDownSeconds: 0.5
GenerateMaxCount: 5000
--- !u!4 &947742822
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 947742819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}

Просмотреть файл

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e5712a8d848da43a2b491fc81d55163e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -43,7 +43,7 @@ RenderSettings:
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
@ -98,13 +98,14 @@ LightmapSettings:
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
m_LightingSettings: {fileID: 4890085278179872738, guid: 0d4d6c6afbb3c41c380647db5a07a1dc,
type: 2}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
@ -117,7 +118,9 @@ NavMeshSettings:
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
@ -169,6 +172,7 @@ Transform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -1.4750153, y: 1.7389027, z: 3.6991482}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

Просмотреть файл

@ -6,11 +6,11 @@ LightingSettings:
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 2d2. Events - ContactsSettings
serializedVersion: 4
m_Name: GridSettings
serializedVersion: 6
m_GIWorkflowMode: 1
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_RealtimeEnvironmentLighting: 1
m_BounceScale: 1
m_AlbedoBoost: 1
@ -47,7 +47,7 @@ LightingSettings:
m_LightProbeSampleCountMultiplier: 4
m_PVRBounces: 2
m_PVRMinBounces: 2
m_PVREnvironmentMIS: 1
m_PVREnvironmentImportanceSampling: 1
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
@ -62,3 +62,4 @@ LightingSettings:
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_PVRTiledBaking: 0
m_NumRaysToShootPerTexel: -1

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ea1780aa7badb49749c29d390405adde
guid: 0d4d6c6afbb3c41c380647db5a07a1dc
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 4890085278179872738

Просмотреть файл

@ -68,6 +68,14 @@ public struct CartesianGridCoordinates : IComponentData, IEquatable<CartesianGri
(x <= (colCount - 1)) &&
(y >= 0) &&
(y <= (rowCount - 1)));
public override int GetHashCode()
{
unchecked
{
return (x.GetHashCode() * 397) ^ y.GetHashCode();
}
}
}
/// <summary>

Просмотреть файл

@ -194,8 +194,12 @@ public static unsafe class CartesianGridGeneratorUtility
{
var panelEntity = dstManager.Instantiate(prefab);
#if !ENABLE_TRANSFORM_V1
dstManager.RemoveComponent<LocalToWorldTransform>(panelEntity);
#else
dstManager.RemoveComponent<Translation>(panelEntity);
dstManager.RemoveComponent<Rotation>(panelEntity);
#endif
dstManager.SetComponentData(panelEntity, localToWorld);
}

Просмотреть файл

@ -3,19 +3,24 @@ using Unity.Jobs;
using Unity.Mathematics;
using Unity.Transforms;
[RequireMatchingQueriesForUpdate]
[UpdateBefore(typeof(TransformSystemGroup))]
public partial class CartesianGridMoveForwardSystem : SystemBase
{
protected override void OnUpdate()
{
// Clamp delta time so you can't overshoot.
var deltaTime = math.min(Time.DeltaTime, 0.05f);
var deltaTime = math.min(SystemAPI.Time.DeltaTime, 0.05f);
// Move forward along direction in grid-space given speed.
// - This is the same for Plane or Cube and is the core of the movement code. Simply "move forward" along direction.
Entities
.WithName("CartesianGridMoveForward")
#if !ENABLE_TRANSFORM_V1
.ForEach((ref LocalToWorldTransform transform,
#else
.ForEach((ref Translation translation,
#endif
in CartesianGridDirection gridDirection,
in CartesianGridSpeed gridSpeed,
in CartesianGridCoordinates gridPosition) =>
@ -24,7 +29,11 @@ public partial class CartesianGridMoveForwardSystem : SystemBase
if (dir == 0xff)
return;
#if !ENABLE_TRANSFORM_V1
var pos = transform.Value.Position;
#else
var pos = translation.Value;
#endif
// Speed adjusted to float m/s from fixed point 6:10 m/s
var speed = deltaTime * ((float)gridSpeed.Value) * (1.0f / 1024.0f);
@ -36,7 +45,11 @@ public partial class CartesianGridMoveForwardSystem : SystemBase
// Smooth y changes when transforming between cube faces.
var dy = math.min(speed, 1.0f - pos.y);
#if !ENABLE_TRANSFORM_V1
transform.Value.Position = new float3(pos.x + dx, pos.y + dy, pos.z + dz);
#else
translation.Value = new float3(pos.x + dx, pos.y + dy, pos.z + dz);
#endif
}).Schedule();
}
}

Просмотреть файл

@ -3,8 +3,7 @@ using Unity.Rendering;
using UnityEngine;
[AddComponentMenu("DOTS Samples/GridPath/Cartesian Grid Movement")]
[ConverterVersion("macton", 4)]
public class CartesianGridMovementAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class CartesianGridMovementAuthoring : MonoBehaviour
{
public enum MovementOptions
{
@ -16,23 +15,26 @@ public class CartesianGridMovementAuthoring : MonoBehaviour, IConvertGameObjectT
public float Speed;
public MovementOptions Movement;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<CartesianGridMovementAuthoring>
{
dstManager.AddComponentData(entity, new CartesianGridDirection
public override void Bake(CartesianGridMovementAuthoring authoring)
{
Value = 0, // default N
});
dstManager.AddComponentData(entity, new CartesianGridSpeed
{
Value = (ushort)(Speed * 1024.0f)
});
dstManager.AddComponentData(entity, new CartesianGridCoordinates
{
x = 0,
y = 0
});
AddComponent( new CartesianGridDirection
{
Value = 0, // default N
});
AddComponent( new CartesianGridSpeed
{
Value = (ushort)(authoring.Speed * 1024.0f)
});
AddComponent( new CartesianGridCoordinates
{
x = 0,
y = 0
});
if (Movement == MovementOptions.FollowTarget)
dstManager.AddComponentData(entity, new CartesianGridFollowTarget());
if (authoring.Movement == MovementOptions.FollowTarget)
AddComponent( new CartesianGridFollowTarget());
}
}
}

Просмотреть файл

@ -1,12 +1,9 @@
using System.Collections.Generic;
using Unity.Collections;
using Unity.Entities;
using UnityEngine;
// ReSharper disable once InconsistentNaming
[AddComponentMenu("DOTS Samples/GridPath/Cartesian Grid on Cube")]
[ConverterVersion("macton", 20)]
public class CartesianGridOnCubeAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class CartesianGridOnCubeAuthoring : MonoBehaviour
{
[Range(2, 512)]
public int RowCount;
@ -17,37 +14,29 @@ public class CartesianGridOnCubeAuthoring : MonoBehaviour, IConvertGameObjectToE
public float WallSProbability = 0.5f;
public float WallWProbability = 0.5f;
// Referenced prefabs have to be declared so that the conversion system knows about them ahead of time
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
class Baker : Baker<CartesianGridOnCubeAuthoring>
{
referencedPrefabs.Add(WallPrefab);
referencedPrefabs.AddRange(FloorPrefab);
}
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
{
var floorPrefabCount = FloorPrefab.Length;
if (floorPrefabCount == 0)
return;
var blobBuilder = new BlobBuilder(Allocator.Temp);
ref var blob = ref blobBuilder.ConstructRoot<CartesianGridOnCubeGeneratorBlob>();
blob.RowCount = RowCount;
blob.WallSProbability = WallSProbability;
blob.WallWProbability = WallWProbability;
blob.WallPrefab = conversionSystem.GetPrimaryEntity(WallPrefab);
var floorPrefab = blobBuilder.Allocate(ref blob.FloorPrefab, FloorPrefab.Length);
for (int i = 0; i < FloorPrefab.Length; i++)
public override void Bake(CartesianGridOnCubeAuthoring authoring)
{
floorPrefab[i] = conversionSystem.GetPrimaryEntity(FloorPrefab[i]);
var floorPrefabCount = authoring.FloorPrefab.Length;
if (floorPrefabCount == 0)
return;
var floorPrefabs = AddBuffer<CartesianGridOnCubeGeneratorFloorPrefab>();
floorPrefabs.Length = authoring.FloorPrefab.Length;
for (int i = 0; i < authoring.FloorPrefab.Length; i++)
{
floorPrefabs[i] = GetEntity(authoring.FloorPrefab[i]);
}
AddComponent(new CartesianGridOnCubeGenerator
{
RowCount = authoring.RowCount,
WallSProbability = authoring.WallSProbability,
WallWProbability = authoring.WallWProbability,
WallPrefab = GetEntity(authoring.WallPrefab),
});
}
dstManager.AddComponentData(entity, new CartesianGridOnCubeGenerator
{
Blob = blobBuilder.CreateBlobAssetReference<CartesianGridOnCubeGeneratorBlob>(Allocator.Persistent)
});
blobBuilder.Dispose();
}
}

Просмотреть файл

@ -38,18 +38,30 @@ public unsafe partial class CartesianGridOnCubeBounceOffWallsSystem : SystemBase
.WithNativeDisableUnsafePtrRestriction(trailingOffsets)
.WithEntityQueryOptions(EntityQueryOptions.FilterWriteGroup)
.ForEach((ref CartesianGridDirection gridDirection,
#if !ENABLE_TRANSFORM_V1
ref LocalToWorldTransform transform,
#else
ref Translation translation,
#endif
ref CartesianGridCoordinates gridCoordinates,
ref CartesianGridOnCubeFace cubeFace) =>
{
var prevDir = gridDirection.Value;
var trailingOffset = trailingOffsets[prevDir];
#if !ENABLE_TRANSFORM_V1
var pos = transform.Value.Position.xz + trailingOffset;
#else
var pos = translation.Value.xz + trailingOffset;
#endif
var nextGridPosition = new CartesianGridCoordinates(pos, rowCount, rowCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
#if !ENABLE_TRANSFORM_V1
transform.Value.Position = CartesianGridMovement.SnapToGridAlongDirection(transform.Value.Position, prevDir, gridCoordinates, cellCenterOffset);
#else
translation.Value = CartesianGridMovement.SnapToGridAlongDirection(translation.Value, prevDir, gridCoordinates, cellCenterOffset);
#endif
return; // Still in the same grid cell. No need to change direction.
}
@ -85,10 +97,17 @@ public unsafe partial class CartesianGridOnCubeBounceOffWallsSystem : SystemBase
// - Note that Y position won't be at target value from one edge to another, so that is interpolated in movement update,
// purely for "smoothing" purposes.
var localToLocal = faceLocalToLocal[((prevFaceIndex * 6) + nextFaceIndex)];
#if !ENABLE_TRANSFORM_V1
transform.Value.Position.xyz = math.mul(localToLocal, new float4(transform.Value.Position, 1.0f)).xyz;
// Update gridPosition relative to new face.
gridCoordinates = new CartesianGridCoordinates(transform.Value.Position.xz + trailingOffsets[nextDir], rowCount, rowCount);
#else
translation.Value.xyz = math.mul(localToLocal, new float4(translation.Value, 1.0f)).xyz;
// Update gridPosition relative to new face.
gridCoordinates = new CartesianGridCoordinates(translation.Value.xz + trailingOffsets[nextDir], rowCount, rowCount);
#endif
}
}).Schedule();
}

Просмотреть файл

@ -18,7 +18,7 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
RequireForUpdate(m_GridQuery);
}
static Entity FindTargetShortestPathLength(CartesianGridCoordinates gridCoordinates, CartesianGridOnCubeFace cubeFace, int rowCount, NativeArray<CartesianGridCoordinates> targetCoordinates, NativeArray<Entity> targetEntities, BufferFromEntity<CartesianGridTargetDistance> getCartesianGridTargetDistanceFromEntity)
static Entity FindTargetShortestPathLength(CartesianGridCoordinates gridCoordinates, CartesianGridOnCubeFace cubeFace, int rowCount, NativeArray<CartesianGridCoordinates> targetCoordinates, NativeArray<Entity> targetEntities, BufferLookup<CartesianGridTargetDistance> getCartesianGridTargetDistanceLookup)
{
var targetEntity = Entity.Null;
if (!gridCoordinates.OnGrid(rowCount, rowCount))
@ -31,7 +31,7 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
if (!targetCoordinates[i].OnGrid(rowCount, rowCount))
continue;
var targetDistances = getCartesianGridTargetDistanceFromEntity[targetEntities[i]].Reinterpret<int>().AsNativeArray();
var targetDistances = getCartesianGridTargetDistanceLookup[targetEntities[i]].Reinterpret<int>().AsNativeArray();
var targetDistance = CartesianGridOnCubeShortestPath.LookupDistanceToTarget(gridCoordinates, cubeFace, rowCount, targetDistances);
if (targetDistance < targetBestDistance)
{
@ -54,10 +54,10 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
var trailingOffsets = (float2*)cartesianGridCube.Blob.Value.TrailingOffsets.GetUnsafePtr();
var faceLocalToLocal = (float4x4*)cartesianGridCube.Blob.Value.FaceLocalToLocal.GetUnsafePtr();
var targetEntities = m_TargetQuery.ToEntityArray(Allocator.TempJob);
var targetCoordinates = m_TargetQuery.ToComponentDataArray<CartesianGridCoordinates>(Allocator.TempJob);
var getCartesianGridTargetDirectionFromEntity = GetBufferFromEntity<CartesianGridTargetDirection>(true);
var getCartesianGridTargetDistanceFromEntity = GetBufferFromEntity<CartesianGridTargetDistance>(true);
var targetEntities = m_TargetQuery.ToEntityArray(World.UpdateAllocator.ToAllocator);
var targetCoordinates = m_TargetQuery.ToComponentDataArray<CartesianGridCoordinates>(World.UpdateAllocator.ToAllocator);
var getCartesianGridTargetDirectionFromEntity = GetBufferLookup<CartesianGridTargetDirection>(true);
var getCartesianGridTargetDistanceFromEntity = GetBufferLookup<CartesianGridTargetDistance>(true);
// Offset center to grid cell
var cellCenterOffset = new float2(((float)rowCount * 0.5f) - 0.5f, ((float)rowCount * 0.5f) - 0.5f);
@ -76,12 +76,25 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
.WithAll<CartesianGridFollowTarget>()
.ForEach((ref CartesianGridDirection gridDirection,
ref CartesianGridCoordinates gridCoordinates,
#if !ENABLE_TRANSFORM_V1
ref LocalToWorldTransform transform,
#else
ref Translation translation,
#endif
ref CartesianGridOnCubeFace cubeFace) =>
{
var dir = gridDirection.Value;
if (dir != 0xff) // If moving, update grid based on trailing direction.
{
#if !ENABLE_TRANSFORM_V1
var nextGridPosition = new CartesianGridCoordinates(transform.Value.Position.xz + trailingOffsets[dir], rowCount, rowCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
transform.Value.Position = CartesianGridMovement.SnapToGridAlongDirection(transform.Value.Position, dir, gridCoordinates, cellCenterOffset);
return; // Still in the same grid cell. No need to change direction.
}
#else
var nextGridPosition = new CartesianGridCoordinates(translation.Value.xz + trailingOffsets[dir], rowCount, rowCount);
if (gridCoordinates.Equals(nextGridPosition))
{
@ -89,6 +102,7 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
translation.Value = CartesianGridMovement.SnapToGridAlongDirection(translation.Value, dir, gridCoordinates, cellCenterOffset);
return; // Still in the same grid cell. No need to change direction.
}
#endif
var edge = CartesianGridMovement.CubeExitEdge(nextGridPosition, rowCount);
@ -116,10 +130,17 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
// - Note that Y position won't be at target value from one edge to another, so that is interpolated in movement update,
// purely for "smoothing" purposes.
var localToLocal = faceLocalToLocal[((prevFaceIndex * 6) + nextFaceIndex)];
#if !ENABLE_TRANSFORM_V1
transform.Value.Position.xyz = math.mul(localToLocal, new float4(transform.Value.Position, 1.0f)).xyz;
// Update gridPosition relative to new face.
gridCoordinates = new CartesianGridCoordinates(transform.Value.Position.xz + trailingOffsets[nextDir], rowCount, rowCount);
#else
translation.Value.xyz = math.mul(localToLocal, new float4(translation.Value, 1.0f)).xyz;
// Update gridPosition relative to new face.
gridCoordinates = new CartesianGridCoordinates(translation.Value.xz + trailingOffsets[nextDir], rowCount, rowCount);
#endif
}
}
@ -144,8 +165,5 @@ public unsafe partial class CartesianGridOnPCubeFollowTargetSystem : SystemBase
var validDirections = CartesianGridOnCubeShortestPath.LookupDirectionToTarget(gridCoordinates, cubeFace, rowCount, targetDirections);
gridDirection.Value = CartesianGridMovement.PathVariation[(pathOffset * 16) + validDirections];
}).Schedule();
Dependency = targetEntities.Dispose(Dependency);
Dependency = targetCoordinates.Dispose(Dependency);
}
}

Просмотреть файл

@ -1,15 +1,17 @@
using Unity.Entities;
public struct CartesianGridOnCubeGenerator : IComponentData
{
public BlobAssetReference<CartesianGridOnCubeGeneratorBlob> Blob;
}
public struct CartesianGridOnCubeGeneratorBlob
{
public int RowCount;
public Entity WallPrefab;
public BlobArray<Entity> FloorPrefab;
public float WallSProbability;
public float WallWProbability;
}
public struct CartesianGridOnCubeGeneratorFloorPrefab : IBufferElementData
{
public Entity Value;
public static implicit operator CartesianGridOnCubeGeneratorFloorPrefab(Entity entity) => new() { Value = entity };
public static implicit operator Entity(CartesianGridOnCubeGeneratorFloorPrefab element) => element.Value;
}

Просмотреть файл

@ -1,24 +1,24 @@
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
[ConverterVersion("macton", 5)]
[WorldSystemFilter(WorldSystemFilterFlags.Default | WorldSystemFilterFlags.EntitySceneOptimizations)]
[RequireMatchingQueriesForUpdate]
public unsafe partial class CartesianGridOnCubeSystemGeneratorSystem : SystemBase
{
protected override void OnUpdate()
{
Dependency.Complete();
Entities.WithStructuralChanges().ForEach((Entity entity, ref CartesianGridOnCubeGenerator cartesianGridOnCubeGenerator) =>
Entities.WithStructuralChanges().ForEach((Entity entity, ref CartesianGridOnCubeGenerator cartesianGridOnCubeGenerator, in DynamicBuffer<CartesianGridOnCubeGeneratorFloorPrefab> floorPrefabsBuffer) =>
{
ref var floorPrefab = ref cartesianGridOnCubeGenerator.Blob.Value.FloorPrefab;
var wallPrefab = cartesianGridOnCubeGenerator.Blob.Value.WallPrefab;
var rowCount = cartesianGridOnCubeGenerator.Blob.Value.RowCount;
var wallSProbability = cartesianGridOnCubeGenerator.Blob.Value.WallSProbability;
var wallWProbability = cartesianGridOnCubeGenerator.Blob.Value.WallWProbability;
var floorPrefabs = new NativeArray<Entity>(floorPrefabsBuffer.Length, Allocator.Temp);
floorPrefabs.CopyFrom(floorPrefabsBuffer.Reinterpret<Entity>().AsNativeArray());
var floorPrefabCount = floorPrefab.Length;
var wallPrefab = cartesianGridOnCubeGenerator.WallPrefab;
var rowCount = cartesianGridOnCubeGenerator.RowCount;
var wallSProbability = cartesianGridOnCubeGenerator.WallSProbability;
var wallWProbability = cartesianGridOnCubeGenerator.WallWProbability;
var floorPrefabCount = floorPrefabs.Length;
if (floorPrefabCount == 0)
return;
@ -58,7 +58,7 @@ public unsafe partial class CartesianGridOnCubeSystemGeneratorSystem : SystemBas
var tx = ((float)x) - cx;
var tz = ((float)y) - cz;
CartesianGridGeneratorUtility.CreateFloorPanel(EntityManager, floorPrefab[prefabIndex], faceLocalToWorld[faceIndex], tx, tz);
CartesianGridGeneratorUtility.CreateFloorPanel(EntityManager, floorPrefabs[prefabIndex], faceLocalToWorld[faceIndex], tx, tz);
var gridWallsIndex = faceGridWallsOffset + ((y * ((rowCount + 1) / 2)) + (x / 2));
var walls = (gridWalls[gridWallsIndex] >> ((x & 1) * 4)) & 0x0f;

Просмотреть файл

@ -37,7 +37,11 @@ public unsafe partial class CartesianGridOnCubeSnapToFaceSystem : SystemBase
.WithNone<CartesianGridOnCubeFace>()
.WithAll<CartesianGridDirection>()
.ForEach((Entity entity,
#if !ENABLE_TRANSFORM_V1
ref LocalToWorldTransform transform,
#else
ref Translation translation,
#endif
ref CartesianGridCoordinates gridCoordinates) =>
{
// Find closest GridFace
@ -48,7 +52,11 @@ public unsafe partial class CartesianGridOnCubeSnapToFaceSystem : SystemBase
var n = faceLocalToWorld[i].c1.xyz;
var p = faceLocalToWorld[i].c3.xyz;
var d = -math.dot(n, p);
#if !ENABLE_TRANSFORM_V1
var dist = math.dot(transform.Value.Position.xyz, n) + d;
#else
var dist = math.dot(translation.Value.xyz, n) + d;
#endif
if (math.abs(dist) < bestDist)
{
bestDist = dist;
@ -57,7 +65,11 @@ public unsafe partial class CartesianGridOnCubeSnapToFaceSystem : SystemBase
}
// Put translation in GridFace space
#if !ENABLE_TRANSFORM_V1
transform.Value.Position = math.mul(faceWorldToLocal[bestCubeFace], new float4(transform.Value.Position.xyz, 1.0f)).xyz;
#else
translation.Value = math.mul(faceWorldToLocal[bestCubeFace], new float4(translation.Value.xyz, 1.0f)).xyz;
#endif
EntityManager.AddComponentData(entity, new CartesianGridOnCubeFace { Value = (byte)bestCubeFace });
}).Run();
}

Просмотреть файл

@ -14,7 +14,7 @@ public partial class CartesianGridOnCubeSoloSpawnerSystem : SystemBase
protected override void OnCreate()
{
// Cache the BeginInitializationEntityCommandBufferSystem in a field, so we don't have to create it every frame
m_EntityCommandBufferSystem = World.GetOrCreateSystem<BeginInitializationEntityCommandBufferSystem>();
m_EntityCommandBufferSystem = World.GetOrCreateSystemManaged<BeginInitializationEntityCommandBufferSystem>();
m_GridQuery = GetEntityQuery(ComponentType.ReadOnly<CartesianGridOnCube>());
RequireForUpdate(m_GridQuery);
}
@ -22,7 +22,7 @@ public partial class CartesianGridOnCubeSoloSpawnerSystem : SystemBase
protected override void OnUpdate()
{
// Clamp delta time so you can't overshoot.
var deltaTime = math.min(Time.DeltaTime, 0.05f);
var deltaTime = math.min(SystemAPI.Time.DeltaTime, 0.05f);
var commandBuffer = m_EntityCommandBufferSystem.CreateCommandBuffer();
var cartesianGridCube = GetSingleton<CartesianGridOnCube>();
@ -48,7 +48,11 @@ public partial class CartesianGridOnCubeSoloSpawnerSystem : SystemBase
var y = 1.0f;
var faceIndex = soloSpawner.Random.NextInt(0, 6);
#if !ENABLE_TRANSFORM_V1
commandBuffer.SetComponent(entity, new LocalToWorldTransform { Value = UniformScaleTransform.FromPosition(new float3(x, y, z)) });
#else
commandBuffer.SetComponent(entity, new Translation { Value = new float3(x, y, z) });
#endif
commandBuffer.AddComponent(entity, new CartesianGridOnCubeFace { Value = (byte)faceIndex });
soloSpawner.GeneratedCount++;
}

Просмотреть файл

@ -29,13 +29,20 @@ public unsafe partial class CartesianGridOnCubeTransformSystem : SystemBase
.WithName("CartesianGridOnCubeTransform")
.WithNativeDisableUnsafePtrRestriction(faceLocalToWorld)
.ForEach((ref LocalToWorld localToWorld,
#if !ENABLE_TRANSFORM_V1
in LocalToWorldTransform transform,
#else
in Translation translation,
#endif
in CartesianGridOnCubeFace cubeFace) =>
{
var cubeFaceIndex = cubeFace.Value;
var resultLocalToWorld = faceLocalToWorld[cubeFaceIndex];
#if !ENABLE_TRANSFORM_V1
resultLocalToWorld.c3 = math.mul(resultLocalToWorld, new float4(transform.Value.Position, 1.0f));
#else
resultLocalToWorld.c3 = math.mul(resultLocalToWorld, new float4(translation.Value, 1.0f));
#endif
localToWorld = new LocalToWorld
{
Value = resultLocalToWorld

Просмотреть файл

@ -1,12 +1,9 @@
using System.Collections.Generic;
using Unity.Collections;
using Unity.Entities;
using UnityEngine;
// ReSharper disable once InconsistentNaming
[AddComponentMenu("DOTS Samples/GridPath/Cartesian Grid on Plane")]
[ConverterVersion("macton", 10)]
public class CartesianGridOnPlaneAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class CartesianGridOnPlaneAuthoring : MonoBehaviour
{
[Range(2, 512)] public int ColumnCount;
[Range(2, 512)] public int RowCount;
@ -17,38 +14,30 @@ public class CartesianGridOnPlaneAuthoring : MonoBehaviour, IConvertGameObjectTo
public float WallSProbability = 0.5f;
public float WallWProbability = 0.5f;
// Referenced prefabs have to be declared so that the conversion system knows about them ahead of time
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
class Baker : Baker<CartesianGridOnPlaneAuthoring>
{
referencedPrefabs.Add(WallPrefab);
referencedPrefabs.AddRange(FloorPrefab);
}
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
{
var floorPrefabCount = FloorPrefab.Length;
if (floorPrefabCount == 0)
return;
var blobBuilder = new BlobBuilder(Allocator.Temp);
ref var blob = ref blobBuilder.ConstructRoot<CartesianGridOnPlaneGeneratorBlob>();
blob.RowCount = RowCount;
blob.ColCount = ColumnCount;
blob.WallSProbability = WallSProbability;
blob.WallWProbability = WallWProbability;
blob.WallPrefab = conversionSystem.GetPrimaryEntity(WallPrefab);
var floorPrefab = blobBuilder.Allocate(ref blob.FloorPrefab, FloorPrefab.Length);
for (int i = 0; i < FloorPrefab.Length; i++)
public override void Bake(CartesianGridOnPlaneAuthoring authoring)
{
floorPrefab[i] = conversionSystem.GetPrimaryEntity(FloorPrefab[i]);
var floorPrefabCount = authoring.FloorPrefab.Length;
if (floorPrefabCount == 0)
return;
var floorPrefabs = AddBuffer<CartesianGridOnPlaneGeneratorFloorPrefab>();
floorPrefabs.Length = authoring.FloorPrefab.Length;
for (int i = 0; i < authoring.FloorPrefab.Length; i++)
{
floorPrefabs[i] = GetEntity(authoring.FloorPrefab[i]);
}
AddComponent( new CartesianGridOnPlaneGenerator
{
RowCount = authoring.RowCount,
ColCount = authoring.ColumnCount,
WallSProbability = authoring.WallSProbability,
WallWProbability = authoring.WallWProbability,
WallPrefab = GetEntity(authoring.WallPrefab),
});
}
dstManager.AddComponentData(entity, new CartesianGridOnPlaneGenerator
{
Blob = blobBuilder.CreateBlobAssetReference<CartesianGridOnPlaneGeneratorBlob>(Allocator.Persistent)
});
blobBuilder.Dispose();
}
}

Просмотреть файл

@ -37,14 +37,26 @@ public unsafe partial class CartesianGridOnPlaneBounceOffWallsSystem : SystemBas
.WithEntityQueryOptions(EntityQueryOptions.FilterWriteGroup)
.ForEach((ref CartesianGridDirection gridDirection,
ref CartesianGridCoordinates gridCoordinates,
#if !ENABLE_TRANSFORM_V1
ref LocalToWorldTransform transform) =>
#else
ref Translation translation) =>
#endif
{
var dir = gridDirection.Value;
#if !ENABLE_TRANSFORM_V1
var nextGridPosition = new CartesianGridCoordinates(transform.Value.Position.xz + trailingOffsets[dir], rowCount, colCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
transform.Value.Position = CartesianGridMovement.SnapToGridAlongDirection(transform.Value.Position, dir, gridCoordinates, cellCenterOffset);
#else
var nextGridPosition = new CartesianGridCoordinates(translation.Value.xz + trailingOffsets[dir], rowCount, colCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
translation.Value = CartesianGridMovement.SnapToGridAlongDirection(translation.Value, dir, gridCoordinates, cellCenterOffset);
#endif
return; // Still in the same grid cell. No need to change direction.
}

Просмотреть файл

@ -45,9 +45,9 @@ public unsafe partial class CartesianGridOnPlaneFollowTargetSystem : SystemBase
var colCount = cartesianGridPlane.Blob.Value.ColCount;
var trailingOffsets = (float2*)cartesianGridPlane.Blob.Value.TrailingOffsets.GetUnsafePtr();
var targetEntities = m_TargetQuery.ToEntityArray(Allocator.TempJob);
var targetCoordinates = m_TargetQuery.ToComponentDataArray<CartesianGridCoordinates>(Allocator.TempJob);
var getCartesianGridTargetDirectionFromEntity = GetBufferFromEntity<CartesianGridTargetDirection>(true);
var targetEntities = m_TargetQuery.ToEntityArray(World.UpdateAllocator.ToAllocator);
var targetCoordinates = m_TargetQuery.ToComponentDataArray<CartesianGridCoordinates>(World.UpdateAllocator.ToAllocator);
var getCartesianGridTargetDirectionFromEntity = GetBufferLookup<CartesianGridTargetDirection>(true);
// Offset center to grid cell
var cellCenterOffset = new float2(((float)colCount * 0.5f) - 0.5f, ((float)rowCount * 0.5f) - 0.5f);
@ -63,16 +63,28 @@ public unsafe partial class CartesianGridOnPlaneFollowTargetSystem : SystemBase
.WithAll<CartesianGridFollowTarget>()
.ForEach((ref CartesianGridDirection gridDirection,
ref CartesianGridCoordinates gridCoordinates,
#if !ENABLE_TRANSFORM_V1
ref LocalToWorldTransform transform) =>
#else
ref Translation translation) =>
#endif
{
var dir = gridDirection.Value;
if (dir != 0xff) // If moving, update grid based on trailing direction.
{
#if !ENABLE_TRANSFORM_V1
var nextGridPosition = new CartesianGridCoordinates(transform.Value.Position.xz + trailingOffsets[dir], rowCount, colCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
transform.Value.Position = CartesianGridMovement.SnapToGridAlongDirection(transform.Value.Position, dir, gridCoordinates, cellCenterOffset);
#else
var nextGridPosition = new CartesianGridCoordinates(translation.Value.xz + trailingOffsets[dir], rowCount, colCount);
if (gridCoordinates.Equals(nextGridPosition))
{
// Don't allow translation to drift
translation.Value = CartesianGridMovement.SnapToGridAlongDirection(translation.Value, dir, gridCoordinates, cellCenterOffset);
#endif
return; // Still in the same grid cell. No need to change direction.
}
@ -93,8 +105,5 @@ public unsafe partial class CartesianGridOnPlaneFollowTargetSystem : SystemBase
var validDirections = CartesianGridOnPlaneShortestPath.LookupDirectionToTarget(gridCoordinates, rowCount, colCount, targetDirections);
gridDirection.Value = CartesianGridMovement.PathVariation[(pathOffset * 16) + validDirections];
}).Schedule();
Dependency = targetEntities.Dispose(Dependency);
Dependency = targetCoordinates.Dispose(Dependency);
}
}

Просмотреть файл

@ -1,16 +1,18 @@
using Unity.Entities;
public struct CartesianGridOnPlaneGenerator : IComponentData
{
public BlobAssetReference<CartesianGridOnPlaneGeneratorBlob> Blob;
}
public struct CartesianGridOnPlaneGeneratorBlob
{
public int RowCount;
public int ColCount;
public Entity WallPrefab;
public BlobArray<Entity> FloorPrefab;
public float WallSProbability;
public float WallWProbability;
}
public struct CartesianGridOnPlaneGeneratorFloorPrefab : IBufferElementData
{
public Entity Value;
public static implicit operator CartesianGridOnPlaneGeneratorFloorPrefab(Entity entity) => new() { Value = entity };
public static implicit operator Entity(CartesianGridOnPlaneGeneratorFloorPrefab element) => element.Value;
}

Просмотреть файл

@ -1,25 +1,25 @@
using Unity.Collections;
using Unity.Entities;
using Unity.Jobs;
using Unity.Mathematics;
[ConverterVersion("macton", 4)]
[WorldSystemFilter(WorldSystemFilterFlags.Default | WorldSystemFilterFlags.EntitySceneOptimizations)]
[RequireMatchingQueriesForUpdate]
public unsafe partial class CartesianGridOnPlaneSystemGeneratorSystem : SystemBase
{
protected override void OnUpdate()
{
Dependency.Complete();
Entities.WithStructuralChanges().ForEach((Entity entity, ref CartesianGridOnPlaneGenerator cartesianGridOnPlaneGenerator) =>
Entities.WithStructuralChanges().ForEach((Entity entity, in CartesianGridOnPlaneGenerator cartesianGridOnPlaneGenerator, in DynamicBuffer<CartesianGridOnPlaneGeneratorFloorPrefab> floorPrefabsBuffer) =>
{
ref var floorPrefab = ref cartesianGridOnPlaneGenerator.Blob.Value.FloorPrefab;
var wallPrefab = cartesianGridOnPlaneGenerator.Blob.Value.WallPrefab;
var rowCount = cartesianGridOnPlaneGenerator.Blob.Value.RowCount;
var colCount = cartesianGridOnPlaneGenerator.Blob.Value.ColCount;
var wallSProbability = cartesianGridOnPlaneGenerator.Blob.Value.WallSProbability;
var wallWProbability = cartesianGridOnPlaneGenerator.Blob.Value.WallWProbability;
var floorPrefabs = new NativeArray<Entity>(floorPrefabsBuffer.Length, Allocator.Temp);
floorPrefabs.CopyFrom(floorPrefabsBuffer.Reinterpret<Entity>().AsNativeArray());
var floorPrefabCount = floorPrefab.Length;
var wallPrefab = cartesianGridOnPlaneGenerator.WallPrefab;
var rowCount = cartesianGridOnPlaneGenerator.RowCount;
var colCount = cartesianGridOnPlaneGenerator.ColCount;
var wallSProbability = cartesianGridOnPlaneGenerator.WallSProbability;
var wallWProbability = cartesianGridOnPlaneGenerator.WallWProbability;
var floorPrefabCount = floorPrefabsBuffer.Length;
if (floorPrefabCount == 0)
return;
@ -48,7 +48,7 @@ public unsafe partial class CartesianGridOnPlaneSystemGeneratorSystem : SystemBa
var tx = ((float)x) - cx;
var tz = ((float)y) - cz;
CartesianGridGeneratorUtility.CreateFloorPanel(EntityManager, floorPrefab[prefabIndex], float4x4.identity, tx, tz);
CartesianGridGeneratorUtility.CreateFloorPanel(EntityManager, floorPrefabs[prefabIndex], float4x4.identity, tx, tz);
var gridWallsIndex = (y * ((colCount + 1) / 2)) + (x / 2);
var walls = (gridWalls[gridWallsIndex] >> ((x & 1) * 4)) & 0x0f;

Просмотреть файл

@ -14,7 +14,7 @@ public partial class CartesianGridOnPlaneSoloSpawnerSystem : SystemBase
protected override void OnCreate()
{
// Cache the BeginInitializationEntityCommandBufferSystem in a field, so we don't have to create it every frame
m_EntityCommandBufferSystem = World.GetOrCreateSystem<BeginInitializationEntityCommandBufferSystem>();
m_EntityCommandBufferSystem = World.GetOrCreateSystemManaged<BeginInitializationEntityCommandBufferSystem>();
m_GridQuery = GetEntityQuery(ComponentType.ReadOnly<CartesianGridOnPlane>());
RequireForUpdate(m_GridQuery);
}
@ -22,7 +22,7 @@ public partial class CartesianGridOnPlaneSoloSpawnerSystem : SystemBase
protected override void OnUpdate()
{
// Clamp delta time so you can't overshoot.
var deltaTime = math.min(Time.DeltaTime, 0.05f);
var deltaTime = math.min(SystemAPI.Time.DeltaTime, 0.05f);
var commandBuffer = m_EntityCommandBufferSystem.CreateCommandBuffer();
var cartesianGridPlane = GetSingleton<CartesianGridOnPlane>();
@ -48,7 +48,11 @@ public partial class CartesianGridOnPlaneSoloSpawnerSystem : SystemBase
var z = v - cy + 0.5f;
var y = 1.0f;
#if !ENABLE_TRANSFORM_V1
commandBuffer.SetComponent(entity, new LocalToWorldTransform { Value = UniformScaleTransform.FromPosition(new float3(x, y, z)) });
#else
commandBuffer.SetComponent(entity, new Translation { Value = new float3(x, y, z) });
#endif
soloSpawner.GeneratedCount++;
}
secondsUntilGenerate = soloSpawner.CoolDownSeconds;

Просмотреть файл

@ -2,12 +2,14 @@ using Unity.Entities;
using UnityEngine;
[AddComponentMenu("DOTS Samples/GridPath/Cartesian Grid Target")]
[ConverterVersion("macton", 1)]
public class CartesianGridTargetAuthoring : MonoBehaviour, IConvertGameObjectToEntity
public class CartesianGridTargetAuthoring : MonoBehaviour
{
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<CartesianGridTargetAuthoring>
{
dstManager.AddComponent<CartesianGridTarget>(entity);
dstManager.AddComponentData(entity, new CartesianGridTargetCoordinates { x = -1, y = -1 });
public override void Bake(CartesianGridTargetAuthoring authoring)
{
AddComponent<CartesianGridTarget>();
AddComponent(new CartesianGridTargetCoordinates { x = -1, y = -1 });
}
}
}

Просмотреть файл

@ -6,7 +6,7 @@
"Unity.Collections",
"Unity.Transforms",
"Unity.Transforms.Hybrid",
"Unity.Rendering.Hybrid",
"Unity.Entities.Graphics",
"Unity.Burst",
"Unity.Jobs",
"Unity.Mathematics",

Просмотреть файл

@ -4,29 +4,27 @@ using UnityEngine;
using Random = Unity.Mathematics.Random;
[AddComponentMenu("DOTS Samples/GridPath/Solo Spawner")]
[ConverterVersion("macton", 2)]
public class SoloSpawnerAuthoring : MonoBehaviour, IConvertGameObjectToEntity, IDeclareReferencedPrefabs
public class SoloSpawnerAuthoring : MonoBehaviour
{
public GameObject Prefab;
public float CoolDownSeconds;
[Range(0, 64 * 1024)]
public int GenerateMaxCount;
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
class Baker : Baker<SoloSpawnerAuthoring>
{
dstManager.AddComponentData(entity, new SoloSpawner
public override void Bake(SoloSpawnerAuthoring authoring)
{
Prefab = conversionSystem.GetPrimaryEntity(Prefab),
CoolDownSeconds = CoolDownSeconds,
SecondsUntilGenerate = 0.0f,
GenerateMaxCount = GenerateMaxCount,
GeneratedCount = 0,
Random = new Random(0xDBC19 * (uint)entity.Index)
});
}
public void DeclareReferencedPrefabs(List<GameObject> referencedPrefabs)
{
referencedPrefabs.Add(Prefab);
var entity = GetEntity();
AddComponent( new SoloSpawner
{
Prefab = GetEntity(authoring.Prefab),
CoolDownSeconds = authoring.CoolDownSeconds,
SecondsUntilGenerate = 0.0f,
GenerateMaxCount = authoring.GenerateMaxCount,
GeneratedCount = 0,
Random = new Random(0xDBC19 * (uint)entity.Index)
});
}
}
}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 1aa73905375319645806bd27d11d7903
guid: 600068705a4488847bb5e6ccac7ab735
folderAsset: yes
DefaultImporter:
externalObjects: {}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8564e6615cb346c458d0b12623631e3d
guid: 02a9b97194dfa5b4385b7e850ba03930
folderAsset: yes
DefaultImporter:
externalObjects: {}

Просмотреть файл

@ -0,0 +1,420 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &303461901
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 303461903}
- component: {fileID: 303461902}
m_Layer: 0
m_Name: LivePropertySubscene
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &303461902
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 303461901}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 45a335734b1572644a6a5d09d87adc65, type: 3}
m_Name:
m_EditorClassIdentifier:
_SceneAsset: {fileID: 102900000, guid: 8fab3434adb3d014199528e0e87fbaf2, type: 3}
_HierarchyColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
AutoLoadScene: 1
_SceneGUID:
Value:
x: 1128512248
y: 1091386330
z: 243423633
w: 799799182
--- !u!4 &303461903
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 303461901}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &701853970
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 701853973}
- component: {fileID: 701853972}
- component: {fileID: 701853971}
- component: {fileID: 701853974}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &701853971
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 701853970}
m_Enabled: 1
--- !u!20 &701853972
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 701853970}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &701853973
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 701853970}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &701853974
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 701853970}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
--- !u!1 &1713490341
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1713490344}
- component: {fileID: 1713490343}
- component: {fileID: 1713490342}
m_Layer: 0
m_Name: Directional Light
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1713490342
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713490341}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Version: 1
m_UsePipelineSettings: 1
m_AdditionalLightsShadowResolutionTier: 2
m_LightLayerMask: 1
m_CustomShadowLayers: 0
m_ShadowLayerMask: 1
m_LightCookieSize: {x: 1, y: 1}
m_LightCookieOffset: {x: 0, y: 0}
m_SoftShadowQuality: 1
--- !u!108 &1713490343
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713490341}
m_Enabled: 1
serializedVersion: 10
m_Type: 1
m_Shape: 0
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
m_Intensity: 1
m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize: 10
m_Shadows:
m_Type: 2
m_Resolution: -1
m_CustomResolution: -1
m_Strength: 1
m_Bias: 0.05
m_NormalBias: 0.4
m_NearPlane: 0.2
m_CullingMatrixOverride:
e00: 1
e01: 0
e02: 0
e03: 0
e10: 0
e11: 1
e12: 0
e13: 0
e20: 0
e21: 0
e22: 1
e23: 0
e30: 0
e31: 0
e32: 0
e33: 1
m_UseCullingMatrixOverride: 0
m_Cookie: {fileID: 0}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingLayerMask: 1
m_Lightmapping: 4
m_LightShadowCasterMode: 0
m_AreaSize: {x: 1, y: 1}
m_BounceIntensity: 1
m_ColorTemperature: 6570
m_UseColorTemperature: 0
m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
m_UseBoundingSphereOverride: 0
m_UseViewFrustumForShadowCasterCull: 1
m_ShadowRadius: 0
m_ShadowAngle: 0
--- !u!4 &1713490344
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1713490341}
m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261}
m_LocalPosition: {x: 0, y: 3, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}

Просмотреть файл

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ac553ec20b156c84c8bd703b7eae12b2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -0,0 +1,597 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &233596020
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 233596024}
- component: {fileID: 233596023}
- component: {fileID: 233596022}
- component: {fileID: 233596021}
- component: {fileID: 233596025}
m_Layer: 0
m_Name: Cube_With_GenerateAuthoringComponent_Duplicate
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &233596021
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233596020}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &233596022
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233596020}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &233596023
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233596020}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &233596024
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233596020}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &233596025
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 233596020}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6db2e295bab65ae449008f116c3c15b5, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &919464637
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 919464642}
- component: {fileID: 919464641}
- component: {fileID: 919464640}
- component: {fileID: 919464639}
- component: {fileID: 919464638}
m_Layer: 0
m_Name: Cube_With_No_RegisterBinding
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &919464638
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 919464637}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 72c7623bfefa460b843b5815eac2f453, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!65 &919464639
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 919464637}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &919464640
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 919464637}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &919464641
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 919464637}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &919464642
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 919464637}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1205759801
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1205759805}
- component: {fileID: 1205759804}
- component: {fileID: 1205759803}
- component: {fileID: 1205759802}
- component: {fileID: 1205759806}
m_Layer: 0
m_Name: Cube_With_GenerateAuthoringComponent
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &1205759802
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205759801}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1205759803
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205759801}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1205759804
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205759801}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1205759805
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205759801}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.5, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1205759806
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1205759801}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6db2e295bab65ae449008f116c3c15b5, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1 &1630548374
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1630548378}
- component: {fileID: 1630548377}
- component: {fileID: 1630548376}
- component: {fileID: 1630548375}
- component: {fileID: 1630548379}
m_Layer: 0
m_Name: Cube_With_RegisterBinding
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!65 &1630548375
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1630548374}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1630548376
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1630548374}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1630548377
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1630548374}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!4 &1630548378
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1630548374}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1630548379
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1630548374}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d88cf081f0db44a6a8e8fdbae5b2fee3, type: 3}
m_Name:
m_EditorClassIdentifier:

Просмотреть файл

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8fab3434adb3d014199528e0e87fbaf2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Просмотреть файл

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1e53f0786bda4b97901084b99842a2d1
timeCreated: 1650916684

Просмотреть файл

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: a5270224fcdf4b3db8eb045eb8576642
timeCreated: 1650916555

Просмотреть файл

@ -0,0 +1,83 @@
using Unity.Entities;
using Unity.Mathematics;
using Unity.Transforms;
public partial class LivePropertyByGenerateAuthoringComponentSystem : SystemBase
{
protected override void OnUpdate()
{
#if !ENABLE_TRANSFORM_V1
Entities.ForEach((ref LivePropertyComponent move, ref LocalToWorldTransform transform) =>
#else
Entities.ForEach((ref LivePropertyComponent move, ref Translation translation, ref Rotation rotation, ref NonUniformScale scale) =>
#endif
{
// transform
float deltaTime = SystemAPI.Time.DeltaTime;
#if !ENABLE_TRANSFORM_V1
transform.Value.Position.x += 0.01f;
transform.Value.Position.y += 0.01f;
transform.Value.Position.z += 0.01f;
transform.Value = transform.Value.RotateY(2 * deltaTime);
transform.Value.Scale += 0.01f;
#else
translation.Value.x += 0.01f;
translation.Value.y += 0.01f;
translation.Value.z += 0.01f;
rotation.Value = math.mul(
math.normalize(rotation.Value),
quaternion.AxisAngle(math.up(), 2 * deltaTime));
scale.Value += 0.01f;
#endif
// float, int, bool
move.FloatField = 0.0f;
move.IntField += 1;
move.BoolField = false;
// float2, int2, bool2
move.Float2Field.x += 1.0f;
move.Float2Field.y += 1.0f;
move.Int2Field.x += 1;
move.Int2Field.y += 1;
move.Bool2Field.x = !move.Bool2Field.x;
move.Bool2Field.y = !move.Bool2Field.y;
// float3, int3, bool3
move.Float3Field.x += 1.0f;
move.Float3Field.y += 1.0f;
move.Float3Field.z += 1.0f;
move.Int3Field.x += 1;
move.Int3Field.y += 1;
move.Int3Field.z += 1;
move.Bool3Field.x = !move.Bool3Field.x;
move.Bool3Field.y = !move.Bool3Field.y;
move.Bool3Field.z = !move.Bool3Field.z;
// float4, int4, bool4
move.Float4Field.x += 1.0f;
move.Float4Field.y += 1.0f;
move.Float4Field.z += 1.0f;
move.Float4Field.w += 1.0f;
move.Int4Field.x += 1;
move.Int4Field.y += 1;
move.Int4Field.z += 1;
move.Int4Field.w += 1;
move.Bool4Field.x = !move.Bool4Field.x;
move.Bool4Field.y = !move.Bool4Field.y;
move.Bool4Field.z = !move.Bool4Field.z;
move.Bool4Field.w = !move.Bool4Field.w;
}).WithoutBurst().Run();
}
}

Просмотреть файл

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 30aae0f3bc58c42329c39a69454ce173
guid: afeca53093db71544b41d802cbcf7a60
MonoImporter:
externalObjects: {}
serializedVersion: 2

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше