【Unity3D日常开发】修改游戏对象的材质颜色
发布日期:2021-06-30 11:40:05
浏览次数:2
分类:技术文章
本文共 2205 字,大约阅读时间需要 7 分钟。
推荐阅读
一、前言
前段时间比较忙,好久没更新博客了,感觉技术都下降了,还是要坚持输出呀。
孔子曰:“学而不思则罔,思而不学则殆”,不能光学习,还要学会思考,要能用起来。 将自己学到的东西记录下来,这样会让学习更加有效。二、修改游戏对象的材质颜色
2.1 支持修改的材质
首先,你的材质要支持颜色渲染通道,如果都没有颜色通道,再怎么改变都没有用的。
默认的Standard是支持颜色通道的:
其他支持颜色通道的Shader: Sprites/Default Sprites/Diffuse Unlit/Color Legacy Shaders/Diffuse2.2 修改材质颜色代码
如果游戏对象只有一个材质球,可以这么写:
using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { m_Cube.GetComponent().material.color = Color.red; }}
如果游戏对象有多个材质球,可以这么写:
using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { m_Cube.GetComponent().materials[0].color = Color.red; m_Cube.GetComponent ().materials[1].color = Color.blue; }}
也可以直接设置材质球的颜色,但是不推荐:
using UnityEngine;public class test1 : MonoBehaviour{ public Material m_Material; void Start() { m_Material.color = Color.red; }}
因为这样写会直接修改资源中材质球的颜色,会导致所有使用这个材质球的物体都改变颜色,而且是永久性修改,在程序结束也不会修改回来。
思考
那么为什么,使用GetComponent().material.color就没有问题呢:using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { m_Cube.GetComponent().material.color = Color.red; }}
因为Unity在我们使用GetComponent().material.color的时候做了一些事情:
没错,这是一个实例化的材质球,保存在内存中,程序结束,这个材质球也会被销毁了,就不会改变资源中材质球的颜色了,也不会影响其他使用这个材质球的物体了。三、Shader为Particles时修改材质颜色
当Shader为Particles时可以这么修改材质颜色:using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { Color color = new Color(1f, 0f, 0f, 1f); m_Cube.GetComponent().material.SetColor("_TintColor", color); }}
四、修改材质的透明值
这么写是不对的:
可以这么写:using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { m_Cube.GetComponent也可以这么写:().material.color = new Color(1,0,0,0.5f); }}
using UnityEngine;public class test1 : MonoBehaviour{ public GameObject m_Cube; void Start() { Color c = m_Cube.GetComponent效果一样。().material.color; c.a = 0.4f; m_Cube.GetComponent ().material.color = c; }}
结束,谢谢观看。
转载地址:https://itmonon.blog.csdn.net/article/details/109668971 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月15日 23时33分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于java的网络招聘系统的设计与实现
2019-04-30
基于java的文章发布系统的设计与实现
2019-04-30
基于java的物资管理系统
2019-04-30
基于java的项目管理平台
2019-04-30
基于java愤怒的小鸟游戏的设计与实现
2019-04-30
基于jsp码头船只出行及配套货柜码放管理系统的设计及实现
2019-04-30
旅游网站的设计与实现
2019-04-30
基于java的ssm框架的论坛源码
2019-04-30
基于java的web聊天系统
2019-04-30
基于java的俄罗斯方块的设计与实现
2019-04-30
基于java的魂斗罗的设计
2019-04-30
基于java的网页内容管理
2019-04-30
基于java的学生管理系统
2019-04-30
基于java网盘搜索的设计与实现
2019-04-30
基于SSM的仿小米商城源码
2019-04-30
基于SSM的医院人事管理系统的设计与实现
2019-04-30
基于SSM框架的超市管理系统
2019-04-30
2021-03-03
2019-04-30
基于ssm的汽车租赁系统的设计与实现
2019-04-30
基于SSM的酒店管理系统的设计与实现
2019-04-30