Unity3D之MonoBehaviour属性

原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【Unity3D(AR/VR) 334163814】【Unity3D(游戏) 119706192】 本文链接地址:Unity3D 编辑器功能之MonoBehaviour属性

  1. using System;  
  2. using UnityEngine;  
  3.   
  4. public class Test : MonoBehaviour  
  5. {  
  6.     #region 编辑Inspector视图  
  7.     /// <summary>  
  8.     /// 只能输入 0-1的值  
  9.     /// summary>  
  10.     [Range(0f, 1f)]  
  11.     public float tRange = 1f;  
  12.   
  13.     /// <summary>  
  14.     /// 输入时的提示  
  15.     /// summary>  
  16.     [Tooltip("Tooltip_test")]  
  17.     public float tTooltip = 1f;  
  18.   
  19.     /// <summary>  
  20.     /// 标头  
  21.     /// summary>  
  22.     [Header("Header_test")]  
  23.     public float tHeader = 1f;  
  24.   
  25.     /// <summary>  
  26.     /// 距离上一行50px  
  27.     /// summary>  
  28.     [Space(50)]  
  29.     public float tSpace = 1f;  
  30.   
  31.     /// <summary>  
  32.     /// 隐藏该属性(依然会被实例化)  
  33.     /// summary>  
  34.     [HideInInspector]  
  35.     public float tHideInInspector = 1f;  
  36.   
  37.     #endregion  
  38.   
  39.     #region 编辑MonoBehaviour功能  
  40.     /// <summary>  
  41.     /// 在标题栏Component中添加("Duan/AddComponentMenu_test")层级。  
  42.     /// 点击将(Test)脚本绑定到当前选中的gameobject上。  
  43.     ///(Test)脚本名必须与文件名一致,(单独的Class文件)。  
  44.     /// summary>  
  45.     //[AddComponentMenu("Duan/AddComponentMenu_test")]  
  46.     //public class Test : MonoBehaviour{}  
  47.   
  48.     /// <summary>  
  49.     /// 在辑模式运行Update、FixedUpdate和OnGUI。  
  50.     /// summary>  
  51.     //[ExecuteInEditMode]  
  52.     //public class Test : MonoBehaviour{}  
  53.   
  54.     /// <summary>  
  55.     /// 强制要求该脚本的gameobject必须同时绑定了Rigidbody组件,如果没有则立即添加。  
  56.     /// summary>  
  57.     //[RequireComponent(typeof(Rigidbody))]  
  58.     //public class Test : MonoBehaviour{}  
  59.   
  60.     /// <summary>  
  61.     /// 给当前脚本添加右键(或小齿轮)选项  
  62.     /// 点击调用该方法。  
  63.     /// summary>  
  64.     [ContextMenu("ContextMenu Test")]  
  65.     public void mContextMenu()  
  66.     {  
  67.         Debug.Log("ContextMenu Test Log");  
  68.     }  
  69.   
  70.     /// <summary>  
  71.     /// 在标题栏中添加("Duan/MenuItem")层级。  
  72.     /// 点击调用该方法。  
  73.     /// 该方法必须是static的。  
  74.     /// summary>  
  75.     [MenuItem("Duan/MenuItem")]  
  76.     public static void tMenuItem()  
  77.     {  
  78.         Debug.Log("MenuItem Test Log");  
  79.     }  
  80.     #endregion   
  81.   
  82.     #region 编辑属性  
  83.     /// <summary>  
  84.     /// 标记一个变量或方法不会被序列化  
  85.     /// summary>  
  86.     [NonSerialized]  
  87.     public float tNonSerialized = 1f;  
  88.   
  89.     /// <summary>  
  90.     /// 该类可以被序列化 (序列化就是把内存中对象以一种可以保存的形式保存起来。 )  
  91.     /// summary>  
  92.     [Serializable]  
  93.     public class Serializable{ }  
  94.   
  95.     /// <summary>  
  96.     /// 强制序列化属性(Unity只序列化Public属性。序列化Private添加[SerializeField]。)  
  97.     /// summary>  
  98.     [SerializeField]  
  99.     private bool tSerializeField = true;  
  100.     #endregion  
  101. }  

你可能感兴趣的:(Unity3D基础)