Unity3D 自动寻径
来源:互联网 发布:免费视频相册制作软件 编辑:程序博客网 时间:2024/06/09 16:01
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频,我们致力于打造业内unity3d培训、学习第一品牌。
自动寻径
1.创建一个简单的地形
2.添加进去一个角色
3.创建几个障碍物,尽量摆的复杂一点,来检查Navmesh的可用性和效率。
4.选中地形,在Navigation窗口中,勾选Navigation Static
5.依次选中障碍物,在Navigation窗口中,勾选Navigation Static
6.Navigation窗口中,选择Bake(烘焙)界面,点击Bake按钮,进程场景烘焙,就可以烘焙出寻路网格了
7.为角色添加NavMeshAgent组件。Component->Navigation->Nav Mesh Agent
8.为角色新增一个脚本PlayerController.cs,实现点击目标,自动寻路功能
脚本:
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour {
private NavMeshAgent agent;
void Start () {
agent = GetComponent<NavMeshAgent>();
}
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);
}
}
using System.Collections;
public class Move : MonoBehaviour {
private NavMeshAgent agent;
void Start () {
agent = GetComponent<NavMeshAgent>();
}
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);
}
}
这样一个简单的自动寻径就完成了
动画效果
运行时我们发现角色是平移移动的,看着很不舒服。我们需要为角色添加动画让角色动起来
脚本:
using UnityEngine;
using System.Collections;
public class Move : MonoBehaviour {
private Animator anim;
void Start () {
anim=GetComponent <Animator>();
}
void Update () {
if (agent.remainingDistance == 0)
{
Trollidle();
}
else
{
Trollwalk();
}
}
void Trollidle()
{
anim.SetFloat("idle", 1F);
anim.SetFloat("walk", 0.0F);
anim.SetFloat("run", 0F);
}
void Trollwalk()
{
anim.SetFloat("idle",0F);
anim.SetFloat("walk", 1.0F);
anim.SetFloat("run", 0F);
}
}
宠物跟随
public Transform target;private NavMeshAgent agent;void Start () {agent = GetComponent<NavMeshAgent>();}void Update () {if (target!= null) {agent.destination=target.position;}}
把脚本给宠物并为宠物添加NavMeshAgent, target为主角。这样宠物就可以跟随主角运动。
从高空跳下
1、设置Navigation里面Bake的Drop Height的值2、勾选Navigation里面Object的OffMeshLink Generatic3、Bake这样巨魔就可以从高出跳下来选择性的行走1、把Navigation里面Bake的Drop Height的值设为02、取消勾选Navigation里面Object的OffMeshLink Generatic3、Bake4、在Navigation里面Layers创建两个Layers(LayersUpLayersDown)-->Bake5、选中主角,设置属性(NavMesh Walkable :Default )这样主角行走时就会不走红色区域
0 0
- Unity3D 自动寻径
- Unity3D学习之(自动寻径)
- 学习Unity3D之自动寻径。
- Unity3D自动寻路
- unity3d自动寻路
- Unity3D- 自动寻路
- 【Unity3D】自动寻路
- unity3d 自动寻路算法
- Unity3D中的自动寻路
- [Unity3D]Unity3D自动寻路Demo
- 【Unity3D】自动寻路的跳跃
- Unity3d NavMeshAgent自动寻路组件
- Unity3d 自动寻路(自带)
- Unity3d 坦克AI_自动寻怪,自动追击脚本参考
- Unity3D开发敌人自动攻击和自动寻路
- Unity3D 自动切割动画
- Unity3D 自动光照 shader
- Unity3D-自动裁剪图片
- 【转发】亲历腾讯WEB前端开发三轮面试经历及面试题
- 二叉排序树(二叉查找树)的基本操作
- linux echo 文件
- bzoj1565: [NOI2009]植物大战僵尸 最小割
- apue学习第八天——文件和目录(第四章)
- Unity3D 自动寻径
- pyhon:缩进
- 那边爱上是的是的是的是的
- ARP理解
- 低成本推广app的总结
- .net笔试1
- 女人从处女变成少妇熟女的几个外在表象变化
- 正则表达式学习30分钟入门教程
- 使用友盟消息推送中遇到的哪些问题--索引(开发者必读)