コード例 #1
0
ファイル: RTSGame.cs プロジェクト: Leon-56/Unity-RTS
        // Player Inputs.
        private void InputProcess()
        {
            // Mouse
            if (Input.GetMouseButtonUp(0) == false)
            {
                return;
            }

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            RaycastHit[] hits = Physics.RaycastAll(ray);

            foreach (var hit in hits)
            {
                // Camp OnClick or not
                CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>();
                if (CampClickScript != null)
                {
                    CampClickScript.OnClick();
                    return;
                }

                // Character OnClick or not
                SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>();
                if (SoldierClickScript != null)
                {
                    SoldierClickScript.OnClick();
                    return;
                }
            }
        }
コード例 #2
0
    // 玩家输入
    private void InputProcess()
    {
        //  Mouse左键
        if (Input.GetMouseButtonUp(0) == false)
        {
            return;
        }

        //由摄像机产生一条射线
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        RaycastHit[] hits = Physics.RaycastAll(ray);

        // 走访每一个被Hit到的GameObject
        foreach (RaycastHit hit in hits)
        {
            // 是否有兵营点击
            CampOnClick CampClickScript = hit.transform.gameObject.GetComponent <CampOnClick>();
            if (CampClickScript != null)
            {
                CampClickScript.OnClick();
                return;
            }

            // 是否有角色点击
            SoldierOnClick SoldierClickScript = hit.transform.gameObject.GetComponent <SoldierOnClick>();
            if (SoldierClickScript != null)
            {
                SoldierClickScript.OnClick();
                return;
            }
        }
    }