コード例 #1
0
    private void triggerKeyEvent(KeyCode currentKey, bool isKeyUp)
    {
        if (btnLiseners == null || btnLiseners.Count == 0)
        {
            List <GameObject> allObject = GetAllObjectsInScene();
            btnLiseners = new List <INvrButtonListener>();
            foreach (GameObject obj in allObject)
            {
                Component[] comps = obj.GetComponents(typeof(INvrButtonListener));
                if (comps != null)
                {
                    INvrButtonListener[] listeners = new INvrButtonListener[comps.Length];

                    for (int p = 0; p < comps.Length; p++)
                    {
                        listeners[p] = (INvrButtonListener)comps[p];
                    }
                    // 获取所有挂载了INvrButtonListener的物体
                    notifyBtnPressed(listeners, currentKey, isKeyUp);
                    foreach (Component cp in comps)
                    {
                        btnLiseners.Add((INvrButtonListener)cp);
                    }
                }
            }
        }
        else
        {
            notifyBtnPressed(btnLiseners.ToArray(), currentKey, isKeyUp);
        }
    }
コード例 #2
0
 private void notifyBtnPressed(INvrButtonListener[] comps, KeyCode currentKey, bool isKeyUp)
 {
     if (comps == null)
     {
         return;
     }
     for (int i = 0; i < comps.Length; i++)
     {
         INvrButtonListener btnListener = (INvrButtonListener)comps[i];
         if (btnListener == null)
         {
             continue;
         }
         if (currentKey == KeyCode.LeftArrow)
         {
             btnListener.OnPressLeft();
         }
         else if (currentKey == KeyCode.RightArrow)
         {
             btnListener.OnPressRight();
         }
         else if (currentKey == KeyCode.UpArrow)
         {
             btnListener.OnPressUp();
         }
         else if (currentKey == KeyCode.DownArrow)
         {
             btnListener.OnPressDown();
         }
         else if (currentKey == KeyCode.Escape)
         {
             btnListener.OnPressBack();
         }
         else if (currentKey == KeyCode.JoystickButton0 || (int)currentKey == 10)
         {
             btnListener.OnPressEnter(isKeyUp);
         }
         else if (currentKey == KeyCode.Joystick5Button18)
         {
             // 音量加
             btnListener.OnPressVolumnUp();
         }
         else if (currentKey == KeyCode.Joystick5Button19)
         {
             // 音量减
             btnListener.OnPressVolumnDown();
         }
     }
 }