一、创建一个角色,并给角色添加 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章