[CustomEditor(typeof(Tool))]
public class ToolInspecter : Editor
{
protected Tool m_Tool;
///
/// Component每一次顯示在Inspector上就會重新呼叫一次
///
private void OnEnable()
{
//DO init
m_Tool = target as Tool;
}
///
/// Component從Inspector上移除的瞬間執行
///
private void OnDestroy()
{
//Do origin
}
///
/// 該Component每一次有改變就會呼叫一次
///
public override void OnInspectorGUI()
{
//Do Draw GUI
DrawDefaultInspector();
}
2018年5月17日
Inspecter 基本架構紀錄
2018年4月11日
Adapter Pattern:組合兩個不相干的執行需要一個轉接器
概念
當螢幕只有D-SUB,但卻要接主機只有DVI插孔的顯示卡時候,需要轉接器來轉換傳送訊號,這種改變既有內容去轉換需要結果時,就需要它。很多人會想,那只要共同有一個Interface去繼承就好啦!
但是像是D-SUB這種已經定型的產品架構,你無法再重新改變它的定義與執行內容,你只能取出它並且改為新產品需要的資訊才能產生結果。
在這個之中,D-SUB被稱為Target,轉換對象;DVI被稱為Adaptee,適配者。
假如功能相差太多的兩種功能/產品,或是適配者有著轉換對象沒有的plugin,那就不適用這種設計模式。
2018年2月8日
動態設定Private Member時候遇到System.Reflection.MonoField錯誤
一般來說,要設定私人變數時,只要這麼寫通常可以順利進去:
但若設定的是繼承MonoBehaviour的物件的話,請在setValue(Object, Value)中,把Object直接指向物件。
var tProp = OverrideCtrl.GetType().GetField("name", BindingFlags.NonPublic | BindingFlags.Instance);
tProp.SetValue(tPorp, "new name value");
但若設定的是繼承MonoBehaviour的物件的話,請在setValue(Object, Value)中,把Object直接指向物件。
public GameObject TargetObject = null;
private void ReplaceObj(){
var tProp = OverrideCtrl.GetType().GetField("monoObject", BindingFlags.NonPublic | BindingFlags.Instance);
tProp.SetValue(OverrideCtrl, TargetObject);
}
訂閱:
文章 (Atom)