public GameObject _player;
bool isMove = false;
Vector3 _moveTarget;
public float _speed = 1f;
void Update () {
if (Input.GetMouseButtonDown(0)) {
// 從攝像機發(fā)射一條經(jīng)過鼠標(biāo)當(dāng)前位置的射線 用射線接收
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// 結(jié)構(gòu)體 獲取射線返回的信息
RaycastHit hit;
// Physics.Raycast 在場景中投下可以與所有碰撞器碰撞的一條光線 參數(shù)1 有方向有起點的射線
// bool值接收 當(dāng)射線與任何碰撞體碰撞時為真 否則為假 參數(shù)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 兩個向量之間的線性插值 參數(shù)1form 參數(shù)2to 參數(shù)3 速度
_player.transform.position = Vector3.Lerp(_player.transform.position,_moveTarget,Time.deltaTime*_speed);
}