我在FixedUpdate()
中有几个对象自行旋转。
现在我需要跟踪一个对象的旋转,我们称之为objX
。当我检索它时,旋转仅从0到360。 360度后可以旋转吗?
例如当我使用类似
float x = objX.transform.rotation.z;
变量x应为560度。
这样的事情可能吗?
答案 0 :(得分:0)
这是跟踪旋转的方法。
Vector3 mouseClickPos;
float angle;
float lastAngle;
int fullRotations;
public float realAngle;
void FixedUpdate(){
mouseClickPos = Input.mousePosition;
Vector3 dir = mouseClickPos - Camera.main.WorldToScreenPoint(transform.position);
angle = Mathf.Atan2(dir.y,dir.x) * Mathf.Rad2Deg;
angle-=90;
if(lastAngle - angle > 270){
fullRotations ++;
}else if(angle - lastAngle > 270){
fullRotations --;
}
Debug.Log(360*fullRotations + angle);
Quaternion q = Quaternion.AngleAxis(angle, Vector3.forward);
transform.rotation = Quaternion.RotateTowards(transform.rotation, q, 6);
lastAngle = angle;
}