原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/jishutiandi/youxikaifa/2019/0404/443.html
Unity中lineRenderer的运用
LineRenderer线渲染器主要是用于在3D中渲染线段,固然我们常州软件技术培训也能够运用GL图像库来渲染线段,但是运用LineRenderer我们能够对线段停止更多的操作,例如:设置颜色,宽度等。在这里要留意LineRenderer渲染出的线段的两个端点是3D世界中的点,即他是属于世界坐标(World Point)中的。下面我们就来看下lineRenderer的运用。
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)会产生什么样的效果呢?那就是我们常州微信小程序开发拖动鼠标就能够持续的渲染线段了。
上篇:上一篇:没有了
下篇:下一篇:Unity render优化qa