Newer
Older
fall / FallUnity / Assets / Leaves / LeafPhysics.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LeafPhysics : MonoBehaviour {
    private Rigidbody body;
	// Use this for initialization
	void Start () {
        body = GetComponentInChildren<Rigidbody>();
	}

    public float TorqueForceUpScale = 0.3f;
    public float TorqueScale = 1.0f;
    public float TorqueBounds = 5.0f;

    // Update is called once per frame
    void Update () {


        float torqueX = -transform.up.x;
        float torqueZ = -transform.up.z;
        float forceUp = Mathf.Abs(torqueX) * TorqueForceUpScale + Mathf.Abs(torqueZ) * TorqueForceUpScale;
        body.AddRelativeForce(Vector3.up * forceUp);
        body.AddRelativeTorque(new Vector3(Mathf.Max(-TorqueBounds, Mathf.Min(TorqueBounds, torqueX * TorqueScale)), 0, Mathf.Max(-TorqueBounds, Mathf.Min(TorqueBounds, torqueZ * TorqueScale))));
	}
}