移动轨迹--导航射线

// 功能:

// 挂载对象:

//注意:

using UnityEngine;

using System.Collections;

public class scricubefollow : MonoBehaviour

{

//public Transform m_sph;

// 自身渲染器组件

LineRenderer m_Line;

// 自身导航组件

NavMeshAgent m_agent;

RaycastHit hit = new RaycastHit ();

void Awake ()

{

// 拿到两个组件

m_Line = GetComponent ();

m_agent = GetComponent ();

//m_Line.enabled = false;

}

void Update ()

{

// 鼠标鼠标点击哪里就去哪里

if (Input.GetMouseButtonDown (0)) {

Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);

if (Physics.Raycast (ray, out hit)) {

//让主角前往目的地

m_agent.SetDestination (hit.point);

// 绘制线条 (在此处角色走完的路线不会消失)

DrawLine (hit);

}

}

// 绘制线条 (在此处角色走完的路线会消失)

//DrawLine (hit);

}

void DrawLine (RaycastHit hit)

{

// 绘制线条的核心代码:

//1: 告诉我多少拐点

// m_Line.SetVertexCount ();

//2 告诉我拐点的位置在哪里

// m_Line.SetPositions ();

NavMeshPath path = new NavMeshPath ();

m_Line.SetPosition (path.corners.Length, hit.point);

// 计算从导航数据中计算出来所要走的路径信息

m_agent.CalculatePath (hit.point, path);

//path.corners

// 设置要绘制的导航路线的拐点

m_Line.SetVertexCount (path.corners.Length);

// 设置拐点的位置

m_Line.SetPositions (path.corners);

// 也可使用循环来设置各个点

//for (int i = 0; i < path.corners.Length; i++) {

//m_Line.SetPosition (i, path.corners [i]);

//}

//激活线性组件

//m_Line.enabled = true;

}

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 18- UIBezierPath官方API中文翻译(待校对) ----------------- 华丽的分割线 -...
    醉卧栏杆听雨声阅读 4,756评论 1 1
  • 2e45075fd084阅读 1,135评论 0 0
  • 好的人生是 这么回事吧 这一边,荷尔蒙,虚荣,欲望,至死燃烧 那一边,悲悯,善与爱,也可以永无止境
    摄影师柳丁阅读 1,657评论 0 1
  • 今天,接孩子回家时,去了奥赛教育给孩子看看特长班的情况,结果,我们选了一个体验课,得了一个新书包!看见孩子很...
    兆木兆木阅读 1,018评论 0 3
  • 长夜下的青春, 抹着泪庞的伊人。 无助的孤独, 在摧残着恋人。 叹息的过往, 这一场恋爱。 犹豫中的你, 不辜负的人。
    智深静思阅读 1,459评论 0 0

友情链接更多精彩内容