Имеется 3D игра на движке Unity.
Сцена, в центре расположен игрок которым осуществляются различные действия. Территория движения у него ограничена.
Имеется счётчик времени который запускается после старта. У него имеется "флаг", по достижению которого запускается скрипт облёта камеры на 360 вокруг объекта. И умножается на 2, для дальнейшего запуска в будущем и так далее. (Пример: при счётчике 10, 20, 40, 80 и.т.д)
using UnityEngine;
using TMPro;
using System;
public class DistanceCounter : MonoBehaviour
{
public TextMeshProUGUI disCountText;
public static int secondsPassed;
public event Action<int> OnCounterReached; // Событие для оповещения о достижении цели
public int targetValue = 25; // Целевое значение секунд
private void Update()
{
// Увеличиваем прошедшее время на каждом кадре
secondsPassed = Mathf.FloorToInt(Time.time);
// Обновляем значение TextMeshPro компонента "DisCount"
disCountText.text = secondsPassed.ToString();
// Проверяем, достигли ли цели и вызываем событие
if (secondsPassed >= targetValue)
{
if (OnCounterReached != null)
{
OnCounterReached(targetValue);
}
targetValue *= 2;
}
}
}
Вот сам скрипт который запускает облёт камеры.
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
public float speed;
private bool script2Started = false;
private void Start()
{
// Находим объект с скриптом DistanceCounter и получаем доступ к компоненту.
DistanceCounter script1 = FindObjectOfType<DistanceCounter>();
// Подписываемся на событие OnCounterReached.
script1.OnCounterReached += StartScript2;
}
private void Update()
{
if (script2Started)
{
// Код для выполнения после достижения цели в скрипте DistanceCounter.
transform.Rotate(0, speed * Time.deltaTime, 0);
}
}
private void StartScript2(int counterValue)
{
// Метод будет вызван, когда достигнуто целевое значение в скрипте DistanceCounter.
script2Started = true;
}
}
Хотелось бы, что бы камера по завершению пролёта на 360 градусов останавливалась на своей начальной позиции. Но, так как при пролёте камеры в данном скрипте не отслеживаются координаты камеры по какой-либо оси движении. Не за что "зацепиться", установить маркер с конкретными координатами и при возвращении на них что бы она останавливалась.
Сделал скрипт в таком формате, что бы сохранить все позиции камеры (по всем векторам, углам наклона и.т.д).
Подскажите, какое решение можно использовать для решения данной задачи?