用GL画出人物的移动路径
注意:用Debug画的线会存在穿透问题

没啥好解释的,直接看代码:
using UnityEngine;
using System.Collections;
using System.Collections.Generic; /*
* 找不到设置线宽的方法,目前的解决方法就是用画矩形代替画线来实现线的粗细
*/ /// <summary>
/// 必须将此脚本放在摄影机上才能看到绘画内容,DebugDraw可以不用,但DebugDraw画的内容
/// 只能在编辑模式下看得到。
/// </summary>
[RequireComponent(typeof(Camera))]
public class DrawTrack: MonoBehaviour
{
/// <summary>
/// 画笔的材质
/// </summary>
public Material Material; /// <summary>
/// 绘画该目标的移动路径
/// </summary>
public Transform Target; /// <summary>
/// 画笔平滑度
/// </summary>
public float Smooth = ; /// <summary>
/// 是否也在编辑器里绘画出线
/// </summary>
public bool DebugDraw = true; /// <summary>
/// 存放移动路径的点的集合
/// </summary>
private List<Vector3> path; /// <summary>
/// 目标的最后一个移动点
/// </summary>
private Vector3 lastPosition; void Start()
{
if (Material == null)
{
Debug.LogError("请先赋予该脚本 Material !!");
} if (Target == null)
{
Debug.LogError("请设置目标");
} path = new List<Vector3>();
lastPosition = Target.position;
} void Update()
{
if (Vector3.Distance(Target.position, lastPosition) > Smooth)
{
path.Add(Target.position);
lastPosition = Target.position;
}
} /// <summary>
/// GL绘图必须在这个函数中进行
/// </summary>
void OnPostRender()
{
GL.PushMatrix();
Material.SetPass();
// 若要绘制2D线段,则取消注释GL.LoadOrtho();
//GL.LoadOrtho();
GL.Begin(GL.LINES); /*******在此处进行绘画*********/
DrawLines(path.ToArray()); GL.End();
GL.PopMatrix();
} private void DrawLine(Vector3 start, Vector3 end)
{
GL.Vertex3(start.x, start.y, start.z);
GL.Vertex3(end.x, end.y, end.z);
if (DebugDraw)
{
Debug.DrawLine(start, end, Color.red, );
}
} private void DrawLines(Vector3[] points)
{
if (points.Length == )
{
return;
} for (int i = ; i < points.Length - ; ++i)
{
var start = points[i];
var end = points[i + ];
GL.Vertex3(start.x, start.y, start.z);
GL.Vertex3(end.x, end.y, end.z);
if (DebugDraw)
{
Debug.DrawLine(start, end, Color.red, );
}
}
} public void ClearLine()
{
path.Clear();
} }
用GL画出人物的移动路径的更多相关文章
- 【机器学习】【条件随机场CRF-3】条件随机场的参数化形式详解 + 画出对应的状态路径图 + 给出对应的矩阵表示
1.条件随机场概念CRF,Conditional Random Field,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模式,其特点是假设输出随机变量构成马尔可夫随机场. 条件随机场用 ...
- Android中Google地图路径导航,使用mapfragment地图上画出线路(google map api v2)详解
在这篇里我们只聊怎么在android中google map api v2地图上画出路径导航,用mapfragment而不是mapview,至于怎么去申请key,manifest.xml中加入的权限,系 ...
- 通通玩blend美工(8)——动态绘制路径动画,画出个萌妹子~
原文:通通玩blend美工(8)--动态绘制路径动画,画出个萌妹子~ 2年前我在玩Flex的时候就一直有一个疑问,就是如何来实现一个蚊香慢慢烧完的Loading动画呢? 刚经历了某甲方高强度一个月的洗 ...
- H5坦克大战之【画出坦克】
今天是个特殊的日子,圣诞节,也是周末,在这里先祝大家圣诞快乐!喜庆的日子,我们可以稍微放松一下,扯一扯昨天雷霆对战凯尔特人的比赛,这场比赛大威少又双叒叕拿下三双,而且是一个45+11+11的超级三双, ...
- 使用CSS3画出一个叮当猫
刚学习了这个案例,然后觉得比较好玩,就练习了一下.然后发现其实也不难,如果你经常使用PS或者Flash的话,应该就会知道画个叮当猫是很容易的事,至少我是这么觉得.但是,用CSS3画出来确实是第一次接触 ...
- 教你用SVG画出一条龙
先看demo,九十七度 其实使用svg画出这条龙很简单,关键不在于怎么使用svg,而在于你的美术功底,哈哈. 好吧,当然基础是不能忽略的,先看下这条龙的代码: <svg id="lon ...
- java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法
/** *@author blovedr * 功能: java绘图原理------在窗口界面(或面板上)画出一张或多张图片问题解决方法 * 日期: 2018年4月28日 16:20 * 注释: ...
- Android教程:在百度地图上画出轨迹
[日期:2013-04-14] 来源:Linux社区 作者:crazyxin1988 [字体:大 中 小] 接着上面的项目<Android访问webservice.客户端登录注册> ...
- 使用CAShapeLayer的path属性与UIBezierPath画出扫描框
1.CAShapeLayer CAShapeLayer具有path属性,(是CGPath对象),可以使用这个属性与UIBezierPath画出想要的图形.该子类根据其fill color和stroke ...
随机推荐
- bzoj4318OSU &tyvj1952 Easy
之前做tyvj1952Easy(给定一个序列,每个位置有一定的概率是1或0,求极长连续1的长度平方期望),用的做法是求出"全1子串的期望个数".假如每一段极长连续1分别长x1,x2 ...
- 使用dnsmasq来提升CentOS上网速度
1. 安装dnsmasq dnsmasq的官方网址是:http://www.thekelleys.org.uk/dnsmasq/doc.html.利用里面的下载链接下载dnsmasq-2.72.tar ...
- UVa 714 Copying Books(二分)
题目链接: 传送门 Copying Books Time Limit: 3000MS Memory Limit: 32768 KB Description Before the inventi ...
- PyQ1_介绍
PyQt是一个创建GUI应用程序的工具包.它是Python编程语言和Qt库的成功融合.Qt库是目前最强大的库之一.PyQt是由Phil Thompson 开发. PyQt实现了一个Python模块 ...
- AspectJ基础学习之一简介(转载)
AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客 Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...
- JSP 核心标签库
1 JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 2 JSTL标签库分类 核心标 ...
- 调用startActivityForResult,onActivityResult无响应的解决办法
三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Act ...
- Hash Table in C
http://www.sparknotes.com/cs/searching/hashtables/section3.rhtml http://en.literateprograms.org/Spec ...
- ecshop目录结构
ECShop 最新程序 的结构图及各文件相应功能介绍ECShop文件结构目录┣ activity.php 活动列表┣ affiche.php 广告处理文件┣ affiliate.php 生成商品列表┣ ...
- yourphp问题中心
1.前台读不出字段.数据库列表有的,但前台就适读不出来. 2.浏览次数+1与+2的问题 浏览+ <a href="{:URL('User-Register/index')}" ...