У меня есть серия объектов, которые движутся в направлении с заданной скоростью (детьми) и другим объектом, который изменяет скорость этих объектов (контроллер).Порядок выполнения скрипта Unity без использования MonoManager
Если контроллер регулирует скорость движения всех детей через перемещаемых детей, расстояние становится неравномерным, так как некоторые были перемещены со старой скоростью, а некоторые были перемещены с новой скоростью.
Я смог решить эту проблему, используя Edit-> Project Settings-> Script Execution Order, чтобы заставить контроллер выполнить перед детьми, но это не кажется идеальным. Есть ли лучший способ решить эту проблему?
Ниже приведены очень простые сценарии для детей и контроллеров.
// Child
public class MoveVertically
: MonoBehaviour
{
public float Speed;
void Update()
{
transform.Translate (Vector3.down * Time.deltaTime * Speed);
}
}
// Controller
public class MoveChildrenVertically
: MonoBehaviour
{
public float Speed;
MoveVertically[] children;
void Start()
{
children = GetComponentsInChildren<MoveVertically>();
}
void Update()
{
foreach (var symbol in symbols)
{
symbol.Speed = Speed;
}
}
}
Это отличный способ сделать это – Programmer
Согласитесь, отличный способ сделать это и полностью решен моя проблема - спасибо! – TVOHM