栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity 记录LineRenderer动态设置颜色

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity 记录LineRenderer动态设置颜色

         最近,在使用unity的线渲染时需要修改线渲染的颜色,然而直接将(仅修改颜色的)材质赋值给线渲染组件,线颜色会较深(如图1-1中,左侧为赋值蓝色颜色材质的cube,右侧为赋值蓝色颜色材质的LineRenderer,可以看出线并没有显示出左侧cube同样的颜色)。尝试修改赋值给线渲染的材质,材质的Shader设置为Unlit/Color并修改MainColor的颜色(如图1-2),将修改的材质赋值给线渲染组件即可显示正确的颜色(如图1-3)。

图1-1

图1-2

图1-3

动态为LineRenderer组件设置颜色代码如下:

​
using UnityEngine;

public class TestLR : MonoBehaviour
{
    public Material sourceMat;//用于代码新建材质的材质资源
    void Start()
    {
        TestLineRenderer();
    }

    private void TestLineRenderer()
    {
        GameObject goLineRender = new GameObject();//新建空对象,用于添加线渲染组件
        LineRenderer lineRenderer = goLineRender.AddComponent();//为新建的对象添加线渲染组件
        lineRenderer.startWidth = 0.01f;//设置线渲染组件的起始宽度
        lineRenderer.endWidth = 0.01f;//设置线渲染组件的结束宽度
        lineRenderer.numCapVertices = 20;//设置线渲染的方向上的圆滑度
        lineRenderer.numCornerVertices = 20;//设置线渲染的拐角上的圆滑度
        Material mat = new Material(sourceMat); //新建材质;
        mat.shader = Shader.Find("Unlit/Color");//设置材质的shader类型
        mat.color = new Color(0.9f, 0.9f, 0f, 1f);//为材质的颜色赋值(rgba通道)
        lineRenderer.material = mat;//将创建的材质赋值给线渲染组件
        lineRenderer.positionCount = 2;//设置线渲染由2个点组成
        lineRenderer.SetPosition(0, Vector3.zero);//设置第一个点(0,0,0);
        lineRenderer.SetPosition(1, Vector3.one);//设置第二个点(1,1,1);
    }
}

​

用于记录LineRenderer动态设置颜色代码,便于以后需要时查询。 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号