Unity實現滑鼠點選地面的任意位置,則角色會立即走到滑鼠點選的位置
阿新 • • 發佈:2018-12-09
一、建立一個角色,並給角色新增 CharacterController 控制器,這裡以簡單的Capsule物體作為角色示例,如下所示:
二、編寫控制角色移動的指令碼 RayDemo2_CCWalking.cs
/*** * * Title: * 射線 * * Description: * 功能: * 使用“射線”技術,實現位置定位 * * Date: 2018 * * Version: 1.0 * * Modify Recorder: * */ using UnityEngine; using System.Collections; public class RayDemo2_CCWalking : MonoBehaviour{ private Vector3 VecGoalPosition; //移動的目標位置 CharacterController CC; //角色控制器 void Start(){ //得到角色控制器 CC = gameObject.GetComponent<CharacterController>(); } void Update () { //確定移動位置 if (Input.GetMouseButton(0)){ //定義一個射線 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; //如果命中 if (Physics.Raycast(ray, out hit)){ VecGoalPosition = hit.point; } } //角色移動 if (Vector3.Distance(VecGoalPosition, this.transform.position) >0.1F){ //移動的步伐 Vector3 step = Vector3.ClampMagnitude(VecGoalPosition - this.transform.position, 0.1f); //角色控制器的移動 CC.Move(step); } }//UPDATE_END }
三 、將RayDemo2_CCWalking.cs控制指令碼新增給角色,執行專案,使用滑鼠點選地面,則角色自動移動到滑鼠點選的位置
注:本內容來自《Untiy3D/2D遊戲開發從0到1》 第25章