public GameObject _player;
bool isMove = false;
Vector3 _moveTarget;
public float _speed = 1f;
void Update () {
if (Input.GetMouseButtonDown(0)) {
// 从摄像机发射一条经过鼠标当前位置的射线 用射线接收
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 结构体 获取射线返回的信息
RaycastHit hit;
// Physics.Raycast 在场景中投下可以与所有碰撞器碰撞的一条光线 参数1 有方向有起点的射线
// bool值接收 当射线与任何碰撞体碰撞时为真 否则为假 参数2为如果为真的话 就把这个碰撞点的信息给hit
if (Physics.Raycast(ray,out hit)) {
// 获取碰撞点
if (hit.collider.name == "Plane") {
isMove = true;
_moveTarget = hit.point;
_moveTarget = new Vector3(_moveTarget.x, _player.transform.position.y, _moveTarget.z);
}
}
}
if (isMove) {
// Lerp 两个向量之间的线性插值 参数1form 参数2to 参数3 速度
_player.transform.position = Vector3.Lerp(_player.transform.position,_moveTarget,Time.deltaTime*_speed);
}
网友评论