protected override void OnUpdate() { Entities.With(inputGroup).ForEach( (ref CameraTransform cameraTransform, ref PlayerInput.Component playerInput) => { var forward = cameraTransform.Rotation * Vector3.up; var right = cameraTransform.Rotation * Vector3.right; var input = Input.GetAxisRaw("Horizontal") * right + Input.GetAxisRaw("Vertical") * forward; var isShiftDown = Input.GetKey(KeyCode.LeftShift); var oldPlayerInput = playerInput; if (Math.Abs(oldPlayerInput.Horizontal - input.x) > MinInputChange || Math.Abs(oldPlayerInput.Vertical - input.z) > MinInputChange || oldPlayerInput.Running != isShiftDown) { var newPlayerInput = new PlayerInput.Component { Horizontal = input.x, Vertical = input.z, Running = isShiftDown }; playerInput = newPlayerInput; } }); }
protected override void OnUpdate() { for (var i = 0; i < playerInputData.Length; i++) { var cameraTransform = playerInputData.CameraTransform[i]; var forward = cameraTransform.Rotation * Vector3.up; var right = cameraTransform.Rotation * Vector3.right; var input = Input.GetAxisRaw("Horizontal") * right + Input.GetAxisRaw("Vertical") * forward; var isShiftDown = Input.GetKey(KeyCode.LeftShift); var oldPlayerInput = playerInputData.PlayerInput[i]; if (Math.Abs(oldPlayerInput.Horizontal - input.x) > MinInputChange || Math.Abs(oldPlayerInput.Vertical - input.z) > MinInputChange || oldPlayerInput.Running != isShiftDown) { var newPlayerInput = new PlayerInput.Component { Horizontal = input.x, Vertical = input.z, Running = isShiftDown }; playerInputData.PlayerInput[i] = newPlayerInput; } } }