Я создаю игру, которая переводит игрока из изометрического вида сверху на карту в перспективный вид. Игрок начинает с просмотра карты как таковой
Изометрическая проекция карты | Сцена A
При нажатии на любую из плавающих красных сфер игрок перемещается в отдельную сцену на виде в перспективе в месте расположения шара. Показанный здесь,
Перспектива 1 | Сцена B
Перспектива 2 | Сцена B
Изометрическая карта и перспективные карты - это разные сцены, и важно, чтобы они оставались такими же. Игрок должен иметь возможность щелкнуть по сфере в сцене A, а затем заставить камеру переместиться в установленное положение шара в сцене B.
В настоящее время я думаю, что каждый шар может иметь тег (1,2, ...), и после щелчка на этот тег будет ссылаться оператор if, чтобы расположить камеру в другой сцене. Моя проблема в том, что я не знаю, как ссылаться на метку шара, на который нажали, когда попаду в следующую сцену. Или как мне вернуть это к нормальному состоянию, если я вернусь к сцене А.
Вот некоторый код, который я запустил, но я не уверен, что я на правильном пути.
using UnityEngine;
using UnityEngine.SceneManagement;
public class TagCheck : MonoBehaviour
{
Camera m_MainCamera;
public string sceneName;
int count;
private void Start()
{
m_MainCamera = Camera.main;
}
void LoadScene()
{
SceneManager.LoadScene(sceneName);
DontDestroyOnLoad(gameObject);
}
void OnMouseDown()
{
LoadScene();
Debug.Log(count);
}
void OnEnable()
{
SceneManager.sceneLoaded += OnLevelFinishedLoading;
}
void OnDisable()
{
SceneManager.sceneLoaded -= OnLevelFinishedLoading;
}
void OnLevelFinishedLoading(Scene scene, LoadSceneMode mode)
{
if (count == 1)
{
if (GameObject.FindWithTag("1"))
{
m_MainCamera.transform.position = new Vector3(5f, 1.5f, 5f);
}
else if (GameObject.FindWithTag("2"))
{
m_MainCamera.transform.position = new Vector3(-5f, 1.5f, -5f);
}
}
else
{
Destroy(gameObject);
}
}
Спасибо всем за помощь! Дайте мне знать, если мне нужно что-то уточнить.