Unity_寻路系统
来源:互联网 发布:cnc编程软件排行榜 编辑:程序博客网 时间:2024/04/28 05:20
就像英雄联盟等游戏里的小兵一样,按照规定好的路线自行移动。
using UnityEngine;using System.Collections;using System;//寻路系统public class PathfindingSystems : MonoBehaviour { //保存所有的路点 public GameObject[] points; //记录下一个即将到达的路点 int nextPointIndex; //速度 public int speed; // Use this for initialization void Start () { //寻找所有的路径点对象 points = GameObject.FindGameObjectsWithTag("EnemyPoint_GJG"); //上面的方法获取到的路点在数组中保存的顺序是降序的,我们使用Sort重新排序,Sort默认是升序状态,我们也可以使用Rever Array.Sort(points, (x, y) => { return x.name.CompareTo(y.name); }); //设置游戏对象的初始位置 transform.position = points[0].transform.position; //设置初始角度 transform.forward = points[nextPointIndex].transform.position - transform.position; } // Update is called once per frame void Update () { //判断自身距离下一个路径点的位置,0.1f是在贴近下一个路径点时提前0.1f的距离转向,不会出现抖动 if (Vector3.Distance(points[nextPointIndex].transform.position,transform.position)<0.1f) { //如果下一个路径点不是最后一个则加一,-1是获取Points的最大索引值 if (nextPointIndex != points.Length - 1) { nextPointIndex++; } } //设置每一个点的转向 transform.forward = points[nextPointIndex].transform.position - transform.position; //全军出击 transform.position = Vector3.MoveTowards(transform.position,points[nextPointIndex].transform.position, speed * Time.deltaTime); }}
这里呢我先建立了一个空物体,在创建几个球体并放在空物体内排序,然后把球体的Tag修改后,如下图:
然后把脚本挂给小兵,然后把球体拖拽到挂载在小兵的脚本里,如下图:
最后的效果图
阅读全文
0 0
- Unity_寻路系统
- Unity_脚本与寻路系统的结合使用_013
- Unity_寻路系统中动态障碍物_061
- Unity_寻路系统中吊桥效果_062
- UNITY_光照系统
- UNITY_物理系统
- Unity_新版粒子系统_018
- Unity_粒子系统特效制作_051
- Unity_脚本和光照系统的结合使用_010
- Unity_脚本和物理系统的结合使用_011
- Unity_脚本和材质系统的结合使用_012
- Unity_协程
- UNITY_引擎_UGUI
- Unity_角色控制详解
- Unity_事件函数
- Unity_游戏源码
- Unity_协同学习
- Unity_游戏源码
- ssm练手(CRUD) 2、修改sql方法,并利用JUnit结合数据库进行测试
- HDU 6191 DFS序+可持久化字典树
- 文章标题
- 实训开始!~~
- pyspark中like的用法
- Unity_寻路系统
- GIt
- BZOJ 2084: [Poi2010]Antisymmetry
- 数字颠倒
- LeetCode-14-Longest-Common-Prefix 求若干字符串的最大公共前缀
- Is Derek lying?
- 小白入住 ,应要求写博客
- JQuery选择器
- JAVA设计模式之单例模式(创建型)