unity 修改组件颜色的方法

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,644评论 0 8
  • 111. [动画系统]如何将其他类型的动画转换成关键帧动画? 动画->点缓存->关键帧 112. [动画]Unit...
    胤醚貔貅阅读 13,170评论 3 89
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,776评论 1 4
  • 初夏的五月,带着如火如荼的激情;深圳返岗“名著导读”培训,携一缕墨香如约而至。留固一中、八里营初中、大寨二中和赵营...
    改变自己369阅读 411评论 0 3
  • 于闹市中寻一僻静之处 约三两人 晒晒太阳 品品茶 时光几天这样悄悄走过 岁月静好 如此便好
    严锦城阅读 206评论 0 0