Как установить файл с определением ценного - PullRequest
0 голосов
/ 09 июля 2019

У меня такая проблема.Я создал класс символов.Также я создал файл ".asset" и назвал его "Алиса".Я пытаюсь запустить код:

[CreateAssetMenu(fileName = "New Character", menuName = "Character data", order = 51)]
public class Character : ScriptableObject {
    [SerializeField]
    public new string name;
    [SerializeField]
    public Color color;
}

public class TextPrinting : MonoBehaviour {

     public Text nameText;
     public Character Alice;

     void say (Character ingamecharacter) {
         nameText.text = ingamecharacter.name;
         nameText.color = ingamecharacter.color;
     }

     void Start() {
         say(Alice);
     }
}

Но у меня есть ошибка NullReferenceException в 15 строке.Я написал определение для nameText.

nameText = GameObject.Find("Canvas/Panel/NamePanel/NameText").GetComponent<Text>();

Но у меня все еще есть эта ошибка.Итак (я думаю) проблема в том, что мне нужно написать определение для Алисы Персонаж.Но я не понимаю, как я могу это сделать, если это Scriptable Object, и мне нужно использовать файл из папки Assets для этого.

Что мне делать?Или я поступаю совершенно неправильно?

Спасибо.

1 Ответ

1 голос
/ 09 июля 2019

Вот что я бы сделал.

Сделать персонажа монобезопасным:

public class Character : MonoBehaviour {
    public string name;
    public Color color;
}

Измените переменную Алисы на GameObject и добавьте код, чтобы получить из него компонент персонажа:

public class TextPrinting : MonoBehaviour {

     public Text nameText;
     public GameObject Alice;

     void say (Character ingamecharacter) {
         nameText.text = ingamecharacter.name;
         nameText.color = ingamecharacter.color;
     }

     void Start() {
         say(Alice.GetComponent<Character>());
     }
}

Затем,создайте пустой GameObject и поместите на него компонент Character, и вы сможете определить его таким, каким вы хотели бы, чтобы Алиса была.

Затем сохраните этот GameObject в качестве префаба с именем "Alice".

Затемперетащите сборный файл Алисы в поле «Алиса» в компоненте TextPrinting.

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