I'm new to dots and would appreciate guidance.
public struct InputComponent : IComponentData
{
public float3 MovementAxis { get; set; }
public float2 MouseDelta { get; set; }
public bool isFiring { get; set; }
public float2 MouseScreenPos { get; set; }
public float3 MouseWorldPos { get; set; }
public float3 CameraPos { get; set; }
}
public partial class PlayerInputSystem : SystemBase
{
public PlayerInputActions PlayerInputEvents;
protected override void OnUpdate()
{
foreach ((var inputComponent, var playerTag) in SystemAPI.Query<RefRW<InputComponent>, PlayerTag>())
{
var direction = PlayerInputEvents.PlayerInputs.Move.ReadValue<Vector3>();
var mouseDelta = PlayerInputEvents.PlayerInputs.Look.ReadValue<Vector2>();
var mousePos = PlayerInputEvents.PlayerInputs.MousePosition.ReadValue<Vector2>();
var didFire = PlayerInputEvents.PlayerInputs.Fire.WasPressedThisFrame();
inputComponent.ValueRW.MovementAxis = direction;
inputComponent.ValueRW.MouseDelta = mouseDelta;
inputComponent.ValueRW.MouseScreenPos = mousePos;
inputComponent.ValueRW.isFiring = didFire;
Camera main = Camera.main!;
var ray = main.ScreenPointToRay(mousePos);
Physics.Raycast(ray, out var hit, 100f);
inputComponent.ValueRW.MouseWorldPos = hit.point;
inputComponent.ValueRW.CameraPos = main.transform.position;
}
}
protected override void OnCreate()
{
PlayerInputEvents = new PlayerInputActions();
PlayerInputEvents.PlayerInputs.Enable();
}
}
public struct InputComponent : IComponentData
{
public float3 MovementAxis { get; set; }
public float2 MouseDelta { get; set; }
public bool isFiring { get; set; }
public float2 MouseScreenPos { get; set; }
public float3 MouseWorldPos { get; set; }
public float3 CameraPos { get; set; }
}
public partial class PlayerInputSystem : SystemBase
{
public PlayerInputActions PlayerInputEvents;
protected override void OnUpdate()
{
foreach ((var inputComponent, var localTransform, var playerTag) in SystemAPI.Query<RefRW<InputComponent> , RefRO<LocalTransform>, PlayerTag>())
{
var direction = PlayerInputEvents.PlayerInputs.Move.ReadValue<Vector3>();
var mouseDelta = PlayerInputEvents.PlayerInputs.Look.ReadValue<Vector2>();
var mousePos = PlayerInputEvents.PlayerInputs.MousePosition.ReadValue<Vector2>();
var didFire = PlayerInputEvents.PlayerInputs.Fire.WasPressedThisFrame();
inputComponent.ValueRW.MovementAxis = direction;
inputComponent.ValueRW.MouseDelta = mouseDelta;
inputComponent.ValueRW.MouseScreenPos = mousePos;
inputComponent.ValueRW.isFiring = didFire;
Camera main = Camera.main!;
var ray = main.ScreenPointToRay(mousePos);
Physics.Raycast(ray, out var hit, 100f);
inputComponent.ValueRW.MouseWorldPos = hit.point;
inputComponent.ValueRW.CameraPos = main.transform.position;
}
}
protected override void OnCreate()
{
PlayerInputEvents = new PlayerInputActions();
PlayerInputEvents.PlayerInputs.Enable();
}
}