zoukankan      html  css  js  c++  java
  • Unity Inspector面板常用的属性

    在扩展Unity的时候,往往会用到一些属性,这里将常用的列一下。

    1、属性只读;

    #if UNITY_EDITOR
    using UnityEditor;
    #endif
    
    using UnityEngine;
    
    
    public class ReadOnlyAttribute : PropertyAttribute
    {
    
    }
    
    #if UNITY_EDITOR
    [CustomPropertyDrawer(typeof(ReadOnlyAttribute))]
    public class ReadOnlyDrawer : PropertyDrawer
    {
        public override float GetPropertyHeight(SerializedProperty property, GUIContent label)
        {
            return EditorGUI.GetPropertyHeight(property, label, true);
        }
    
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            GUI.enabled = false;
            EditorGUI.PropertyField(position, property, label, true);
            GUI.enabled = true;
        }
    }
    #endif
     
     
    [ReadOnly]
     public string PLUGIN = "";

    2、私有变量在 Inspector 显示出来  [SerializeField]

    [ReadOnly]
    [SerializeField]
     private string ABC = "abc";

    效果如下:

    image

    3、为属性添加头部说明 [HeaderAttribute]

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        [Header("Health Settings")]
        public int health = 0;
        public int maxHealth = 100;
        [Header("Shield Settings")]
        public int shield = 0;
        public int maxShield = 0;
    }

    4、隐藏属性 [HideInInspector]

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        [HideInInspector]
        public int p = 5;
    }

    其它还有诸如 HelpURL 等,详情可参考 官方帮忙文档 https://docs.unity3d.com/ScriptReference/HeaderAttribute.html

  • 相关阅读:
    求逆元算法
    Almost Sorted Array
    最长不递减子序列
    (LIS)最长上升序列(DP+二分优化)
    rabbitmq延迟消息
    oracle 视图
    oracle 存储过程
    http 会话(session)详解
    系统测试
    Fiddler 手机抓包
  • 原文地址:https://www.cnblogs.com/meteoric_cry/p/9228784.html
Copyright © 2011-2022 走看看