C# Unity2D隐藏edgecollider定义的形状外部的所有内容

C# Unity2D隐藏edgecollider定义的形状外部的所有内容,c#,unity3d,C#,Unity3d,我有一个由edgeCollider定义的二维多边形。有没有一种方法可以隐藏外形之外的所有东西,而只显示里面的东西 我试着使用天空盒和灯光。我想制作一个面具(但我不知道如何制作这样的面具) 有没有办法只显示由“边缘碰撞器”定义的形状内部的内容?使用碰撞器触发事件如何? 将此多边形设置为检查器中edgeCollider2D组件中的触发器。然后可以使用碰撞器OnInterTrigger2D 您的游戏对象将被禁用,直到此edgeCollider与中发生碰撞。然后禁用游戏对象OnExitTrigger2D

我有一个由edgeCollider定义的二维多边形。有没有一种方法可以隐藏外形之外的所有东西,而只显示里面的东西

我试着使用天空盒和灯光。我想制作一个面具(但我不知道如何制作这样的面具)


有没有办法只显示由“边缘碰撞器”定义的形状内部的内容?

使用碰撞器触发事件如何? 将此多边形设置为检查器中edgeCollider2D组件中的触发器。然后可以使用碰撞器OnInterTrigger2D

您的游戏对象将被禁用,直到此edgeCollider与中发生碰撞。然后禁用游戏对象OnExitTrigger2D

如果你想把它限制在一定数量的对象上。将图层设置为仅隐藏/显示这些对象

void OnTriggerEnter2D(Collider2D other) {
     if(other.gameObject.layer == "hiddenObject"){
         other.gameObject.enable = true;
     }
}
然后在OnTriggerExit2D上执行相反的操作

我不确定你想要的效果。因此,另一种解决方案可能是后处理着色器

不过,我只能对此进行高层次的描述

您将获取最终的屏幕图像纹理和多边形的当前位置,然后将屏幕纹理中的像素添加到多边形纹理并输出该纹理。(此着色器必须已存在)

但你想要的是这些的倒数

你想把洞里的东西留下,把外面的东西扔掉

可以在此处下载内置着色器进行编辑

只需找到unity的版本并从下拉列表中选择内置着色器

编辑:“聚光灯!”,使用自定义形状尝试此操作


使用碰撞器触发事件怎么样? 将此多边形设置为检查器中edgeCollider2D组件中的触发器。然后可以使用碰撞器OnInterTrigger2D

您的游戏对象将被禁用,直到此edgeCollider与中发生碰撞。然后禁用游戏对象OnExitTrigger2D

如果你想把它限制在一定数量的对象上。将图层设置为仅隐藏/显示这些对象

void OnTriggerEnter2D(Collider2D other) {
     if(other.gameObject.layer == "hiddenObject"){
         other.gameObject.enable = true;
     }
}
然后在OnTriggerExit2D上执行相反的操作

我不确定你想要的效果。因此,另一种解决方案可能是后处理着色器

不过,我只能对此进行高层次的描述

您将获取最终的屏幕图像纹理和多边形的当前位置,然后将屏幕纹理中的像素添加到多边形纹理并输出该纹理。(此着色器必须已存在)

但你想要的是这些的倒数

你想把洞里的东西留下,把外面的东西扔掉

可以在此处下载内置着色器进行编辑

只需找到unity的版本并从下拉列表中选择内置着色器

编辑:“聚光灯!”,使用自定义形状尝试此操作