Éditeur personnalisé - conservez l'aspect par défaut mais ajoutez-en plus


8

Ce que je voudrais savoir, c'est s'il existe un moyen simple d'utiliser OnInspectorGUI, pour remplacer l'inspecteur par un qui ne comprend qu'un ou deux champs supplémentaires (afin qu'il soit identique à l'éditeur non personnalisé, à l'exception de l'ajout d'un ou deux champs à la fin). Cela semble être une telle peine de recréer chaque champ manuellement quand je veux juste ajouter une petite chose - alors peut-être que c'est déjà une chose.

Ou existe-t-il un moyen de dire facilement à l'unité de faire son dessin par défaut pour un type de champ spécifique? Lorsque je jouais avec cela auparavant, je devais m'engager à exactement ce qui devait être montré, et je devrais écrire manuellement chaque champ - ce qui est gênant si les champs publics de ma classe changent - et ils faire fréquemment pendant le développement.

tl; dr - existe-t-il un moyen de simuler le comportement par défaut de l'inspecteur dans un éditeur personnalisé?

Réponses:


6

Appelez cette fonction depuis la méthode OnInspectorGUI pour dessiner l'inspecteur automatique. Il est utile que vous ne souhaitiez pas refaire tout l'inspecteur, mais que vous souhaitiez y ajouter quelques boutons.

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 ();
    }
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.