Unity3d LineRenderer画线
原地址:http://www.cnblogs.com/88999660/archive/2013/01/21/2869498.html
1、 画多条线
画多条线需要在场景中放置多个GameObject,因为一个GameObject只能添加一个LineRenderer Component。
2、 线段样式
线段的样式由LineRenderer组件的材质控制
3、 坐标系
LineRenderer使用了2种坐标系:World和Location。在设置目标点的时候需要注意你使用的坐标系是哪一种。
Location:

transform.LookAt(rh.point); //GameObject始终面对目标点
lineRenderer = (LineRenderer)gameObject.GetComponent ("LineRenderer");
lineRenderer.useWorldSpace=false;
lineRenderer.SetWidth(0.1f,0.1f);
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray,out rh)){
lineRenderer.SetPosition(0, Vector3.forward*rh.distance);//方向*距离,典型的Location坐标系用法
}

World:

void Start () {
gameObject.SetActive(false);
lr = gameObject.GetComponent(typeof(LineRenderer)) as LineRenderer;
lr.SetWidth(0.1f,0.1f);
} // Update is called once per frame
void Update () {
if(Input.GetMouseButtonUp(0)){ //Get click position
Ray ray = Camera.mainCamera.ScreenPointToRay(Input.mousePosition);
lr.SetVertexCount(lineSeg+1);
if(Physics.Raycast(ray,out rh)){
pointPos.Add(DrawLine(rh));
}
} if(Input.GetMouseButtonUp(1)){
//destroy point
DestroyLine();
} } GameObject DrawLine(RaycastHit pointPos){ //Display point
GameObject gb_pointer = GameObject.Instantiate(pointer) as GameObject;
gb_pointer.transform.position =pointPos.point + (transform.position - pointPos.point) * 0.01f;
gb_pointer.transform.rotation = Quaternion.LookRotation (pointPos.normal, Camera.mainCamera.transform.up);
Vector3 laserpos = new Vector3();
laserpos.x= 90.0f;
laserpos.y= gb_pointer.transform.position.y;
laserpos.z= gb_pointer.transform.position.z;
gb_pointer.transform.eulerAngles = laserpos;
lr.SetPosition(lineSeg,pointPos.point); //设置目标点的坐标,使用的是world坐标系
lineSeg++;
return gb_pointer;
} void DestroyLine(){ int arrayLength = pointPos.Count;
if(arrayLength > 0){
GameObject.Destroy(pointPos[arrayLength-1]);
pointPos.RemoveAt(arrayLength-1);
lr.SetVertexCount(--lineSeg);
}
}

Unity3d LineRenderer画线的更多相关文章
- unity3d NavMeshAgent 寻路画线/画路径
今天在群里看见有个小伙在问Game视图寻路时怎么画线 正好前几天写了个寻路,而且自己也不知道具体怎么在寻路时画线,所以决定帮帮他,自己也好学习一下 在百度查了一下资料,直接搜寻路画路径.寻路画线... ...
- Unity3D 画线插件 Vectrosity_Simple2DLine
Vectrosity是一个很方便的画线插件,用它我们可以画出2D,3D,贝塞尔,圆,椭圆等各种线条图案. :链接: http://pan.baidu.com/s/1pJjTFjt 密码: uesn 首 ...
- unity3d之在屏幕上画线
如何在屏幕上画线,简单的代码如下: using UnityEngine; public class Test : MonoBehaviour { void OnGUI() { GL.LoadOrtho ...
- unity3d 使用GL 方式画线
这个是画线部分 private Vector3[] linePoints; public int m_LineCount; public int m_PointUsed; public void Re ...
- MFC画线功能总结
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...
- MFC消息映射机制以及画线功能实现
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...
- CGContextRef 画线简单用法
CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9
视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...
随机推荐
- Android测试框架初步
一.实验目的 1.掌握android测试项目的建立 2.掌握android测试框架的基本内容 3.编写运行android测试 二.实验内容与步骤 建立android项目MyProject,运行截图如下 ...
- JavaScript实例---表格隔行变色以及移入鼠标高亮
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- Angularjs 异步模块加载项目模板
ng-lazy-module-seed(Angularjs 异步模块加载项目模板) 相信做过SPA项目的朋友都遇到过这个问题:页面初始化时需要加载文件太大或太多了,许多文件加载后很可能不会运行到,这是 ...
- Android学习第六弹之Touch事件的处理
在移动开发过程当中,我们经常会遇到手势处理和事件触摸的情况,如果不了解整个事件的处理机制,对于开发的同学和码农是非常痛苦的,但是事件触摸的处理确实是一个非常复杂的过程,细讲起来,估计我都能讲迷糊,这里 ...
- vs操作快捷键
注释: 先CTRL+K,然后CTRL+C取消注释: 先CTRL+K,然后CTRL+U 解析命名空间:shift+alt+f10 或Ctrl + . 调试快捷键 F6: ...
- [BZOJ 2186][Sdoi2008]沙拉公主的困惑(欧拉函数)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2186 分析: 就是要求1~n!中与m!互质的数的个数 首先m!以内的就是φ(m!) 关 ...
- ACL权限的学习
ACL ACL:访问控制列表,其主要作用是将一些"用户"加到表中,并对这些用户的行为进行控制. 案例: 有个文件夹project是root用户创建,并且关于这个文件夹有以下权限 d ...
- 【BZOJ 1901】【Zju 2112】 Dynamic Rankings 动态K值 树状数组套主席树模板题
达神题解传送门:http://blog.csdn.net/dad3zz/article/details/50638360 说一下我对这个模板的理解: 看到这个方法很容易不知所措,因为动态K值需要套树状 ...
- mysql-函数FOUND_ROWS()
FOUND_ROWS() SELECT语句中经常可能用LIMIT限制返回行数.有时候可能想要知道如果没有LIMIT会返回多少行,但又不想再执行一次相同语句.那么,在SELECT查询中包含SQL_CAL ...
- SQLServer 开启远程访问,也可逆向思维进行关闭
为了可以通过TCP/IP协议远程访问SQLServer数据库,需要做以下几点: 在SQLServer所运行的服务器上,我们必须找到SQLServer所侦听的端口然后添加到WIndows防火墙的[允许入 ...