自动寻径

自动寻径
        现在的大部分mmo游戏都有了自动寻路功能。点击场景上的一个位置,角色就会自动寻路过去。中间可能会有很多的障碍物,角色会自动绕过障碍物,最终达到终点。使用Unity来开发手游,自动寻路可以有很多种实现方式。
MO - Massively Multiplayer Online:大型多人在线
       策略类或战略类(MMOSLG) 
      动作类(MMOACT) 
      冒险类(MMOAVG) 
      模拟类游戏(MMOSG) 
      运动类(MMOSPT) 
      赛车类(MMORCG)
      角色扮演类(MMORPG)
A巨魔自动寻径
       1.创建地形
      2.添加角色
      3.创建多个障碍物,尽量摆的复杂一点,来检查Navmesh 的可用性和效率。
      4.选中地形,在Navigation窗口中,设置Navigation Static
      5.依次选中障碍物,在avigation窗口中,设置Navigation Static
      6.Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进程场景烘焙,就可以烘焙出寻路网格了
      7.为角色添加NavMeshAgent组件。Component->Navigation->Nav Mesh Agent
      8.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能
       
 using UnityEngine;
using System.Collections;

public class Role1 : MonoBehaviour {

private NavMeshAgent agent;
private Animator anim;
        void Start() {
              agent = GetComponent<NavMeshAgent>();
               anim = GetComponent<Animator>();
        }

        void Update() {
                RaycastHit hit;
                if (Input.GetMouseButtonDown(0)) {
                        Ray ray =            
                                             Camera.main.ScreenPointToRay(Input.mousePosition);
                        if (Physics.Raycast(ray, out hit)){
                                agent.SetDestination(hit.point);
                                         }
                                }
                if (agent.remainingDistance == 0)
                {
                    AnimationToIdle();
                }
                else
                {
                    AnimationToWalk();
                }
        }
        public void AnimationToIdle()
        {
            anim.SetFloat("idle", 1F);
            anim.SetFloat("walk", 0.0F);
            anim.SetFloat("run", 0F);
        }

        public void AnimationToWalk()
        {
            anim.SetFloat("run", 0.0F);
            anim.SetFloat("idle", 0F);
            anim.SetFloat("walk", 1.0F);
        }
}
      Acceleration 加速度: 最大加速度。
      Angular Speed 角速度: 最高转速(度/秒)。
      Stopping distance 制动距离:制动距离。到目的地的距离小于这个值,代理减速。
      Auto Traverse OffMesh Link 自动遍历OffMesh链接:自动移动并关闭OffMeshLinks
      Auto Repath 自动重新寻路:如果现有的部分已失效,获得新的路径
      Height 高度:代理的高度(用于调试图形)。
      Base offset 基本偏移:碰撞几何体相对于实际几何体垂直的偏移。
      Obstacle Avoidance Type 障碍躲避类型 :躲避的质量水平。
      NavMesh Walkable 导航网格行走:指定代理可以遍历的导航网格层类型。
 

          以上是数据库的初步了解,如果你有什么不会的话,可以来狗刨学习网上来看看,如果你想在Unity3D上大展手脚的话,可以来狗刨培训与专家咨询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值