mirror of
https://github.com/hanzoai/ProjectTinySamples.git
synced 2026-09-24 00:01:34 +00:00
32 lines
921 B
C#
32 lines
921 B
C#
using Unity.Entities;
|
|
using Unity.Jobs;
|
|
using Unity.Mathematics;
|
|
using Unity.Physics;
|
|
using Unity.Physics.Extensions;
|
|
|
|
namespace TinyPhysics.Systems
|
|
{
|
|
/// <summary>
|
|
/// Detect when a jump trigger is set in order to apply a vertical impulse
|
|
/// </summary>
|
|
public class JumpSystem : SystemBase
|
|
{
|
|
protected override void OnUpdate()
|
|
{
|
|
float deltaTime = Time.DeltaTime;
|
|
|
|
Entities.ForEach((ref PhysicsVelocity velocity, ref PhysicsMass mass, ref Jumper jumper) =>
|
|
{
|
|
if (jumper.JumpTrigger)
|
|
{
|
|
// Jump by applying an impulse on y Axis
|
|
velocity.ApplyLinearImpulse(mass, new float3(0, jumper.jumpImpulse, 0));
|
|
|
|
// Consume trigger
|
|
jumper.JumpTrigger = false;
|
|
}
|
|
}).WithStructuralChanges().Run();
|
|
}
|
|
}
|
|
}
|