После бесчисленных поисков я не понимаю, как это возможно, в окне редактора Unity это очень просто.
Как вы вращаете объект, который существует в любой точке мира, где он идеально вращается вокруг своей центральной точки?
Я не хочу добавлять «родительский» игровой объект, и я не хочу обязательно полагаться на объект MeshRenderer. (из-за несоответствия соглашений об именах)
Вот последний код, который я пробовал. (У меня был самый большой успех с этим)
public float deg = 0;
public GameObject go;
public Vector3 center;
public Rigidbody rb;
void Start ()
{
deg = 0;
go = this.gameObject;
rb = go.GetComponent<Rigidbody>();
center = go.GetComponent<BoxCollider>().center;
}
private void FixedUpdate()
{
deg += 1f;
if (deg >= 360f) deg = 0;
Vector3 cen = go.transform.position; // + center;
go.transform.RotateAround(cen, Vector3.up, deg);
}
Поведение, которое я наблюдаю, заключается в том, что он либо вращается вокруг угла объекта, либо вращается вокруг центра, но перемещает объект по всему экрану. В приведенной выше редакции кода он вращается за углом.