3G技术应用
在Unity3d中实现点击目标点,然后出现引路线段,动态更新线段等功能
主要用到组件: NavMeshAgent
参数就不全部说明了,就说几个重要的吧
Steering->Speed
<1>这个是设置自动寻路的速度的,可以把这个值设置成0,然后就会光显示路线,而不自动寻路了。
<2>也可以随便设置一个值,然后就会显示路线,而且还会自动寻路
Steering->Stopping Distance
<1>这个的话就是寻路到目标点之后,距离目标点还有多少的距离,也就是停止距离
<2>如果目标点有碰撞体的话最后把这个值调大一点,不然会一直寻路,往这个方向挤
Path Finding->Area Mask
<1>可以行走的区域,这个再配合
这2个使用。先添加Areas层,然后在Object->Navgation Area->设置Areas层
<2>这个可以运用到dota游戏中,小兵自动3路寻路
LineRenderer组件
这个的话主要是用来在Game视图中画线段
首先要设置一下
LineRenderer->Materials
材质要设置一下,不然会显示材质丢失,就是那个紫色的一团
LineRenderer->Parameters->StartWidth
LineRenderer->Parameters->EndWidth
这两个是设置开始宽度和结束宽度。如果先要让线段粗一点可以设置值大一些
然后上代码
using UnityEngine;
using System.Collections;
public class Nav : MonoBehaviour
{
private NavMeshAgent agent;
public Transform target;
private LineRenderer lineRenderer;
// Use this for initialization
void Start()
{
agent = GetComponent
lineRenderer = gameObject.GetComponent
}
// Update is called once per frame
void Update()
{
agent.SetDestination(target.position);
Vector3[] path = agent.path.corners;
for (int i = 0; i < path.Length; i++)
{
path[i] = path[i] + new Vector3(0, 1, 0);
}
lineRenderer.SetVertexCount(_path.Length);
for (int i = 0; i < path.Length; i++)
{
lineRenderer.SetPosition(i, path[i]);
}
}
}
全部0条评论
快来发表一下你的评论吧 !