您好,登錄后才能下訂單哦!
思路:首先要獲得鼠標的世界坐標(鼠標的位置坐標默認的是屏幕坐標),當鼠標點擊時,角色朝著鼠標的方向移動;
input.mousePosition獲得的是鼠標的屏幕坐標;
Vector3 world; public float speed; void Update() { if(Input.GetMouseButtonDown(0)) { Vector3 m_pos=Input.mousePosition; Vector3 player_pos=Camera.main.WorldToScreenPoint(transform.position); m_pos.z=player_pos.z; world=Camera.main.ScreenToWorldPoint(m_pos); speed=8.0f; transform.LookAt(world); transform.translate(Vector3.forward*speed*Time.deltaTime); } }
注:以上方法只適用于垂直平面,即攝像頭垂直于x—z面,一般游戲是不會垂直的,平面不是垂直的,角色就會出現穿透地面的現象,所以需要改一下代碼;
把world=Camera.main.ScreenToWorldPoint(m_pos);換成下面的就可以了;
world.x=Camera.main.ScreenToWorldPoint(m_pos).x;
world.z=Camera.main.ScreenToWorldPoint(m_pos).z;
world.y=transform.position.y;
也就是說角色的y軸坐標保持不變就可以了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。