C# Unity2D隐藏edgecollider定义的形状外部的所有内容
我有一个由edgeCollider定义的二维多边形。有没有一种方法可以隐藏外形之外的所有东西,而只显示里面的东西 我试着使用天空盒和灯光。我想制作一个面具(但我不知道如何制作这样的面具)C# Unity2D隐藏edgecollider定义的形状外部的所有内容,c#,unity3d,C#,Unity3d,我有一个由edgeCollider定义的二维多边形。有没有一种方法可以隐藏外形之外的所有东西,而只显示里面的东西 我试着使用天空盒和灯光。我想制作一个面具(但我不知道如何制作这样的面具) 有没有办法只显示由“边缘碰撞器”定义的形状内部的内容?使用碰撞器触发事件如何? 将此多边形设置为检查器中edgeCollider2D组件中的触发器。然后可以使用碰撞器OnInterTrigger2D 您的游戏对象将被禁用,直到此edgeCollider与中发生碰撞。然后禁用游戏对象OnExitTrigger2D
有没有办法只显示由“边缘碰撞器”定义的形状内部的内容?使用碰撞器触发事件如何? 将此多边形设置为检查器中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的版本并从下拉列表中选择内置着色器
编辑:“聚光灯!”,使用自定义形状尝试此操作