Почему, если я устанавливаю значение переменной int на 0 в верхней части скрипта в инспекторе, значение равно 1? - PullRequest
1 голос
/ 13 апреля 2019
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using UnityEditor;
using UnityEngine;

public class DialogueTrigger : MonoBehaviour
{
    public List<Conversation> conversations = new List<Conversation>();

    public int dialogueNum = 0;
    public int dialogueIndex = 0;

После выполнения Build> Rebuild Solution

Значение dialogIndex в Инспекторе равно 0, но значение dialogNum равно 1 Я никогда не менял его значение в Инспекторе. (Может я и забыл?)

Как я могу убедиться, что в инспекторе значение будет 0 при запуске игры? Проблема в том, что перед тем, как сделать его публичным, он был скрыт, поэтому я не мог видеть, что в инспекторе его значение равно 1:

[HideInInspector]
public int dialogueNum = 0;

[HideInInspector]
public int dialogueIndex = 0;

Теперь я вижу, что это значение равно 1

1 Ответ

0 голосов
/ 13 апреля 2019

Выполнение инициализации в методе Awake () и присваивания в Start (). Вот почему эти методы сделаны для. Таким образом, ваш сценарий должен выглядеть так:

public List<Conversation> conversations;
public int dialogueNum;
public int dialogueIndex;

void Awake(){
   conversations = new List<Conversation>();
}

void Start(){
   dialogueNum = 0;
   dialogueIndex = 0;
}

Теперь значения будут назначаться при каждом запуске игры, как вы хотели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...