Список enum'ов (Generic.List)

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

Список enum'ов (Generic.List)

Сообщение Receptor 16 июл 2012, 20:07

Не пойму, почиму компиль ругается?

Здесь я создаю список констант типа TargetType (enum) и лист типа этого списка :)) ;
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class Mission : MonoBehaviour {
       
        public int numberCount;
       
        public List<int> numberList = new List<int>();

        public enum TargetType{
                ActivateObject = 0,
                DisactvateObject = 1,
                EnterToZone = 2,
                ExitFromZone = 3,
                KillTheMob = 4,
                KillTheGroupOfMob = 5,
                GetObject = 6,
                GetObjectInBag = 7,
                TranslateObjectToZone = 8,
                DestroyObject = 9,
        }
       
        public List<TargetType> targetTypeList = new List<TargetType>();
       
///////////
///////////
 



А тут мне надо отрисовать этот лист, то есть для каждого элемента свой Enum, что можно было выбрать для каждого элемента свою константу
Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;

[CustomEditor(typeof(Mission))]
[CanEditMultipleObjects]
public class MissionsEditor : Editor {
       
Mission missionSubject;

int i;

        void OnEnable (){
               
                missionSubject = target as Mission;
                //missionSubject.currentMission = 0;
        }

        public override void OnInspectorGUI(){

              serializedObject.Update ();

if(GUILayout.Button("Add Mission") {
                       
                        missionSubject.numberCount++;
                        missionSubject.numberList.Add(missionSubject.numberCount);
                        missionSubject.targetTypeList.Add(Mission.TargetType.ActivateObject); // Если добавлять NULL, ругается тоже.
        }

              for (i=0; i < missionSubject.numberList.Count; i++){
              missionSubject.targetTypeList[i] = EditorGUILayout.EnumPopup("Target Type:", missionSubject.targetTypeList[i], typeof(Mission.TargetType)) as Mission.TargetType; /// ЗДЕСЬ ОРЕТ.
              }


 


Мне нужно пополнять массив постепенно (это я итак делаю с помощью кнопочки), и отрисосывать EnumPopup для каждого элемента из этого массива , что я не так делаю?
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Список enum'ов (Generic.List)

Сообщение jetyb 16 июл 2012, 20:31

Нельзя использовать свойство target в режиме мультиредактирования
http://docs.unity3d.com/Documentation/S ... arget.html
Надо брать targets
Еще немного смущает приведение
missionSubject = target as Mission
jetyb
Адепт
 
Сообщения: 1486
Зарегистрирован: 31 окт 2011, 17:21

Re: Список enum'ов (Generic.List)

Сообщение Receptor 16 июл 2012, 20:40

ну вообще-то по таргету проблем не было до этого, тем паче что примером служила справка как раз таки :)
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Список enum'ов (Generic.List)

Сообщение Receptor 16 июл 2012, 20:41

Текст ошибки:

Assets/Source/Editor/MissionsEditor.cs(68,76): error CS1502: The best overloaded method match for `UnityEditor.EditorGUILayout.EnumPopup(string, System.Enum, params UnityEngine.GUILayoutOption[])' has some invalid arguments

ругается именно на строку:
Синтаксис:
Используется csharp
missionSubject.targetTypeList[i] = EditorGUILayout.EnumPopup("Target Type:", missionSubject.targetTypeList[i], typeof(Mission.TargetType)) as Mission.TargetType;
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Список enum'ов (Generic.List)

Сообщение seaman 16 июл 2012, 20:43

static function EnumPopup (selected : System.Enum, params options : GUILayoutOption[]) : System.Enum
static function EnumPopup (selected : System.Enum, style : GUIStyle, params options : GUILayoutOption[]) : System.Enum
static function EnumPopup (label : String, selected : System.Enum, params options : GUILayoutOption[]) : System.Enum
static function EnumPopup (label : String, selected : System.Enum, style : GUIStyle, params options : GUILayoutOption[]) : System.Enum
static function EnumPopup (label : GUIContent, selected : System.Enum, params options : GUILayoutOption[]) : System.Enum
static function EnumPopup (label : GUIContent, selected : System.Enum, style : GUIStyle, params options : GUILayoutOption[]) : System.Enum

Где тут в качестве третьего параметра - тип?
, typeof(Mission.TargetType)
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Список enum'ов (Generic.List)

Сообщение Receptor 16 июл 2012, 20:44

Блин, я не внимательный... Разобрался. Извините за кипеш :) seaman надо мне починить свои глаза :))
Синтаксис:
Используется csharp
missionSubject.targetTypeList[i] = (Mission.TargetType)EditorGUILayout.EnumPopup("Target Type:", missionSubject.targetTypeList[i]);
 
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 12