@Gamma213
начинающий разработчик (Unity,C#)

Как можно исправить поворот объектов?

Вот пример того что я использую,те строки кода которые закоментированы(они отвечают за то чтобы один объект смотрел на другой при движении)и работает оно так себе....потому что объект постоянно стремится либо улететь куда то,либо смотрит совершенно на другой объект....а если закоментировать...то они просто двигаются так как и должны и никто никуда не улетает
public class Relay : MonoBehaviour
{
    public Transform[] units;
    public float speed;
    
    void Start()
    {
        StartCoroutine(Estafeta());
    }

    public IEnumerator Estafeta()
    {
        
        {
            for (int i = 0; i < units.Length; i++)
            {

                if (i == units.Length - 1)
                {
                    while (Vector3.SqrMagnitude(units[i].position - units[0].position) > 0.1f)
                    {
                        units[i].Translate((units[0].position - units[i].position).normalized * speed * Time.deltaTime);
                       // units[i].LookAt(units[0 + 1]);
                        yield return null;
                    }
                    i = 0;
                }

                while (Vector3.SqrMagnitude(units[i].position - units[i + 1].position) > 0.01f)
                {
                    units[i].Translate((units[i + 1].position - units[i].position).normalized * speed * Time.deltaTime);
                   // units[i].LookAt(units[i]);
                    yield return null;
                }
            }
            yield break;
        }
        

    }
}
  • Вопрос задан
  • 30 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Ezekiel4
Охотник на пиратов и сборщик монолитов
Рекомендую вместо Translate использовать Vetor3.MoveTowards. Таким образом перемещение станет более контроллируемым и вы сможете использовать поворот LookAt.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы