public void VelocityChangesByDeltaOfSpeed_When_MovementInputNotEquals0() { float mockDeltaTime = 0.01f; Entity entity = _manager.CreateEntity( typeof(Movement), typeof(MovementSpeed), typeof(PhysicsVelocity), typeof(Rotation) ); _manager.SetComponentData(entity, new PhysicsVelocity { Linear = float3.zero }); _manager.SetComponentData(entity, new Movement { Value = new float3(0, 1, 0) }); _manager.SetComponentData(entity, new MovementSpeed { Value = 1 }); _manager.SetComponentData(entity, new Rotation { Value = quaternion.identity }); MovementSystem movementSystem = _world.CreateSystem <MovementSystem>(); JobHandle handle = movementSystem.ProcessMovementJob(mockDeltaTime); handle.Complete(); float3 expectation = new float3(0, 0.01f, 0); float3 result = _manager.GetComponentData <PhysicsVelocity>(entity).Linear; Assert.AreEqual(expectation, result); }
public void VelocityChangesTowardsRotation() { float mockDeltaTime = 0.01f; Entity entity = _manager.CreateEntity( typeof(Movement), typeof(MovementSpeed), typeof(PhysicsVelocity), typeof(Rotation) ); _manager.SetComponentData(entity, new PhysicsVelocity { Linear = float3.zero }); _manager.SetComponentData(entity, new Movement { Value = new float3(0, 1, 0) }); _manager.SetComponentData(entity, new MovementSpeed { Value = 1 }); _manager.SetComponentData(entity, new Rotation { Value = quaternion.EulerXYZ(0, 0, 1) }); MovementSystem movementSystem = _world.CreateSystem <MovementSystem>(); JobHandle handle = movementSystem.ProcessMovementJob(mockDeltaTime); handle.Complete(); float3 expectation = math.mul(math.normalize(quaternion.EulerXYZ(0, 0, 1)), new float3(0, 0.01f, 0)); float3 result = _manager.GetComponentData <PhysicsVelocity>(entity).Linear; Assert.AreEqual(expectation, result); }