#c# #unity3d #enums
#c# #unity3d #перечисления
Вопрос:
Итак, я пытался получить доступ к классу enum в скрипте с именем «ModulesList». Я пробовал следующее:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ModuleIdentifier : MonoBehaviour
{
public string CurrentSongModule;
ModulesList moduleList = new ModulesList();
// Start is called before the first frame update
void Start()
{
}
}
но это не работает. Как я могу ссылаться на это перечисление?
Комментарии:
1. Пожалуйста, предоставьте код, в котором вы определяете свое перечисление. Что значит «это не работает»? Какая у вас ошибка?
2. Не думайте о перечислениях как о классах, думайте о них как о числах с именами. Используйте их как числа, например
MyEnumType variableName = MyEnumType.NamedValue;
Ответ №1:
Итак, из вашего класса ModuleList
я приведу пример перечисления, потому что вы не указали, что это за перечисление
Итак, предположим, что ваше перечисление находится в ModuleList следующим образом
class ModuleList:MonoBehaviour
{
public enum YourEnum
{
None, SampleA, SampleB;
}
}
Тогда вот как вы будете вызывать его из своего ModuleIdentifier
скрипта
class ModuleIdentifier : MonoBehaviour
{
ModuleList ML = new ModuleList();
if(ML.YourEnum == ML.None)
{
//do something
}
}
Комментарии:
1. У меня есть совпадающее перечисление в двух скриптах. В скрипте A я хочу установить для него значение, соответствующее выбору перечисления в скрипте B
2. Истекло время ожидания… Я последовал этому примеру до T. У меня есть совпадающее перечисление в двух скриптах. 1:) В скрипте A я хочу установить для него значение, соответствующее выбору перечисления в скрипте B. ‘Aenum = m_ScriptComponent.B;’ выдает ошибку о том, что оно должно быть приведено; Я застрял, пытаясь использовать типы, когда мне нужны переменные.