在Unity 2D中动态隐藏游戏对象

时间:2016-06-24 06:57:39

标签: unity5

如何动态地将对象隐藏在统一2D中的其他对象后面?

示例:我的场景中有一个仙人掌资源,希望能够在仙人掌后面放置一个随机数量的收藏品,以便玩家可以看到收藏品。如果可能的话,我也希望能够确定可见度。

http://imgur.com/Fd2AENS

2 个答案:

答案 0 :(得分:1)

如果您正在使用正交相机,则z轴值不会产生影响。正交相机没有任何深度感。你想要操作的是sprite渲染器组件上的排序层属性。

答案 1 :(得分:0)

制作你想隐藏仙人掌子的所有物品。 我假设每个孩子都有一个精灵渲染器组件,因为你正在使用可见的2d对象。

精灵的顺序由“排序顺序”属性确定。所以这里有一段代码,它给所有其他对象一个较低的顺序,所以它们会在仙人掌后面。

SpriteRenderer[] renderers = GetComponentInChildren<SpriteRenderer> ();

for(int i =0 ; i< renderers.Length; i++){
    renderers [i].sortingOrder = -1 * i;
}

此代码更改了子项的顺序,但是如果要使它们不可见,请为每个子项使用transform.enabled = false

相关问题