Exemple #1
0
    // 添加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++;
    }
Exemple #2
0
        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();
        }