Могу ли я вращать все объекты без необходимости делать это отдельно для каждого объекта? - PullRequest
1 голос
/ 17 апреля 2019

Я делаю игру, в которой я вращаю все объекты с одинаковым значением. Мне бы очень помогло, если бы я мог как-то вращать все объекты без необходимости использовать функцию transform.rotate для каждого объекта (преобразование действительно неэффективно). Я думал о том, чтобы сделать статическое преобразование, но это не кажется достижимым. Я также не могу поместить их в один объект и переместить его, так как это изменит их положение. Есть ли у вас какие-либо советы? Любая помощь высоко ценится.

РЕДАКТИРОВАТЬ: Спасибо за ответы. Моя цель - вращать объекты с одинаковым значением, но не обычным способом. Я не хочу использовать преобразование в каждом объекте.

void Update()
{
    if (Input.GetMouseButton(0))
    {
        rotX = Input.GetAxis("Mouse X") * sensitivity * Mathf.Deg2Rad;
        transform.Rotate(Vector3.forward, rotX);
    }
}

Я хочу, чтобы они имели одинаковые transform.rotation с разными transform.position и transform.scale. Таким образом, transform.Rotate () будет использоваться только один раз, а не количество объектов. Я хочу избежать доступа к преобразованию каждого объекта.

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Создание script именованного контроллера.

Там использовать UnityEngine.Object.FindObjectsOfType<GameObject>();

Теперь у вас есть array из GameObject с. Используйте foreach или цикл и установите transform.rotation.

Теперь все объекты движутся одновременно.

GameObject[] allObjects = UnityEngine.Object.FindObjectsOfType<GameObject>() ;
foreach(object go in allObjects)
if (go.activeInHierarchy)
   print(thisObject+" is an active object");
0 голосов
/ 18 апреля 2019

Можете ли вы дать нам более подробный пример?Когда дело доходит до производительности, очень сложно сказать, какой подход был бы лучше в вашем случае без примера кода.Здесь вы можете найти некоторые идеи об использовании физического движка (используя RigidBody.MoveRotation()) для достижения лучшей производительности по сравнению с Transform.Rotate: https://answers.unity.com/questions/294452/rotation-performance.html

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