原地址: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画线的更多相关文章

  1. unity3d NavMeshAgent 寻路画线/画路径

    今天在群里看见有个小伙在问Game视图寻路时怎么画线 正好前几天写了个寻路,而且自己也不知道具体怎么在寻路时画线,所以决定帮帮他,自己也好学习一下 在百度查了一下资料,直接搜寻路画路径.寻路画线... ...

  2. Unity3D 画线插件 Vectrosity_Simple2DLine

    Vectrosity是一个很方便的画线插件,用它我们可以画出2D,3D,贝塞尔,圆,椭圆等各种线条图案. :链接: http://pan.baidu.com/s/1pJjTFjt 密码: uesn 首 ...

  3. unity3d之在屏幕上画线

    如何在屏幕上画线,简单的代码如下: using UnityEngine; public class Test : MonoBehaviour { void OnGUI() { GL.LoadOrtho ...

  4. unity3d 使用GL 方式画线

    这个是画线部分 private Vector3[] linePoints; public int m_LineCount; public int m_PointUsed; public void Re ...

  5. MFC画线功能总结

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...

  6. MFC消息映射机制以及画线功能实现

    ---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...

  7. CGContextRef 画线简单用法

    CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...

  8. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  9. C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9

    视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...

随机推荐

  1. .net 开发人员如何自处

    关于N家还是J家,谁家更阔绰有前途的问题,每年都要讨论一会,当然和各位兄弟在岗位上迷茫,不知位置在哪有关系,不过这个问题基本算是伪问题,这种东西放到更高的维度,真的什么都不是. 但是为什么J家好像是不 ...

  2. [codevs1283]等差子序列(二进制)

    题目:http://codevs.cn/problem/1283/ 分析: 主要就是在每个判定上节省时间.一般的做法是开个数组记录每个数字出没出现,然后每次读入一个数字就以他为中间向两边扩展直到两个对 ...

  3. c#简单自定义异常处理日志辅助类

    简单写了一个错误日志记录辅助类,记录在此. Loghelper类 using System; using System.Collections.Generic; using System.IO; us ...

  4. 一头扎进EasyUI3

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 一头扎进EasyUI第11讲 .基本下拉组件 <select id="cc" style=& ...

  5. RequireJS学习资料汇总

    入门系列 [1]阮一峰 RequireJS用法 [2]RequireJS入门指南 文档系列 [1]RequireJS中文文档 [2]RequireJS英文文档 代码实践 知识扩展 [1]计算机干了什么

  6. structs环境搭建

    (1)<s:fielderror />放在JSP中,如果没在web.xml中配置filter相关内容,会有The Struts dispatcher cannot be found.从而显 ...

  7. 【ZOJ 3502】Contest

    题 题意 n个问题,解决的顺序影响正确的概率,无论之前解决的问题是否答对,当前问题 j 答对概率为max{a[i][j]} (i为解决过的问题).求答对题目的最大期望和对应的答题顺序.T组测试,T ( ...

  8. 【FE前端学习】第二阶段任务-基础

    技能学习部分: 1.需要熟练掌握HTML标签以及CSS各个常用属性. 2.掌握CSS3 常用属性 3.掌握jquery的基本用法,对于JS基本逻辑语句需要熟练掌握 上文 [FE前端学习]第二阶段任务- ...

  9. 9.Android之日期对话框DatePicker控件学习

    设置日期对话框在手机经常用到,今天来学习下. 首先设置好布局文件:如图 xml对应代码 <?xml version="1.0" encoding="utf-8&qu ...

  10. golang thrift 源码分析,服务器和客户端究竟是如何工作的

    首先编写thrift文件(rpcserver.thrift),运行thrift --gen go rpcserver.thrift,生成代码 namespace go rpc service RpcS ...