В сценарии единства, как «повернуть» и «повернуть» вокруг точки поворота - PullRequest
0 голосов
/ 10 октября 2018

в редакторе единиц, когда я включаю «Pivot», игровой объект будет вращаться вокруг позиции «точки вращения», когда я включаю «Center», игровой объект будет вращаться вокруг «центральной точки»

, но если я использую скриптчтобы вращаться, он всегда вращается вокруг «центральной точки», например, вот моя сцена:

enter image description here

Я использую следующий код:

    void Start()
    {
//        transform.rotation = Quaternion.Euler(new Vector3(0, 0, 90));
        transform.RotateAround(transform.position, new Vector3(0, 0, 1), 90);
    }

вращается вокруг "центральной точки"

enter image description here

если у объекта есть коллайдер, я могу получить точку поворота с помощью colider.boundsесли нет, то как мне это сделать?

и, что еще хуже, в некоторых случаях я надеюсь повернуть на как set rotate в инспекторе редактора единиц, я использую следующий код:

transform.rotation = Quaternion.Euler(new Vector3(0, 0, 90))

Я понятия не имею, чтобы настроить вышеуказанный код для поворота вокруг точки поворота

обновление

Я думаю, что если я могу "вращаться", ятакже может подразумевать «поворот на», поэтому ключевой момент заключается в том, как я должен получить «точку вращения», которая используется в RotateAround, чтобы объект имел коллайдер, я могу получить с помощью colider.bounds сtransform.position, без объекта-коллайдера, как мне это сделать?

1 Ответ

0 голосов
/ 10 октября 2018

Точка разворота такая же, как у transform.position, который вы уже используете.Если вам не нравится, где находится точка разворота или местоположение, против которого вращается вращение, у вас есть два варианта:

1 .Создайте новый пустой GameObject.Переместите его в положение, в котором ваш GameObject должен вращаться.Когда этот объект будет удовлетворен, сделайте этот новый GameObject дочерним по отношению к GameObject, вокруг которого вы будете вращаться.Используйте положение этого нового GameObject в качестве точки поворота для функции transform.RotateAround.

Перетащите пустой GameObject в слот customPivot в приведенном ниже сценарии.Это должно дать вам новую точку поворота для поворота вашего GameObject вокруг.

public Transform customPivot;

void Update()
{
    transform.RotateAround(customPivot.position, Vector3.up, 20 * Time.deltaTime);
}

2 .Откройте 3D-приложение и измените точку поворота вашего объекта, затем сохраните и повторно импортируйте его в Unity.

Поскольку это просто используется для вращения объекта, я предлагаю # 1 .Если проблема в том, что точка разворота не центрирована, я бы предложил # 2 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...