Unity3D中LineRenderer的使用-程序员宅基地

技术标签: 游戏  

LineRenderer线渲染器主要是用于在3D中渲染线段,虽然我们也可以使用GL图像库来渲染线段,但是使用LineRenderer我们可以对线段进行更多的操作,例如:设置颜色,宽度等。在这里要注意LineRenderer渲染出的线段的两个端点是3D世界中的点,即他是属于世界坐标(World Point)中的。   
       LineRenderer是以组件形成存在的,首先我们新建一个空的Game Object,然后我们选择“Component→Effects→Line Renderer”,即可为其添加LineRenderer组件了。   

其实我们也可以通过脚本来为其添加LineRenderer组件:   
LineRenderer lineRenderer = gameObject.AddComponent<LineRenderer>();
获取LineRenderer组件:   
lineRenderer = GetComponent<LineRenderer>();
【    案例】根据鼠标左击的位置,来持续绘制线段   
首先我们在场景中新建一个空的      GameObject,并Reset一下。然后将Script1脚本添加给他。      
using UnityEngine;
using System.Collections;
public class Script1 : MonoBehaviour
{
    //LineRenderer
    private LineRenderer lineRenderer;
    //定义一个Vector3,用来存储鼠标点击的位置
    private Vector3 position;
    //用来索引端点    private int index = 0;
    //端点数
    private int LengthOfLineRenderer=0;
    void Start()
    {
        //添加LineRenderer组件
        lineRenderer = gameObject.AddComponent<LineRenderer>();
        //设置材质
        lineRenderer.material = new Material(Shader.Find("Particles/Additive"));
        //设置颜色
        lineRenderer.SetColors(Color.red, Color.yellow);
        //设置宽度
        lineRenderer.SetWidth(0.02f, 0.02f);
            }
    void Update()
    {
          //获取LineRenderer组件
        lineRenderer = GetComponent<LineRenderer>();
       //鼠标左击
        if (Input.GetMouseButtonDown(0))
        {
            //将鼠标点击的屏幕坐标转换为世界坐标,然后存储到position中
            position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1.0f));
             //端点数+1
            LengthOfLineRenderer++;
            //设置线段的端点数
            lineRenderer.SetVertexCount(LengthOfLineRenderer);
                    }
        //连续绘制线段
        while (index < LengthOfLineRenderer)
        {
               //两点确定一条直线,所以我们依次绘制点就可以形成线段了
            lineRenderer.SetPosition(index, position);
            index++;
        }
            }
    void OnGUI()
    {
                  GUILayout.Label("当前鼠标X轴位置:" + Input.mousePosition.x);
        GUILayout.Label("当前鼠标Y轴位置:" + Input.mousePosition.y);
            }
            }
效果图:   

在这里我提一下,如果我们将Input.GetMouseButtonDown(0)改为Input.GetMouseButton(0)会产生什么样的效果呢?那就是我们拖动鼠标就可以持续的渲染线段了。   

 

转载于:https://www.cnblogs.com/feiyanstudio/articles/7326672.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/R873112/article/details/101689592

智能推荐

海康威视部分综合安防管理平台产品存在任意文件上传漏洞_海康威视综合安防管理平台任意文件上传漏洞-程序员宅基地

文章浏览阅读1.3k次。海康威视部分综合安防管理平台历史版本由于对上传文件接口校验不足,攻击者可以将恶意文件上传到平台,导致获取服务权限或服务异常。攻击者利用该漏洞上传Webshell,并随后执行任意命令,对主机上相关文件进行加密,加密后缀为locked1。海康威视iVMS集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控、联网报警、智能分析、运维管理等多种安全防范应用系统,构建的多业务应用综合管理平台。(2)建立重要业务数据的定期备份机制,并做好权限隔离,防止勒索软件对备份数据进行加密;_海康威视综合安防管理平台任意文件上传漏洞

socket.io emit callback调用探秘-程序员宅基地

文章浏览阅读436次。socket.iohttps://socket.io/https://socket.io/docs/What Socket.IO isSocket.IO is a library that enables real-time, bidirectional and event-based communication between the browser and the s..._socket.io callback

Linux安装mpp数据库(Greenplum 集群部署)_用linux连接mpp数据库插入数据-程序员宅基地

文章浏览阅读1.3k次。下载greenplum-db-5.23.0-rhel7-x86_64.bin安装包个人百度网盘地址:链接:https://pan.baidu.com/s/1YCIo9vS0fSfi6pHwDLL5KQ 提取码:jmr6简单记录一下安装mpp(greenplum)的过程,以及遇到的问题。不喜勿喷简单来说GPDB是一个分布式数据库软件,其可以管理和处理分布在多个不同主机上的海量数据。对于GPDB来说,一个DB实例实际上是由多个独立的PostgreSQL实例组成的,它们分布在不同的物理主机上,协同工作,呈_用linux连接mpp数据库插入数据

docker api未授权导致rce 漏洞修复_docker未授权访问漏洞怎么修复-程序员宅基地

文章浏览阅读1.3k次。docker api未授权导致rce 漏洞修复_docker未授权访问漏洞怎么修复

设计模式-30-中介模式-行为型模式-程序员宅基地

文章浏览阅读673次,点赞30次,收藏10次。现在,我们来学习23种经典设计模式中的最后一个,中介模式。跟前面刚刚讲过的命令模式、解释器模式类似,中介模式也属于不怎么常用的模式,应用场景比较特殊、有限,但是,跟它俩不同的是,中介模式理解起来并不难,代码实现也非常简单,学习难度要小很多。如果你对中介模式有所了解,你可能会知道,中介模式跟之前讲过的观察者模式有点相似,所以,今天我们还会详细讨论下这两种模式的区别。

一新概念3单词积累11-30-程序员宅基地

文章浏览阅读187次。在这里插入图片描述。

随便推点

数据库基础,进阶_数据库进阶知识包括哪些-程序员宅基地

文章浏览阅读223次。名称全称简称数据库存储数据的仓库,数据是有组织的进行存储数据库管理系统操纵和管理数据库的大型软件SQL操作关系型数据库的编程语言,定义了一套操作关系型数据库的统一标准主流的关系型数据库管理系统Oracle 收费昂贵MySQL 免费SQLserverPostgreSQL将一列数据作为一个整体,进行纵向计算概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。目的:保证数据库中数据的正确、有效性和完整性,统一性。约束描述关键字非空约束。_数据库进阶知识包括哪些

layui字体图标 loading图标静止不旋转_layui加载动画不会转圈-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏2次。layui的字体图标库提供了丰富的字体图标,其中还有动态的loading图,但如果按照添加其他图标一样将class样式复制到按钮上,却发现loading图并不会旋转。_layui加载动画不会转圈

SAP 人力资源工资配置项2---工资类型配置_sap人员子类别如何对应工资等级-程序员宅基地

文章浏览阅读5.1k次。sap中使用工资等级管理工资_sap人员子类别如何对应工资等级

郑州大学算法设计与分析实验4-程序员宅基地

文章浏览阅读1.2k次,点赞21次,收藏20次。【代码】郑州大学算法设计与分析实验4。

Unity中使用脚本动态创建Mesh(圆锥体)_unity mesh生成-程序员宅基地

文章浏览阅读420次。再Unity中,使用脚本动态添加Mesh(圆锥体)_unity mesh生成

PuTTY 中文教程 1-程序员宅基地

文章浏览阅读215次。PuTTY 中文教程PuTTY 中文教程更新记录版权声明序言一些基本知识简介安装第一印象,开始登录一台远程主机首次登录一台主机时又看到了中文乱码怎么还是乱码?在 PuTTY 里面怎样选中,复制和粘贴?实时保存会话关于注销登录的一些事情窗口保存..._putty return to normal shell environment

推荐文章

热门文章

相关标签