Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://www.reddit.com/r/Unity3D/comments/pvxbse/you_wanted_you_have_it_my_wardrobe_just_ran_away/
- using UnityEngine;
- public class RunningWardrobeRigidbody : MonoBehaviour
- {
- public Vector3 DesiredLocalRotation;
- public Vector3 InfluenceAxis = new Vector3(2f, 0.05f, 1.5f);
- [Range(-100f, 100f)] public float PushPower = -20f;
- private Rigidbody rig;
- private void Start()
- {
- rig = GetComponent<Rigidbody>();
- if (rig == null) Destroy(this);
- }
- public Vector3 diffsD;
- private void FixedUpdate()
- {
- Vector3 diffs = new Vector3();
- Quaternion desiredRot = Quaternion.Euler(DesiredLocalRotation);
- Quaternion xRot = Quaternion.Euler(transform.localEulerAngles.x, 0f, 0f);
- Quaternion yRot = Quaternion.Euler(0f, transform.localEulerAngles.y, 0f);
- Quaternion zRot = Quaternion.Euler(0f, 0f, transform.localEulerAngles.z);
- diffs.z = Vector3.SignedAngle(zRot * Vector3.up, desiredRot * Vector3.up, Vector3.forward) * InfluenceAxis.z;
- diffs.y = Vector3.SignedAngle(yRot * Vector3.right, desiredRot * Vector3.right, Vector3.up) * InfluenceAxis.y;
- diffs.x = Vector3.SignedAngle(xRot * Vector3.forward, desiredRot * Vector3.forward, Vector3.right) * InfluenceAxis.x;
- diffsD = diffs;
- rig.angularVelocity -= (diffs * Time.fixedDeltaTime) * Mathf.LerpUnclamped(0.0f, 1f, PushPower);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement