您好,登錄后才能下訂單哦!
思路:首先要獲得鼠標(biāo)的世界坐標(biāo)(鼠標(biāo)的位置坐標(biāo)默認(rèn)的是屏幕坐標(biāo)),當(dāng)鼠標(biāo)點(diǎn)擊時(shí),角色朝著鼠標(biāo)的方向移動(dòng);
input.mousePosition獲得的是鼠標(biāo)的屏幕坐標(biāo);
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面,一般游戲是不會(huì)垂直的,平面不是垂直的,角色就會(huì)出現(xiàn)穿透地面的現(xiàn)象,所以需要改一下代碼;
把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軸坐標(biāo)保持不變就可以了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。