Info Box Attribute:可用于任何屬性,并在檢查器中在屬性上方顯示一個文本框。使用它來添加注釋或警告使用不同的屬性。
【InfoBox】添加不同提示類型的文本框
[Title("InfoBox message types")]
[InfoBox("Default info box.")]
public int A;
[InfoBox("Warning info box.", InfoMessageType.Warning)]
public int B;
[InfoBox("Error info box.", InfoMessageType.Error)]
public int C;
[InfoBox("Info box without an icon.", InfoMessageType.None)]
public int D;
【visibleIfMemberName】根據(jù)條件控制文本顯示
[InfoBox("This info box is only shown while in editor mode.", InfoMessageType.Error, "IsInEditMode")]
public float G;
private static bool IsInEditMode()
{
return !Application.isPlaying;
}
也可以通過$特殊符號引用相應(yīng)屬性的value作為實(shí)參,或者使用@特殊符輸入表達(dá)式
[InfoBox("$InfoBoxMessage")]
[InfoBox("@\"Time: \" + DateTime.Now.ToString(\"HH:mm:ss\")")]
public string InfoBoxMessage = "My dynamic info box message";
示例完整代碼
using Sirenix.OdinInspector;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class InfoBoxAttributeExample : MonoBehaviour
{
[Title("InfoBox message types")]
[InfoBox("Default info box.")]
public int A;
[InfoBox("Warning info box.", InfoMessageType.Warning)]
public int B;
[InfoBox("Error info box.", InfoMessageType.Error)]
public int C;
[InfoBox("Info box without an icon.", InfoMessageType.None)]
public int D;
[Title("有條件的信息框")]
public bool ToggleInfoBoxes;
[InfoBox("This info box is only shown while in editor mode.", InfoMessageType.Error, "IsInEditMode")]
public float G;
private static bool IsInEditMode()
{
return !Application.isPlaying;
}
[InfoBox("此信息框可由靜態(tài)字段隱藏.", "ToggleInfoBoxes")]
public float E;
[InfoBox("此信息框可由靜態(tài)字段隱藏.", "ToggleInfoBoxes")]
public float F;
[InfoBox("$InfoBoxMessage")]
[InfoBox("@\"Time: \" + DateTime.Now.ToString(\"HH:mm:ss\")")]
public string InfoBoxMessage = "My dynamic info box message";
}