2014-10-14 2 views
0

У меня есть несколько объектов, вращающихся само по себе в FixedUpdate().
Теперь мне нужно отследить вращение одного объекта, позвоните ему objX. Когда я его получаю, вращение идет только от 0 до 360. Можно ли получить поворот после 360 градусов?
Например, когда я использую что-то вродеUnity трек объект вращение

float x = objX.transform.rotation.z; 

переменной х должна быть 560 градусов.
Возможно ли подобное?

+0

Добавить счетчик посещений и приращений, что + текущий rotation.z? –

+0

Я не могу этого сделать, потому что я вращаю его с помощью мыши, и когда я нажимаю мышь слишком быстро, она пропускает точку, в которой я делаю приращение. – filipst

+0

О, я вижу, может быть [ЭТО] (http://answers.unity3d.com/questions/229681/tracking-object-rotation.html) –

ответ

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; 
    } 
Смежные вопросы