// 添加cmd 并执行一次 public void AddCmd(ICmd cmd) { if (cmdCur != cmdCounter.Cur - cmdOffset) { syncCmd(); } #if UNITY_4_1 Undo.IncrementCurrentEventIndex(); #endif // 清除当前位置之后的cmd if (cmdList.Count > cmdCur) { cmdList.RemoveRange(cmdCur, cmdList.Count - cmdCur); } cmdList.Add(cmd); cmd.execute(); cmdCur++; #if UNITY_4_3 || UNITY_4_5 || UNITY_4_6 Undo.RegisterCompleteObjectUndo(cmdCounter, cmd.CmdName); #elif (UNITY_3_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5 || UNITY_3_6 || UNITY_3_7 || UNITY_3_8 || UNITY_3_9) Undo.RegisterUndo(cmdCounter, cmd.CmdName); #else Undo.RecordObject(cmdCounter, cmd.CmdName); #endif cmdCounter.Cur++; }
static void Main(string[] args) { if (!argumentsAnlyzer(args)) { Console.WriteLine("argument error!"); return; } /* * http://www.youtube.com/watch?v=ibmU7xfgcMk * ダイアログ上のボタンのウィンドウハンドル(HWND)を取得し、そのHWNDに対して * ボタンクリックのメッセージを送信すればよい。 * * (1) ダイアログのHWNDを取得する。 * (2) ボタン上のテキスト等からボタンのHWNDを取得する。 * (3) ボタンのHWNDからIDを取得する。 * (4) ボタンをクリックするメッセージを送信する。 * */ command.execute(); }