-
unity lineRender
2020-07-25 01:25:47简单使用 m_ShotLineRender.SetPosition(0, Vector3.zero); m_ShotLineRender....3一个物体只能创建一个LineRender, 要画多条线只能创建多个物体 4material的Shader改为Sprites/Default,否则不能修改颜色。 ... -
Unity使用LineRender实现绘画功能
2020-12-17 05:51:16本文实例为大家分享了Unity LineRender实现绘画功能的具体代码,供大家参考,具体内容如下 老规矩,直接上代码: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; ... -
Unity使用LineRender断笔写字
2020-08-25 20:12:10主要为大家详细介绍了Unity使用LineRender断笔写字效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
Unity LineRender 绘画
2020-05-18 15:02:52Unity LineRender 绘画 老规矩,直接上代码: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class DrawLine_ZH : MonoBehaviour { private GameObject ...Unity LineRender 绘画
老规矩,直接上代码:
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class DrawLine_ZH : MonoBehaviour { private GameObject _Clone; private LineRenderer _Line; int _Number; //带有LineRender物体 [Header("LineRender预制体")] public GameObject _Target; void Update() { if (Input.GetMouseButtonDown(0)) { //实例化对象 _Clone = Instantiate(_Target, _Target.transform.position, Quaternion.identity); //获得该物体上的LineRender组件 _Line = _Clone.GetComponent<LineRenderer>(); //设置起始和结束的颜色 //_Line.SetColors(Color.red, Color.blue); _Line.startColor = Color.red; _Line.endColor = Color.blue; //设置起始和结束的宽度 // _Line.SetWidth(0.2f, 0.1f); _Line.startWidth = 0.2f; ; _Line.endWidth = 0.1f; //计数 _Number = 0; } if (Input.GetMouseButton(0)) { //每一帧检测,按下鼠标的时间越长,计数越多 _Number++; //设置顶点数 //_Line.SetVertexCount(_Number); _Line.positionCount = _Number; //设置顶点位置(顶点的索引,将鼠标点击的屏幕坐标转换为世界坐标) _Line.SetPosition(_Number - 1, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 15))); } //清除绘画 if (Input.GetMouseButtonDown(1)) { GameObject[] _Draw = GameObject.FindGameObjectsWithTag("DarwLine"); for (int i = 0; i < _Draw.Length; i++) { Destroy(_Draw[i]); } } } }
注意添加 预制体 和 材质球:
脚本要搭载:
预制体(可自定义):
预制体材质(可自定义):
最终效果:
暂时先这样吧,如果实在看不明白就留言,看到我会回复的。
路长远兮,与君共勉。 -
Unity3D LineRender画线
2020-12-04 11:01:37LineRender画线LineRender画线
新建空物体,添加LineRenderer组件,作为预制体,后续画线用。
private LineRenderer lineRenderer; private List<Vector3> linePointList; private Vector3[] linePoints; private void Update() { if (Input.GetMouseButtonDown(1))//新建画线 { lineID++; DrawLineInit(lineID); } else if (GameObject.Find("Line"+lineID))//画线 { DrawLine(); } } void DrawLineInit(int id) { GameObject line=(GameObject)Instantiate(Resources.Load("Line"));//新建线条 line.name = "Line" + id; GameObject UICanvas = GameObject.Find("Canvas"); line.transform.SetParent(UICanvas.transform,false);//设置线条的父物体为Canvas lineRenderer = line.GetComponent<LineRenderer>(); linePointList = new List<Vector3>(); lineRenderer.useWorldSpace = false; } void DrawLine() { if (Input.GetMouseButtonDown(0)) { linePointList.Add(Input.mousePosition);//点击一下 添加一个点 linePoints = linePointList.ToArray();//线段点集 lineRenderer.positionCount = linePoints.Length + 1;//设置点数 多设置一个作为活动的mousePosition点 lineRenderer.SetPositions(linePoints); lineRenderer.SetPosition(linePoints.Length, linePoints[linePoints.Length - 1]);//最后一个点设置为 其前一个点 } else if (lineRenderer.positionCount > 1) { //最后一点设置为 鼠标指针点 lineRenderer.SetPosition(linePoints.Length, Input.mousePosition); } }
第一条线右键新建,右键结束并新建,左键画线。
-
AndrewBox_LineRender&TrailRender
2017-02-26 20:33:58针对LineRender和TrailRender的Shader,可以支持修改和定制渲染的方式和颜色。 详细的使用说明可以参考我的博客: http://blog.csdn.net/andrewfan -
LineRender画线,段笔写字,删除
2018-09-15 18:36:31unity利用LineRender组建实现段笔写字,画线,删除等功能 -
LineRender组件绘制平滑曲线连接几个点
2021-01-05 14:54:46LineRender组件绘制平滑曲线连接几个点 文章目录LineRender组件绘制平滑曲线连接几个点项目背景实现方法代码 项目背景 给定一组点,使用 unity3d 中的Linerender组件绘制平滑曲线连接几个点,考虑到 unity 中常用的...LineRender组件绘制平滑曲线连接几个点
项目背景
给定一组点,使用 unity3d 中的Linerender组件绘制平滑曲线连接几个点,考虑到 unity 中常用的贝塞尔曲线只经过首位两个控制点,不经过其余控制点,故采用 Catmull-Rom样条曲线
实现方法
创建一个空物体 Empty
选中Empty,添加组件 LineRender
创建C#脚本 SmoothCurveHandler.cs ,挂在随便一个控制点上,选择参数如图。
代码
SmoothCurveHandler.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class SmoothCurveHandler : MonoBehaviour { [SerializeField] LineRenderer lineRender; [SerializeField] List<Transform> posList; const int countBetween2Point = 20; Vector3[] curvePoints; void Start() { // 为当前物体添加 LineRenderer 组件。 lineRender = gameObject.AddComponent<LineRenderer>(); // 设置材料的属性 //lineRender.material = new Material(Shader.Find("Particles/Additive")); // 设置线段的起点颜色和终点颜色 lineRender.startColor = Color.blue; lineRender.endColor = Color.red; // 设置线段起点宽度和终点宽度 lineRender.startWidth = 0.3f; lineRender.endWidth = 0.3f; curvePoints = new Vector3[countBetween2Point * (posList.Count - 1) + 1]; lineRender.positionCount = curvePoints.Length; } void Update() { CalculateCurve(); lineRender.SetPositions(curvePoints); } Vector3 firstPos, curPos, nextPos, lastPos; void CalculateCurve() { //依次计算相邻两点间曲线 //由四个点确定一条曲线(当前相邻两点p1,p2,以及前后各一点p0,p3) for (int i = 0; i < posList.Count - 1; i++) { //特殊位置增加虚拟点 //如果p1点是第一个点,不存在p0点,由p1,p2确定一条直线,在向量(p2p1)方向确定虚拟点p0 if (i == 0) firstPos = posList[i].position * 2 - posList[i + 1].position; else firstPos = posList[i - 1].position; //中间点 curPos = posList[i].position; nextPos = posList[i + 1].position; //特殊位置增加虚拟点,同上 if (i == posList.Count - 2) lastPos = posList[i + 1].position * 2 - posList[i].position; else lastPos = posList[i + 2].position; CatmulRom(firstPos, curPos, nextPos, lastPos, ref curvePoints, countBetween2Point * i); } //加入最后一个点位 curvePoints[curvePoints.Length - 1] = posList[posList.Count - 1].position; } //平滑过渡两点间曲线(p1,p2为端点,p0,p3是控制点) void CatmulRom(Vector2 p0, Vector2 p1, Vector2 p2, Vector2 p3, ref Vector3[] points, int startIndex) { //计算Catmull-Rom样条曲线 float t0 = 0; float t1 = GetT(t0, p0, p1); float t2 = GetT(t1, p1, p2); float t3 = GetT(t2, p2, p3); float t; for (int i = 0; i < countBetween2Point; i++) { t = t1 + (t2 - t1) / countBetween2Point * i; Vector2 A1 = (t1 - t) / (t1 - t0) * p0 + (t - t0) / (t1 - t0) * p1; Vector2 A2 = (t2 - t) / (t2 - t1) * p1 + (t - t1) / (t2 - t1) * p2; Vector2 A3 = (t3 - t) / (t3 - t2) * p2 + (t - t2) / (t3 - t2) * p3; Vector2 B1 = (t2 - t) / (t2 - t0) * A1 + (t - t0) / (t2 - t0) * A2; Vector2 B2 = (t3 - t) / (t3 - t1) * A2 + (t - t1) / (t3 - t1) * A3; Vector2 C = (t2 - t) / (t2 - t1) * B1 + (t - t1) / (t2 - t1) * B2; points[startIndex + i] = C; } } float GetT(float t, Vector2 p0, Vector2 p1) { return t + Mathf.Pow(Mathf.Pow((p1.x - p0.x), 2) + Mathf.Pow((p1.y - p0.y), 2), 0.5f); } }
-
unity 线渲染器LineRender
2018-04-04 09:13:391.材质球2.起点终点LineRender.Setposition -
unity LineRender用法——画线
2019-09-04 11:22:011、创建一个空物体,加上LineRender组件 2、创建一个材质,用来渲染Line Shader "MyShader/RenderDepth" { Properties { _Color("MainColor",Color)=(1,1,1,1) } SubShader { Pass { ... -
基于Unity3D使用LineRender组件绘制圆线
2020-12-22 15:52:08在此记录一下使用Unity3D 的LineRender绘制线的过程,经过测试LineRender与OpenGL的GL_LINE_STRIP绘制方式一样,因此计算完点之后需要把起始点即为终点,多算一个点才算闭合。 代码如下: using System.... -
U3D利用LineRender制作移动引导
2019-06-03 11:35:23利用LineRender制作移动引导 要实现这个功能,需要用到网格导航,因为射线的点是通过读取网格导航的相关数据获取的,当然,为了得到更好的视觉效果,你还需要修改射线的材质 * public class MoveGuide : ... -
unity关于lineRender平滑画线问题_unity3d5.3.6源码.zip
2018-03-28 10:19:40unity关于lineRender平滑画线问题_unity3d5.3.6源码.zip -
Color mismatch in offline render using electron vs online render on reference-viewer branch
2020-12-27 09:17:28<div><p>For a simple red color plane, I am getting different colors in the rendered output when viewing in the online server vs the output.png produced by offline render via electron. Both rendered ... -
unity3d 线性渲染器 lineRender的简单使用
2018-08-29 22:36:58LineRender用于在3D世界中渲染线段。 首先创建空物体GameObject,添加组件LineRenderer. 添加如下脚本: public GameObject LineRenderGameObject;//GameObject空物体 public LineRenderer lineRender;//... -
unity关于lineRender平滑画线问题
2016-02-01 16:44:49使用lineRender的时候需要在摄像机上加上组件linerender 可以调节粗细颜色之类 可以简单下面方法测试 void Start () { lineRenderer = gameObject.GetComponent(); lineRenderer.SetVertexCount(5); } ... -
unity怎么用LineRender实现荧光棒的效果
2018-08-22 06:38:34期望效果如下图  (这个是Volumetric Lines插件中的场景,用unity自带的LineRender要怎么实现类似的效果) -
Unity3D 画笔实现系列01-LineRender
2017-12-03 12:42:00前言:刚从Python转到U3D时,第一个项目涉及到画线,刚开始想那还不简单吗,不就是获取位置后着色吗,H5中...Unity画线最简单的实现方法LineRender组件: LineRender实现起来比较简单, 1 public class line... -
Unity LineRender 与 Trail Renderer 组件使用指南
2018-09-17 09:09:58在物体上创建Line Render 组件 将该组件的position属性的1,2两个参数设置为和物体一致 //比较常用的是设置LineRenderer的位置 Renderer temp = gameObject.GetComponent&amp;lt;LineRenderer&... -
【Unity3D】Unity3D LineRender组件的研究
2018-06-28 10:42:53发现网上很多教程都是如何用LineRender组件画线,但是这个组件还有很多其他的功能属性也是很有趣的,下面就让我们来看看吧 用途 LineRender组件主要的用途就是画线,将这个组件加载到对象上,然后设置路径,跟线的... -
基于unity line render的五维属性雷达图效果
2019-06-06 17:45:04挂在带有LineRender的GameObject上就可以了 using System.Collections; using System.Collections.Generic; using UnityEngine; [ExecuteInEditMode] public class AttrLine : MonoBehaviour { [Range(0, 1)] public... -
Android | Line render error
2020-12-30 03:42:33ve problems with Lines when I create Line using Map.addMarker(). <p>Large line: If line is large and I do zoom in the lines disappear. <p>Small line if line is small and I do zoom in the line ... -
Unity LineRender和TrailRender渲染原理(Mesh)
2020-07-29 14:58:521.LineRender 今天利用画线组件实现屏幕画线时,突然想看下画出线的线框,打开在Scene视窗打开线框(Wirefame)模式,线框如下 线渲染器有自己的渲染算法,会自动朝向相机方向,盲猜lookat().滑稽。 利用Mesh实现... -
unity3D LineRender的使用:插值移动终点
2015-06-06 18:21:11添加LineRender组件,添加材质,让其可以正常显示 把line预设保存在Assets/Resources目录中 接下来创建一个LineRenderTest.cs脚步,挂到摄像机上。 脚本如下: using UnityEngine; using System.Collections; ... -
Unit3D利用LineRender断笔写字功能实现 版本为2018.1.
2018-05-17 17:59:10二、创建LineRender对象新建一个空物体,然后添加LineRender组件,并设为预制体,然后删除此物体,只保留预制件。三、建立背景创建一个Quad,在创建一个黑色的材质球,添加到Quad上,把Quad的sizd属性设为10.10.10,...
收藏数
10,310
精华内容
4,124
-
为解决cpu与主存的速度匹配可采用什么
-
(新)备战2021软考信息安全工程师顺利通关套餐
-
Java学习路线,好的学习路线和好的方法,能让我们少走些弯路
-
21年新接口自动化测试视频postman教程 零基础接口测试
-
【数据分析-随到随学】Tableau数据分 析+PowerBI
-
Android Dialog 使用 ConstraintLayout 约束布局宽度异常原因
-
如何实现Envoy 动态配置一个简单的控制平面
-
软件工程清华大学P1-P19
-
uni-app实战专题
-
smzy_idapro.rar
-
MFC开发简单聊天程序
-
9000题库-下.iso
-
集合类
-
一个清除windows文件PE头中的垃圾字节来缩短PE文件大小的演示程序。很好的说明了PE结构中无用的部分。学PE结构的朋友可以.zip
-
【数据分析-随到随学】Mysql数据库
-
Mybatis2
-
三维地图GIS大数据可视化
-
转行做IT-第1章 计算机基础
-
一个很不错的visual c++ vc内存池的源码,本人在项目中使用.很有价值.zip
-
【Dubbo】配置详解 --标签、配置项、使用建议