Я хочу создать простое мобильное приложение в Unity, которое позволяет пользователю выбирать рамку изображения, а затем делать с ней что-нибудь.
Итак, у меня есть список префабов (рамок изображений) в scene1. Эта сцена отображается пользователю при запуске приложения.
Пример Изображение того, как это будет выглядеть в моем приложении:
Как только пользователь касается одного из этих кадров, он попадает в scene2. Это мой код, который определяет, какие кадры были затронуты: FrameSelection.cs
прикреплен к FrameList
gameObject.
void Update()
{
if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began)
{
Touch touch = Input.touches[0];
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
Debug.Log(hit.transform.name);
if (frameList.Contains(hit.transform.gameObject))
{
//Switch scene
}
}
}
Но как я могу передать выбранный префаб из scene1 в scene2? Я хочу, чтобы префаб создавался только в сцене2, в зависимости от выбранного префаба в сцене1.
В сцене2 у меня есть скрипт, который создает объекты, когда пользователь касается экрана: ObjectSpawner.cs
void Update()
{
if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began)
{
Touch touch = Input.touches[0];
Ray ray = Camera.main.ScreenPointToRay(touch.position);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
placedObject = Instantiate(objectToSpawn, hitObject.point,hitObject.transform.rotation);
...
Я пытался избежать разрушения при переключении сцены, используя DontDestroyOnLoad
в моем FrameSelection.cs
скрипт, но я все еще получаю MissingReferenceException
, когда загружена сцена 2.
void Awake()
{
DontDestroyOnLoad(transform.gameObject);
}
Я буду рад любой помощи!