本文僅供學習記錄,如有任何侵權行為立即删除!
Inspector的擴充
※ ※ ※ [Header] 标頭屬性
在代碼中聲明:
[Header("名稱")]
public string roleName;//人名
public string desc;//人物介紹
[Header("角色屬性")]
public float hp;//血量
public float mp;//法力值
public float speed;//移動速度
public float atk;//攻擊力
public float def;//防禦力
編輯器中出現的效果:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIwczX0xiRGZkRGZ0Xy9GbvNGL2EzXlpXazxyMZpHW3VkMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLwIjM5MzM0cTM3EDNwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
※ ※ ※ [Tooltip] 提示資訊
在代碼中聲明:
[Header("名稱")]
[Tooltip("該角色在遊戲中的名稱")]
public string roleName;//人名
[Tooltip("角色的描述資訊")]
public string desc;//人物介紹
把滑鼠長時間放在變量名上 會 出現的效果:
※ ※ ※ [Space] 添加空行
在代碼中聲明:
[Header("名稱")]
[Space]
[Tooltip("該角色在遊戲中的名稱")]
public string roleName;//人名
public string nickName;//昵稱
[Space]
[Tooltip("角色的描述資訊")]
public string desc;//人物介紹
在編輯器Inspecter面闆上出現的效果:
※ ※ ※ [Range()] 規定範圍
在代碼中聲明:
[Header("角色屬性")]
[Space]
[Range(0,10000)]//hp的取值範圍是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移動速度
public float atk;//攻擊力
public float def;//防禦力
在編輯器Inspecter面闆上出現的效果:
※ ※ ※ [SerializeField] 序列化字段
下面代碼中的level字段是私有的。添加此标簽可在inspecter面闆中顯示
[Header("角色屬性")]
[Space]
[Range(0,10000)]//hp的取值範圍是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移動速度
public float atk;//攻擊力
public float def;//防禦力
[SerializeField]//序列化字段
private int level;//等級
編輯器中的效果:
※ ※ ※ [HideInInspector] 隐藏字段
下面代碼中的exp字段是公開的。添加此标簽可在inspecter面闆中隐藏
[Header("角色屬性")]
[Space]
[Range(0,10000)]//hp的取值範圍是0~10000
public float hp;//血量
public float mp;//法力值
public float speed;//移動速度
public float atk;//攻擊力
public float def;//防禦力
[SerializeField]//序列化字段
private int level;//等級
[HideInInspector]//隐藏exp字段
public int exp;//經驗
編輯器中的效果:
※ ※ ※ [TextArea] 設定文本區域
在 string 變量上添加此标簽,可編輯寫入區域的大小
如下代碼中在desc變量上添加了此标簽後
[Header("名稱")]
[Space]
[Tooltip("該角色在遊戲中的名稱")]
public string roleName;//人名
[Tooltip("該角色的昵稱")]
public string nickName;//昵稱
[Space]
[TextArea(0,30)]
public string desc;//人物介紹
在編輯器中的效果
※ ※ ※ OnValidate() 驗證資料的函數(賊實用)
在一個類中聲明一些變量,想要對這些變量進行驗證的時候可以使用。(之後對類的變量做出修改的才會調用該函數)示例代碼如下
public class Role : MonoBehaviour
{
public List<int> nums;
public int hp;
private void OnValidate()
{
while (nums.Count > 2)
{
nums.RemoveAt(nums.Count - 1);
}
if (hp > 100) hp = 100;
if (hp < 0) hp = 0;
}
}
在代碼中:規定的nums集合的長度和hp的指派範圍。
在編輯器中改變nums時,他的長度最多為2;給hp指派時,value如果大于100那麼hp就是100,value如果小于0,那麼hp就是0.
按下Enter鍵之後
菜單欄的擴充
※ ※ ※ [AddComponentMenu] 元件添加菜單中
該标簽聲明在類上面,把類添加到菜單路徑中
[AddComponentMenu("MyScripte/Role")]
public class Role : MonoBehaviour
{
}
編輯器中的效果: