//这个代码挂在摄像机上,游戏角色的tag要改为player,地形的name要改名为nnn
public Transform hhh;
//vector3是挂上游戏主角
public Vector3 target;
public bool isse = true;
public float speed = 3f;
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))
{
if (hit.collider.tag == "player")
{
hhh = hit.collider.transform;
isse = true;
}
if (hit.collider.name == "nnn")
{
if (hhh != null)
{
target = hit.point;
target.y = hhh.position.y;
isse = false;
}
}
}
}
if (hhh != null)
{
moveto(target);
}
}
void moveto(Vector3 tar)
{
if (!isse)
{
Vector3 offet = tar - hhh.position;
hhh.position += offet.normalized * speed * Time.deltaTime;
if (Vector3.Distance(tar, hhh.position) < 0.05f)
{
isse = true;
hhh.position = tar;
}
}
}
}