DialogueManager
должен установить Queue
в Awake()
intsead из Start()
:
public class DialogManager : MonoBehaviour
{
private void Awake()
{
sentences = new Queue<string>();
}
Тогда DialogTrigger
может безопасно позвонить TriggerDialogue()
со своего Start()
:
public class DialogTrigger : MonoBehaviour
{
private void Start()
{
TriggerDialogue();
}
Когда сцена загружается, все сценарии запускают свой метод Awake()
(если он есть), тогда все включенные сценарии запускают свой метод Start()
.
Вы также можете выбратьчтобы инициализировать Queue
в той же строке, вы объявляете это:
public class DialogManager : MonoBehaviour
{
private Queue<string> sentences = new Queue<string>();
Тогда этому классу не нужен метод Awake()
или Start()
, и DialogTrigger
всегда безопасно вызывать его.