samana писал(а):mops94 писал(а):seaman писал(а):И кнопки и перс создаются на новой сцене по новому? Тогда привязывайте onclick в коде.
Подскажите пожалуйста как это сделать? У меня получается создается персонаж из префаба и как он через код его скрипта может находить эти кнопки? это стало бы реально решением проблемы
Если у вас действительно в каждой сцене новые кнопки и новый персонаж, то связать их можно так.
Допустим есть персонаж имя которого в иерархии Player и на нём есть скрипт PlayerController с публичными методами moveLeft и moveRight.
Так же в иерархии есть две кнопки с именами ButtonLeft и ButtonRight.
Будем делать поиск по именам объектов. Для этого в старте любого скрипта делаете следующееСинтаксис:Используется csharpButton leftButton = GameObject.Find("ButtonLeft").GetComponent<Button>(); //находим кнопку "влево" и получаем её компонент Button
Button rightButton = GameObject.Find("ButtonRight").GetComponent<Button>();// то же самое для кнопки "вправо"
PlayerController playerController = GameObject.Find("Player").GetComponent<PlayerController>(); // находим игрока с имерем "Player" и получаем ссылку на его скрипт PlayerController
leftButton.onClick.AddListener(playerController.moveLeft); //привязываем метод игрока moveLeft к клику кнопки leftButton
rightButton.onClick.AddListener(playerController.moveRight);//аналогично для правой кнопки
samana писал(а):mops94 писал(а):seaman писал(а):И кнопки и перс создаются на новой сцене по новому? Тогда привязывайте onclick в коде.
Подскажите пожалуйста как это сделать? У меня получается создается персонаж из префаба и как он через код его скрипта может находить эти кнопки? это стало бы реально решением проблемы
Если у вас действительно в каждой сцене новые кнопки и новый персонаж, то связать их можно так.
Допустим есть персонаж имя которого в иерархии Player и на нём есть скрипт PlayerController с публичными методами moveLeft и moveRight.
Так же в иерархии есть две кнопки с именами ButtonLeft и ButtonRight.
Будем делать поиск по именам объектов. Для этого в старте любого скрипта делаете следующееСинтаксис:Используется csharpButton leftButton = GameObject.Find("ButtonLeft").GetComponent<Button>(); //находим кнопку "влево" и получаем её компонент Button
Button rightButton = GameObject.Find("ButtonRight").GetComponent<Button>();// то же самое для кнопки "вправо"
PlayerController playerController = GameObject.Find("Player").GetComponent<PlayerController>(); // находим игрока с имерем "Player" и получаем ссылку на его скрипт PlayerController
leftButton.onClick.AddListener(playerController.moveLeft); //привязываем метод игрока moveLeft к клику кнопки leftButton
rightButton.onClick.AddListener(playerController.moveRight);//аналогично для правой кнопки
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18