寻路系统、人工智能AI

NavMeshAgent(导航网络代理组件):给物体添加,并且寻找到最短的路径;

OffMeshLink(分离网络连接):完成物体在两者之间的跳跃;

NavMeshObstacle(网格障碍组件):可添加到动态的障碍物上,障碍物会动态的改变它所在地点的网格信息;

注:寻路之前先对场景进行烘焙

public GameObject target;

void Start()

{

    GetComponent<NavMeshAgent>().SetDestination(target.transform.position);

}

物体寻路到鼠标点击的位置

private NavMeshAgent agent;

void Start()

{

    agent = GetComponent<NavMeshAgent>();

}

void Update()

{

    if(Input.GetMouseButtonDown(1))

    {

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//获取鼠标的位置

        RaycastHit hit;

         if(Physici.Raycast(ray.out hit,100))//100为射线的长度

         {

              agent.SetDestination(hit.point);

        }

    }

}

区域内随机生成

public GameObject enemy;

public float spawnTime = 3f;

public Transform[] spawnPoints;//产生物体的区域

void  Start()

{

    InvokeRepeating("Spawn",spawnTime,SpawnTime);

}

void Spawn()

{

    int i = Random.Range(0,spawnPoints.Length);//随机产生

    Instantiate(enemy,spawnPoints[i].position,Quaternion.identity);//产生物体

}

障碍物的实现,障碍物不能烘焙

public GameObject target;

public GmaeObject aa;

void Start()

{

    GetComponent<NavMeshAgent>().SetDestination(target.transform.position);

}

void Update()

{

    if(Input.GetMouseButtonDown(0))

    {

        aa.GetComponent<NavMeshObstacle>().enable = false;

    }

}


分离网络连接,需要在物体上添OffMeshLink组件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值