Как подключить один объект на несколько сцен?

Делаю простой пример - переключения между сценами. Всё работает.
60e8285d1ccdf504043699.png

Как видно на картинке, на сцене создан объект SceneChanger.
К этому объекту подключен скрипт с одноименным названием SceneChanger.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class SceneChanger : MonoBehaviour
{
public void ChangeScene(int sceneNumber)
{
SceneManager.LoadScene(sceneNumber);
}
}

На событие кнопки OnClick идет вызов этого скрипта с номером сцены.

Возникло пара вопросов:
1) Как подключить один объект (SceneChanger ) на несколько сцен?
Объект SceneChanger сейчас у меня только на первой сцене. А мне надо его подключить к кнопке на второй сцене и к кнопке на третьей сцене.
Я конечно могу скопировать его (создать на каждой сцене свой объект), но это будет не совсем верно.
У меня будет три одинаковых "пустых" объекта. И вроде к ним будет подключен один скрипт, но всё равно как то это странно дублировать одинаковые сущности.

2) Если я подключаю к визуальному компоненту скрипт, всегда ли я должен это делать через другой объект?
То есть скрипт SceneChanger.cs я подключил к пустому объекту SceneChanger. Как бы напрямую.

Но скрипт SceneChanger.cs я не могу подключить к объекту Image (или Button) просто перетащив его.
Тогда я не увижу нужный мне класс и метод, в списке меню. Поэтому я должен подключать скрипт "через посредника" - подключать к Image объект SceneChanger, к которому уже подключен скрипт SceneChanger.cs.
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
1) Сохранить набор кнопок и прочее нужное в prefab и использовать его в дальнейшем на всех сценах. Изменяя этот префаб, он будет изменён везде где используется.
2) Никаких ограничений повесить скрипт на картинку или кнопку нет, если он MonoBehaviour.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы