unity使用line renderer画线

unity使用line renderer画线

标签: unity3dline renderer画线
  18230人阅读  评论(0)  收藏  举报
  分类:
unity3d(9) 
任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起来就是我们须要的无规则曲线~那么在3D 的世界中我们须要知道 X Y Z 三个点来确定一条3D线段。
 
首先先使用Unity编辑器的方式来添加一条线~
 Unity -> GameObject -> Create Empty 创建一个空的对象,我命名为line。然后点击 Component -> Miscellaneous -> Line Renderer 给line添加一个线渲染器的属性,Line Renderer是非常中的属性,下面我会详细的说明。
    
 
Create -> Material 创建一个材质,做来这个线段的贴图,下面我们看看Line Renderer的一些重要参数。
Cast Shadows: 是否投射阴影。
Receive Shadows: 是否接收阴影。
Materials :设置材质,这里可以设置多个材质, line就是上面我们创建的材质,这里我给line这个材质涂上了红颜色。
Positions:这个属性就比较重要了,它是专门设置线段在3D 世界中的点的坐标,size 设置点的数量 为3 那么将会有3个点,Element 0   Element 1 Element 2    这三个点将确定这条曲线分为两段,第一段是(0,0,1) 到  (0,0,2) ,第二段是 (0,0,2) 到(0,0,4)。
 
 
Paramerters 
StartWidth :设置起点的宽度  
EndWidth:  设置终点的宽度 ,这两项数值默认为1,但是现实起来很宽,所以一般都设置为0.几~ 
Start Color: 设置起点颜色
Start Color: 设置终点颜色
Use World Space 使用世界坐标系
 
大家看看效果,清楚的可以看到曲线分为两部分,第一部分较短 第二部分较长。
 
 
怎么样? 绘制线的方法不难学吧?在已知线段位置的情况下我们可以使用上面的方法去设置这条线,但是如果线段的位置是在游戏过程中动态的产生就得在代码中去动态的去设置。
 
 
创建脚本Main.cs 绑定到摄像头上,运行游戏绘制线的话须要在Main中去拿到line这个对象的实例。这就是一个比较重要的知识点了。
 
一些重要的方法,在编辑器中编辑的一些东西,在代码中也可以做到。
 
LineRenderer.SetWidth(0.1,0.1) ; 设置线段起始点与结束点的宽度 (参数1 为起始点 参数2为结束点)
LineRenderer.SetColor(Color.black,Color.white); 设置线段起始点与结束点的颜色 (参数1 为起始点颜色 参数2为结束点颜色)
LineRenderer.SetVertexCount(5); 设置线段数量。
LineRenderer.useWorldSpace = true; 是否使用世界坐标系,和上面编辑器对应。
 
[csharp]  view plain copy
 
 
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using System.Threading;  
  4.   
  5. public class Main : MonoBehaviour {  
  6.       
  7.     //游戏对象,这里是线段对象  
  8.     private GameObject LineRenderGameObject;  
  9.       
  10.     //线段渲染器  
  11.     private LineRenderer lineRenderer;  
  12.       
  13.     //设置线段的个数,标示一个曲线由几条线段组成  
  14.     private int lineLength = 4;  
  15.       
  16.     //分别记录4个点,通过这4个三维世界中的点去连接一条线段  
  17.     private Vector3 v0 = new Vector3(1.0f,0.0f,0.0f);  
  18.     private Vector3 v1 = new Vector3(0.0f,1.0f,0.0f);  
  19.     private Vector3 v2 = new Vector3(0.0f,0.0f,1.0f);  
  20.     private Vector3 v3 = new Vector3(1.0f,0.0f,0.0f);  
  21.       
  22.     void Start(){  
  23.           
  24.         //通过之前创建的对象的名称,就可以在其它类中得到这个对象,  
  25.         //这里在main.cs中拿到line的对象  
  26.         LineRenderGameObject = GameObject.Find ("line");  
  27.           
  28.         //通过游戏对象,GetComponent方法 传入LineRenderer  
  29.         //就是之前给line游戏对象添加的渲染器属性  
  30.         //有了这个对象才可以为游戏世界渲染线段  
  31.         lineRenderer = (LineRenderer)LineRenderGameObject.GetComponent ("LineRenderer");  
  32.           
  33.         //设置线段长度,这个数值须要和绘制线3D点的数量想等  
  34.         //否则会抛异常~~  
  35.         lineRenderer.SetVertexCount(lineLength);  
  36.           
  37.           
  38.     }     
  39.                    
  40.       
  41.     void Update() {  
  42.           
  43.         //在游戏更新中去设置点  
  44.         //根据点将这个曲线链接起来  
  45.         //第一个参数为 点的ID   
  46.         //第二个 参数为点的3D坐标  
  47.         //ID 一样的话就标明是一条线段  
  48.         //所以盆友们须要注意一下!  
  49.           
  50.         lineRenderer.SetPosition (0, v0);  
  51.         lineRenderer.SetPosition (1, v1);  
  52.         lineRenderer.SetPosition (2, v2);  
  53.         lineRenderer.SetPosition (3, v3);  
  54.   
  55.   
  56.     }  
  57.       
  58. }  
 
通过上面代码的设置,运行游戏,发现全新的一个三角形曲线赫然的映入我们的眼帘,有了上面的方法我们就可以组合的绘制出各种各样的3D 游戏曲线了,这里MOMO使用的是颜色,大家也可以添加一个贴图~
 
 

 

Unity3D 使用LineRenderer自由画线 这是线绘制器的代码 阅读详情

相关推荐

Unity Line Renderer创意应用:从画线到动态地形与能量护盾

在Unity引擎中,渲染管线是图形编程的核心基础,它决定了物体如何从3D模型转换为屏幕上的像素。Line Renderer作为Unity内置的渲染组件,其原理是基于顶点序列生成连续的四边形带状网格,通过控制顶点位置、宽度曲线和材质属性,实现动态几何形状的构建。这一技术价值在于,开发者可以利用轻量级的网格生成器,以较低的性能开销实现丰富的视觉效果,突破了传统“画线工具”的认知局限。在游戏开发与交互式应用场景中,它常用于实现动态路径指示、数据可视化以及程序化动画。本文聚焦于Line Renderer的进阶应用,

weixin_29009669的博客 245

【Unity2022】Unity实现在两个物体之间连出一条线

DrawRope方法通过计算起点和终点之间的距离,并通过设置Line Renderer的位置数目来确定绳子上的点的数量。然后,我们在循环中使用Lerp函数在起点和终点之间插值来获取每个点的位置,最后将其设置为Line Renderer的位置。我们可以使用LineRenderer组件来实现连线,该是Unity中的一个内置组件,它允许我们在场景中绘制线条。同时要为Line Renderer组件的Materials属性提供一个Material,如下图所示,不然默认是没有Material的,所以线条会呈现紫色。

充满智慧的博客 8922

Unity基础,Line Renderer 和射线的应用

Line Renderer (线渲染器): 通过鼠标或者手指在屏幕中画线:        [SerializeField]        private LineRenderer lineRenderer;        private bool firstMouseDown=false;//第一次点击        private bool mouseDown=false; //一直点

王利威的博客 3760

(转)unity使用line renderer画线

原文地址:http://www.xuanyusong.com/archives/561 任何一个无规则曲线它都是有若干个线段组成,及时是圆形它也是又若干个线段组成的,也就是说将若干个线段拼接起来就是我们须要的无规则曲线~那么在3D 的世界中我们须要知道 X Y Z 三个点来确定一条3D线段。   首先先使用Unity编辑器的方式来添加一条线~  Unity -> Game...

weixin_33969116的博客 206

避坑指南:Unity Line Renderer画线不显示?从材质设置到脚本控制的5个常见问题排查

本文详细解析了Unity中Line Renderer画线不显示的5个常见问题,包括材质缺失、点位配置、宽度曲线、脚本控制和空间关系。提供了从基础设置到高级优化的全面解决方案,帮助开发者快速排查和修复问题,提升开发效率。特别针对Unity2022版本中的Line Renderer使用进行了优化建议。

weixin_30571465的博客 428

别再只用Line Renderer画线了!解锁它在Unity UI、地图与可视化中的隐藏用法

本文深入探讨了Unity中Line Renderer组件的高阶创意应用,突破传统画线功能,展示了其在UI设计、小地图系统和数据可视化中的隐藏潜力。通过实用代码示例和性能优化技巧,帮助开发者解锁Line Renderer在动态连接线、流程图、玩家路径追踪和实时图表等场景的创新用法,提升开发效率和视觉效果。

weixin_29006187的博客 237

别再只用Line Renderer画线了!解锁5个在Unity中意想不到的创意用法(附完整脚本)

本文深入探讨了Unity中Line Renderer组件的5种创意用法,从动态激光瞄准系统到魔法特效,展示了其在游戏开发中的多样化应用。通过完整的脚本示例和实用技巧,帮助开发者突破常规思维,提升视觉效果和性能优化。

weixin_29474431的博客 239

避坑指南:Unity Line Renderer画线不显示?从材质缺失到坐标系的5个常见问题排查

本文详细解析了Unity中Line Renderer不显示的5个常见问题及解决方案,包括材质缺失、坐标设置、宽度曲线、相机裁剪和脚本时序。通过实战代码示例和排查技巧,帮助开发者快速解决线条渲染问题,提升开发效率。特别适用于Unity2022版本和Line Renderer组件的使用者。

weixin_34110970的博客 248

unity 根据模型生成碰撞体_在Unity中通过动态画线来实现碰撞(2D)

之前在很多2D游戏中,发现有些小游戏可以通过手指动态在屏幕中绘制线来阻挡小球碰撞。好奇实现方法,所以自己学习了一下,效果还行。参考链接:https://www.bilibili.com/video/BV1Et41177to?from=search&seid=6793552372166214965主要用到的组件是Line Render、dege ColliderBox2D这是实现的效果1、具...

weixin_31424199的博客 1725

Unity中使用LineRenderer进行画线

