PhysicsObj

PhysicsObj

avatar

DANE SHERMAN

December 28, 2020

Docs

With ‘collision’ being handled by the separation algorithms, a simple Physics Object class was developed to replecate some basic rigid body functionality.

public class PhysicsObject : MonoBehaviour
{
    /// <summary>
    /// Handles basic physics calculations
    /// </summary>
    //TODO make get porpertys and method for apply forces so that these are hidden
    public Vector3 Position { get; private set; } //current postion of the object
    public Vector3 Velocity { get; private set; } //current velocity of the object
    [SerializeField] [Range(0, 1)] private float drag; //amout to slow velocity by every update
    private void Start()
    {
        Position = transform.position;
    }
    public void AddForce(Vector3 force)
    {
        Velocity += force;
    }
    private void FixedUpdate()
    {
        //get the current position
        Position = transform.position;
        //move by velocity
        Position += Velocity * Time.deltaTime;
        //apply to transform
        transform.position = Position;
        //apply drag
        Velocity *= 1 - drag;
    }
}

Recent Projects