Как ссылаться на перечисление из другого скрипта в Unity

#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;’ выдает ошибку о том, что оно должно быть приведено; Я застрял, пытаясь использовать типы, когда мне нужны переменные.