一:在世界空间下绘制 ——当鼠标按下时,创建一个空物体并添加LineRenderer组件,设置当前线段的各种参数注意需要设置一个LineRenderer的材质Shader(可以接受颜色的,比如Sprites/Default或Legacy Shaders/Particles/Alpha Blended Premultiply),否则控制颜色不起作用 ——当鼠标按下中,将每个点添加到LineRenderer的Positions数组中(LineRenderer会根据Positions数组中的位置依.

L的博客 8829

Unity两个物体之间画线功能实现(Unity Line Renderer组件理解)

Unity两个物体之间画线功能实现(Unity Line Renderer组件理解) 假如要在这两个物体中间画线的话 要做的就是往顶层节点clock上添加组件Line Renderer 添加结束后如图,比较重要的各个属性介绍 Cast Shadows 确定线是否投射阴影,是否应从线的一侧或两侧投射阴影,或线是否只投射阴影而不被绘制...

TurboQ珞珈 6153

【Unity】中用路点画线

/// /// 脚本位置:Path身上 /// using UnityEngine; using System.Collections; using System.Collections.Generic; public class PathTrail : MonoBehaviour { // 是否显示场景信息 public bool ShowTrail = false;

Zok93 4764

FreeRTOS-Plus-CLI在STM32F429上的高效移植与调试技巧

本文详细介绍了如何将FreeRTOS-Plus-CLI高效移植到STM32F429平台,并分享关键的调试技巧。内容涵盖使用HAL库进行底层驱动适配(特别是DMA+IDLE中断方案)、工程集成、自定义命令开发以及常见问题解决方案,旨在帮助开发者快速为嵌入式系统添加强大的命令行调试接口,提升开发与维护效率。

weixin_29224309的博客 334

Unity笔记(九)——画线功能Linerenderer、范围检测、射线检测

写本系列的目的是回顾已经学过的知识、记录新学习的知识或是记录心得理解,方便自己以后快速复习,减少遗忘。这里只记录代码知识。

qq_65078669的博客 1504

OTN设备核心知识速记

本文章为工作笔记,若有错误,还需大家指正。不定期更新。

Hiddengold的博客 2648

ICT模拟零件测试方法--电容测试

通常,小到 100 pF 的电容需要补偿,因为夹具和系统的电容(20 到 50 pF)相对于被测设备的值是显著的。软件在需要补偿的电容测试中加入 comp 选项,而在不需要补偿的电容测试中加入 nocomp 选项。在调试期间,通过向电容语句添加 pc 选项验证您的电容测试。在测试单独的电容时,从测量结果中减去学到的值,然后与测试限制进行比较以决定通过或失败。请注意,如果用于需要补偿的电容测试上的感应总线使用了单独的探针,测量将无效。在测试电容时,应注意两个方面:电容的电阻元件,以及夹具和系统本身的电容。

可可南木的博客 1215

unity 中Line Renderser初始化有额外线段

问题:在使用unity画线时用代码进行初始化时都还没开始画线就自动出一段不想要的线段。 解决方法:在初始化时必须同时初始化端点数。即LineRenderer.positionCount = 0;

weixin_44835762的博客 2174

使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第七讲)

默认是第一种键盘模式,当需要切换模式,进入到ta_event_cb函数修改模式,下面代码以数字模式举例子lv_keyboard_set_mode(kb, LV_KEYBOARD_MODE_NUMBER);在该界面中可以设置键盘文字的大小和文本类型,最下方判断键盘是否支持中文输入(中文输入,当汉字库不够大时,用户点击中文输入会少很多字)。//当LV_USE_KEYBOARD为1时启用虚拟键盘,LV_USE_ZH_KEYBOARD为1时支持中文输入。随后在系统设置界面中点击项目选项,选择显示键盘。

weixin_38828382的博客 1414

Unity Line Renderer组件常用属性

Line Renderer(线条渲染器) 这个组件可以在场景中渲染出"线",比如说:做出手枪瞄准敌人时有红外线的射击辅助线,可以用LineRenderer来完成 不过这个组件对新手还是有些不友好的,看到下面的属性就头大,不过掌握了基本用法之后就没什么难度了,下面讲解一下属性(我用的Unity是2018.3.8版) 首先看一下Positions属性这是画线的核心 俩点(或多个点)连一线,一个...

路漫漫其修远兮 1万+

[OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js-Cornerstone Examples-基石实例-下...

[OHIF-Viewers]医疗数字阅片-医学影像-cornerstone-core-Cornerstone.js-Cornerstone Examples-基石实例-下 CT Image with Window presets This is an example of displaying a ct image along with buttons to set ww/wc pres...

浩秦的博客 1841

DataGrip 2023.3 Windows版激活保姆级教程:从下载脚本到输入激活码,一次搞定

本文提供DataGrip 2023.3 Windows版的完整安装与授权指南,从环境准备到数据库连接管理,再到高效开发技巧与高级功能扩展,帮助开发者快速掌握这一专业数据库管理工具。内容涵盖安装步骤、初始配置、常见问题解决及性能调优技巧,适合数据库开发新手和专业人士。

weixin_30275415的博客 634
上一篇: Unity用ExternalCall实现webplayer读写。
下一篇: UGUI字体模糊问题,另附解决方案
hypercube2
博客等级 码龄18年 23粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值