有没有办法让对象变得不透明?

时间:2015-02-21 17:09:38

标签: c# unity3d

有没有办法让对象变得不透明?我试过这个:

renderer.material.color = new Color(255f, 255f, 255f, 0.5f);

但它只是使项目变白并且纹理不再显示。

我尝试过使用透明/凹凸镜面反射,但这会使对象过于透明,即使我当时并不希望对象透明。

我想要完成的是让它在角色选择屏幕中看起来像玩家处于非活动状态时是透明的。当玩家按 A 时,他们将完全不透明,然后可以选择他们的玩家。

编辑模式:

Editor

播放模式:

Play

1 个答案:

答案 0 :(得分:1)

所以我想在此向你指出一些事情。首先,Unity的Color类基于0到1的值。因此你的RGB中有255f,这就是你现在所期望的,但实际上它只是在构造函数中将它们设置为1。所以如果你想要将来的颜色做:

new Color(rValue/255f, gValue/255f, bValue/255f, aValue/255f);

当你在这里时,只是想指出这一点。

所以对于你的实际问题,你正在用这行代码做什么就是说,把这个对象附加的材料变成白色(如果我错了1,1,1是白色,有人请评论)和半透明。但这不适用于对象本身,仅适用于附加的材料。

因此,如果您想要将平台修改为透明,我的建议是将您想要的透明和非透明材料存储在您正在更改正在使用哪一个的脚本上。然后在代码中,而不是更改颜色,而是更改渲染器使用的材质。

希望这有帮助。