UNITY游戏开发

unity 修改组件颜色的方法

2017-08-11  本文已影响55人  suxsho_枫2

遇到了个坑爹的问题,我在想在游戏里写个功能,大概就是玩家进入一个区域内,整体改变场景的透明度,离开某个区域恢复到最初的透明度。

实际上方法很简单的,只是在搜索教程的时候,大家都教的是

gameObject.GetComponent.().material.color.a = 0.5;

这样只能改一个物体的颜色,不能改变所有的。

实际上有个非常简单的办法。(这里用JS语句来写,实际上改成C#也是差不多的)

var  mat : Material;    //设置一个Material

function Start()

{mat.color.a = 0.0;}   //改成全透明

这样,就可以把整个场景所用的材质球全部改成透明度为0(即隐藏)

唯一的缺点是,这里的改动会在项目运行时保存,所以尽量少改动,除非有我这种游戏设计所需的脑洞不得不做才改之。



2018-3-21补充  如何更改sprite的颜色

XXX.GetComponent().color = new Color(0.5f, 0.5f, 0.5f, 0.5f);  4个参数代表的是RGBA,范围是0-1

上一篇下一篇

猜你喜欢

热点阅读