Страница 1 из 1

Дефолтный инспектор для классов

СообщениеДобавлено: 28 июл 2013, 13:49
Markov
Всем привет, у меня возникла проблема с работой с собственными классами.
Насчет кастомных инспекторов на форуме нашел много информации и тут все ок.
Но мне не особо они нужны, хватило бы дефолтного, слышал, что это возможно, но как?

Re: Дефолтный инспектор для классов

СообщениеДобавлено: 28 июл 2013, 14:09
Woolf
Ну так сделайте базовый класс, инспектор для него и отнаследуйте все ваши классы от него. Может сработает (не уверен)

Re: Дефолтный инспектор для классов

СообщениеДобавлено: 28 июл 2013, 18:46
Diab10
Markov писал(а):Всем привет, у меня возникла проблема с работой с собственными классами.
Насчет кастомных инспекторов на форуме нашел много информации и тут все ок.
Но мне не особо они нужны, хватило бы дефолтного, слышал, что это возможно, но как?


Оно?
http://docs.unity3d.com/Documentation/S ... zable.html

Re: Дефолтный инспектор для классов

СообщениеДобавлено: 30 июл 2013, 15:21
Markov

Нет :)

Re: Дефолтный инспектор для классов

СообщениеДобавлено: 01 авг 2013, 12:59
Neodrop
Это же инспектор Universe имеется в виду.
Если ваши классы будут наследованы от одного базового класса, напишите кастомный инспектор для базового класса и вроде должно прижиться.

Синтаксис:
Используется csharp
public class MyBaseClass
{
     public bool MyBaseBool;
}

public class MyNestedClass : MyBaseBool
{
}
 


Синтаксис:
Используется csharp
using UnityEditor;
using UnityEngine;
using Antares.Vizio.Editor;
using Antares.Vizio.Runtime;

//You must inherit your class from CustomTypeInspector to create (or override existing one) type Inspector
public class MeOwnInspector : CustomTypeInspector
{
    // Here you define your type
    public override System.Type type
    {
        get { return typeof (MyBaseClass); }
    }

    public override void DrawVariableField(Variable variable)
    {  
        //Cast variable value
        MyClass mc = (MyBaseClass)variable.Value;
       
        if(mc == null)
           variable.Value = mc = new MyBaseClass();
        // Call UnityEditor GUILayout method to show your bool. Here you can write any GUI code by your choice
        EditorGUILayout.Toggle(new GUIContent("My own bool", "My own inspector for my own base class"),
                                   mc.MyBool);

        // Ну и тут уже прописать что-то для отображения полей и свойств наследников.. Как-то так
    }
}