Initial Commit
This commit is contained in:
commit
ee5c2f922d
2255 changed files with 547750 additions and 0 deletions
31
Assets/Scripts/Systems/Rotation2DSystem.cs
Normal file
31
Assets/Scripts/Systems/Rotation2DSystem.cs
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
using Unity.Collections;
|
||||
using Unity.Entities;
|
||||
using Unity.Jobs;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Jobs;
|
||||
|
||||
public class Rotation2DSystem : JobComponentSystem
|
||||
{
|
||||
private EntityQuery rotations;
|
||||
|
||||
protected override void OnCreate()
|
||||
{
|
||||
rotations = GetEntityQuery(ComponentType.ReadOnly<Rotation2D>(), ComponentType.ReadOnly<Transform>());
|
||||
}
|
||||
|
||||
protected override JobHandle OnUpdate(JobHandle inputDeps)
|
||||
{
|
||||
var job = new RotationJob { Rotations = rotations.ToComponentDataArray<Rotation2D>(Allocator.TempJob) };
|
||||
return job.Schedule(rotations.GetTransformAccessArray(), inputDeps);
|
||||
}
|
||||
|
||||
private struct RotationJob : IJobParallelForTransform
|
||||
{
|
||||
[ReadOnly, DeallocateOnJobCompletion] public NativeArray<Rotation2D> Rotations;
|
||||
|
||||
public void Execute(int index, TransformAccess transform)
|
||||
{
|
||||
transform.rotation = Quaternion.Euler(0, Rotations[index].Axis >= 0 ? 0 : 180, Rotations[index].Rotation);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue