版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
bool finish = true;
Vector3 pos;
public int speed = 10;
void Start()
{
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit))
{
//判断射线碰撞到的物体名称 是否是Terrain,你的角色在什么物体上移动就改成那个物体的名称
if (hit.collider.name == "Terrain")
{
pos = hit.point;
pos.y = 1f;
finish = false;
}
}
}
if (!finish)
{
Vector3 offset = pos - transform.position;
transform.position += offset.normalized * Time.deltaTime * speed;
if (Vector3.Distance(pos, transform.position) < 1f)
{
transform.position = pos;
finish = true;
}
}
}
}