Я сделал простой текстовый ящик , который должен показать сообщение пользователю. Это сборник и делает несколько вещей, в основном анимации при создании экземпляра. Для запуска кода при создании экземпляра я использовал функцию Start()
. Это сработало, когда я уже знал, что делать с сообщением, но мне нужно что-то вроде constructor
, которое работает до Start()
, но по instantiation
и может принимать параметры. Теперь я полностью понимаю, что я мог бы создать экземпляр, установить сообщение и запустить все - так используя 3 строки кода, где я его создаю, но мне интересно, есть ли другое правильное решение? Все, что я нашел в сети, это тот экземпляр, а потом что-то сделать.Unity - параметры прохождения при создании экземпляра
EDIT:
Моя призвание MessageBox, чтобы показать:
var timeBox =
Instantiate(messageBox, penaltySpawnLoc.position, penaltyPrefab.transform.rotation, transform);
var scr = timeBox.GetComponent<MessageBox>();
scr.OnCreated(message);
OnCreated
делает инициализацию, показать анимацию, так что в основном все. Но это нуждается в a string
ввод, чтобы знать, что нужно показать, и я не хочу устанавливать текстовое значение «на лету» - это создаст видимое странное мерцание, когда будет видно сообщение, но текст не задавать.
EDIT2:
последний параметр transform
в Instantiation
является Canvas
этот скрипт на так как это скрипт UI. Этот параметр означает, что только что созданный экземпляр GameObject
является его потомком.
EDIT3:
timeBox просто экземпляр messageBox
, они GameObject
s. One message box используется только один раз. Его назначение - появиться с сообщением и после того, как через 0,5 секунды исчезнет и уйдет. После ухода он разрушает себя.
Было бы разумно показать три строки кода, которые вы хотите упростить. – Programmer
Достаточно справедливо, редактирование сразу. – agiro
К сожалению, это 4 линии, я сломал линию. – agiro