Editor personalizado - mantenha a aparência padrão, mas adicione mais

8

O que eu gostaria de saber é se existe uma maneira fácil de usar o OnInspectorGUI, para substituir o inspetor por um que inclua apenas um ou dois campos adicionais (para que pareça idêntico ao editor não personalizado, exceto pela adição de um ou dois campos no final). Parece um incômodo recriar todos os campos manualmente quando eu só quero adicionar uma coisinha - então talvez isso já seja uma coisa.

Ou existe alguma maneira de dizer facilmente à unidade para fazer seu desenho padrão para um tipo específico de campo? Quando eu estava brincando com isso antes, eu tinha que me comprometer exatamente com o que deveria ser mostrado, e eu precisaria escrever manualmente cada campo - o que é incômodo se os campos públicos em minhas classes mudarem - e eles faça frequentemente durante o desenvolvimento.

tl; dr - existe alguma maneira de simular o comportamento padrão do inspetor em um editor personalizado?

retornar verdadeiro
fonte

Respostas:

6

Chame essa função do método OnInspectorGUI para desenhar o inspetor automático. É útil que você não queira refazer o inspetor inteiro, mas deseja adicionar alguns botões a ele.

http://docs.unity3d.com/ScriptReference/Editor.DrawDefaultInspector.html

// This example shows a custom inspector for an
// object "MyPlayer", which has a variable speed.
using UnityEngine;
using UnityEditor;
using System.Collections;

[CustomEditor(typeof(MyPlayer))]
public class Example : Editor
{
    public override void OnInspectorGUI()
    {
        MyPlayer targetPlayer = (MyPlayer)target;
        EditorGUILayout.LabelField ("Some help", "Some other text");

        targetPlayer.speed = EditorGUILayout.Slider ("Speed", targetPlayer.speed, 0, 100);

        // Show default inspector property editor
        DrawDefaultInspector ();
    }
}
Rakka Rage
fonte