2015-08-19 2 views
0

Так что я пойти на все мои объекты в пустой GameObject, и я хочу, чтобы повернуть родителя с этим:Вращающийся родитель Unity3D

public void XRotation (Transform _xRotObj, float _xRotPower) 
{ 
    float newRotation = _xRotObj.eulerAngles.x + _xRotPower * Time.deltaTime; 
    _xRotObj.rotation = Quaternion.Euler(new Vector3(newRotation, 0.0f, 0.0f)); 
} 

Но все объекты внутри родительского повернется вокруг там собственный стержень, как могу ли я поворачивать родителя без объекта, вращающегося индивидуально.

Я нашел RotateAround, но это тоже не работает.

Это то, что выглядит объект (только некоторые свободные кубов внутри объекта Emty игры)

enter image description here

Это то, что происходит, когда он вращается:

enter image description here

Они вращаться вокруг точки поворота странно.

+0

осторожны с линией 'всплывают newRotation = _xRotObj.rotation.x + _xRotPower,' это должно быть, вероятно, 'плавать newRotation = _xRotObj.eulerAngles.x + _xRotPower;' – maksymiuk

+0

Я изменил это, но он все еще вращается странно. Ill загрузить несколько фотографий –

ответ

0

Aaah, нашел проблему! Я щелкал кубиками в режиме редактирования, но я забыл, что это также происходило, когда я играл в приложение, и поэтому ротация была настолько странной. Я установил его теперь с Application.isPlaying:

using UnityEngine; 
using System.Collections; 

[ExecuteInEditMode] 
public class CubeSnapS : MonoBehaviour { 

    void Update() { 
     if (!Application.isPlaying) { 
      Vector3 oldPos = gameObject.transform.position; 
      Vector3 newPos = new Vector3 (Mathf.Round (oldPos.x), Mathf.Round (oldPos.y), Mathf.Round (oldPos.z)); 
      gameObject.transform.position = newPos; 
     } 
    } 
}