1. 程式人生 > >主角人物移動(一)-滑鼠點選事件與通過射線獲取點選座標

主角人物移動(一)-滑鼠點選事件與通過射線獲取點選座標

Ray playerRay;//射線
RaycastHit playerHit;//射線碰撞資訊
Vector3 targetPos;//定義滑鼠點選位置
int mapTargetMask;//定義碰撞層級引數
void Start () {
        //獲取地圖層級並轉換為int
        mapTargetMask = LayerMask.GetMask("map");
    }
void playerClick()
    {
        //獲取滑鼠點選,引數 0 為左鍵,引數 1 為右鍵,按下返回true
        if (Input.GetMouseButtonDown(1))
        {
            //設定射線為從主相機中某一點發射(引數為發射位置)
            playerRay = Camera.main.ScreenPointToRay(Input.mousePosition);
            //發射一條射線,引數為:射線,返回的射線碰撞資訊,射線長度,碰撞層級
            if (Physics.Raycast(playerRay, out playerHit, 20f, mapTargetMask))
            {
                isMove = true;
                //獲取滑鼠點選點,playerHit.point為playerHit所儲存的座標
                targetPos = playerHit.point;
            }
            else
            {
                isMove = false;
            }
            clickKeyF = false;
        }
    }
適用於滑鼠點選地面獲取點選座標