主角人物移動(一)-滑鼠點選事件與通過射線獲取點選座標
阿新 • • 發佈:2019-01-08
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; } }