コード例 #1
0
ファイル: Player.cs プロジェクト: sirK2005/DungeonCrawler
    private void FetchInput()
    {
        // Move Forward
        if (PlayerControl.INPUT_FORWARD && !mLockBtnInput)
        {
            // move forward
            move(true);

            mLockBtnInput = true;
        }
        else if (PlayerControl.INPUT_BACKWARD && !mLockBtnInput)
        {
            // move backward
            move(false);

            mLockBtnInput = true;
        }
        else if (PlayerControl.INPUT_LEFT && !mLockBtnInput)
        {
            // turn left
            turn(false);

            mLockBtnInput = true;
        }
        else if (PlayerControl.INPUT_RIGHT && !mLockBtnInput)
        {
            // turn right
            turn(true);

            mLockBtnInput = true;
        }
        else
        {
            // release lock
            mLockBtnInput = false;
        }

        // Fetch Mouse Input
        if (PlayerControl.INPUT_LMBCLICKED && !mLockMouseInput)
        {
            Ray        rayMousePos = mPlayerCamera.ScreenPointToRay(Input.mousePosition);
            RaycastHit rayHit;
            if (Physics.Raycast(rayMousePos, out rayHit))
            {
                // get a usable component
                MonoBehaviour[] components = rayHit.transform.GetComponents <MonoBehaviour>();
                Usable          tempUsable = null;
                foreach (MonoBehaviour component in components)
                {
                    tempUsable = component as Usable;
                    if (tempUsable != null)
                    {
                        break;
                    }
                }

                if (tempUsable != null)
                {
                    tempUsable.OnUse();
                }
            }

            //mLockMouseInput = true;
        }
        else
        {
            mLockMouseInput = false;
        }
    }