У меня есть объект игры, который имеет много детей (сферы)Перемещения каждый ребенок
На каком-то этапе игр я хотел бы, чтобы переместить каждый ребенок вниз плавно, так что это будет выглядеть как он разваливается. Я пробовал использовать цикл foreach
для перемещения каждого элемента с помощью Vector3.Lerp
. К сожалению, все начинает сильно отставать.
Было бы здорово, чтобы они падают плавно, как этот
foreach (Transform child in GameObject.Find("Carbon").transform)
{
child.transform.position = Vector3.Lerp(child.transform.position,
new Vector3(child.transform.position.x,
child.transform.position.y - 200,
child.transform.position.z), 0.2f);
}
Если вы хотите, чтобы структура структуры «развалилась», вы можете назначить каждому ребенку жесткое тело с ограниченными возможностями (и, необязательно, коллайдер сферы) в редакторе, а затем включить их всех (используя цикл foreach), когда это время для их отпадения. Это _might_ дает лучшую производительность, чем так много отдельных интерполяций в основном потоке. – cpimhoff
Если вы не используете физику для перемещения объектов, тогда удалите компоненты жесткого тела и коллайдера, если они есть. Вы также должны использовать ['Time.DeltaTime'] (https://docs.unity3d.com/ScriptReference/Time-deltaTime.html) для плавного перемещения, если вы перемещаете объекты в функции обновления. – ColmanJ