Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static void PropAutoRotate(PropActor prop, Vector3 projectPosition)
- {
- Ray ray1 = new Ray(Vector3.zero, Quaternion.Euler(new Vector3(0, -0.01f, 0)) * (Vector3.zero + projectPosition) * 10);
- Ray ray2 = new Ray(Vector3.zero, Quaternion.Euler(new Vector3(0, 0.01f, 0)) * (Vector3.zero + projectPosition) * 10);
- RaycastHit hit1;
- RaycastHit hit2;
- Physics.Raycast(ray1, out hit1);
- Physics.Raycast(ray2, out hit2);
- Vector3 plane = hit1.point - hit2.point;
- Vector3 myVector3 = -Vector3.Cross(plane.normalized, Vector3.up);
- float angle = Vector3.Angle(Vector3.left, myVector3);
- float sign = Mathf.Sign(Vector3.Dot(Vector3.up, Vector3.Cross(Vector3.left, myVector3)));
- float signedAngle = angle * sign;
- float angle360 = (signedAngle + 180) % 360;
- prop.transform.rotation = Quaternion.AngleAxis(angle360, Vector3.up);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement