Unity跟踪对象旋转

时间:2014-10-14 08:21:53

标签: unity3d rotation angle gameobject

我在FixedUpdate()中有几个对象自行旋转。
现在我需要跟踪一个对象的旋转,我们称之为objX。当我检索它时,旋转仅从0到360。 360度后可以旋转吗?
例如当我使用类似

的东西时
float x = objX.transform.rotation.z;

变量x应为560度。
这样的事情可能吗?

1 个答案:

答案 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;
    }