Unity学习笔记:应用自动寻路功能实现鼠标控制主角寻路

知识点:自动寻路 鼠标射线

using UnityEngine;
using System.Collections;

public class RayTest : MonoBehaviour
{
    private Ray ray;
    private RaycastHit hit;//射线碰到的碰撞信息
    private NavMeshAgent agent;
    private void Start() {
        agent = this.GetComponent<NavMeshAgent>();
    }
    void Update(){
        //起始位置(主摄像机)
        //方向(鼠标位置)
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        if (Physics.Raycast(ray, out hit, 100)&&Input.GetMouseButtonDown(0))
        {
            agent.SetDestination(hit.point);
            //ray.origin射线起始点
            // hit.point射线碰到碰撞器的接触点
            Debug.DrawLine(ray.origin, hit.point, Color.red);
        }
    }
    //鼠标点哪物体移动到哪,射线跟寻路配合
}

扩展知识:也可用于小地图寻路,主摄像机改为小地图摄像机,通过hit判断寻路目标建筑hit.collider.tag==""

猜你喜欢

转载自blog.csdn.net/huanyu0127/article/details/106070524