53 lines
1.3 KiB
C#
53 lines
1.3 KiB
C#
|
using System;
|
||
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using UnityEngine;
|
||
|
using UnityEngine.InputSystem;
|
||
|
|
||
|
namespace BITKit.Entities.Movement
|
||
|
{
|
||
|
public class RigidbodyBasedMovement : StateBasedComponent<IEntityMovementState>,IEntityMovement
|
||
|
{
|
||
|
[SerializeField] private new Rigidbody rigidbody;
|
||
|
[SerializeField] private Animator animator;
|
||
|
public Vector3 Position { get; set; }
|
||
|
public Quaternion Rotation { get; set; }
|
||
|
public Vector3 Forward { get; }
|
||
|
public Vector3 ViewCenter { get; }
|
||
|
public Quaternion ViewRotation { get; }
|
||
|
public Vector3 LocomotionBasedVelocity { get; }
|
||
|
public Vector3 Velocity { get;private set; }
|
||
|
public Vector3 GroundVelocity { get; }
|
||
|
public Vector3 AngularVelocity { get; }
|
||
|
public bool IsGrounded { get; }
|
||
|
public void SyncMovement(Vector3 velocity, Vector3 position, Quaternion rotation, bool isGrounded)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public void Movement(Vector3 relativeVector)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public void Movement(InputAction.CallbackContext context)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public void ExecuteCommand<T>(T command = default)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public event Action<object> OnCommand;
|
||
|
public override void OnFixedUpdate(float deltaTime)
|
||
|
{
|
||
|
rigidbody.MovePosition(rigidbody.position + Velocity * deltaTime
|
||
|
);
|
||
|
}
|
||
|
|
||
|
private void OnAnimatorMove()
|
||
|
{
|
||
|
Velocity = animator.velocity;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|