这是2D游戏。
我正在尝试移动另一个对象内的对象,使其一旦超出容器对象边界就消失(就像在Web开发中,具有属性 overflow <的 div / strong>设置为隐藏)。
注意:我可以移动对象,这不是问题。但是我不能使父对象表现为容器。
有关说明,请参见摘要。
.blue {
width: 400px;
height: 400px;
background: blue;
position: relative;
}
.red {
width: 200px;
height: 70px;
background: red;
position: relative;
left: 50px;
top: 50px;
overflow: hidden;
}
.yellow {
width: 20px;
height: 20px;
background: yellow;
position: relative;
left: 75px;
top: 20px;
}
<div class="blue">
<div class="red">
<div class="yellow"></div>
</div>
</div>
蓝色方块代表场景。红色矩形是容器对象。黄色正方形是一个嵌套对象。我要达到的目的是:向上移动黄色正方形,直到不再位于红色矩形的可见区域内而看不到它。
不幸的是,尽管黄色嵌套在红色矩形对象中,但每次向上移动时,黄色正方形对象仍在场景中可见(蓝色正方形)。
我是一个整体的JR,我知道这个问题真是愚蠢,但是我还没有找到(或者至少是我认为的)关于如何解决这个问题的答案。
答案 0 :(得分:1)
答案 1 :(得分:1)
如果是2D,请使用精灵蒙版。如果使用3D,我认为如果使用多台摄像机,您可以实现这一目标。创建另一个仅渲染红色和黄色正方形的相机。然后将相机尺寸调整为红色方形。
答案 2 :(得分:0)
您好,您尝试过Collider2D吗?碰撞器具有isTouching功能,因此您实际上可以 检查黄色框是否在红色框内。如果他们不触摸,可以通过禁用渲染器
使其消失gameobject.getCompponent<Renderer>().enabled = false;
这里是对该方法的引用: https://docs.unity3d.com/ScriptReference/Collider2D.IsTouching.html