Incisor遮罩功能问题:两个GraphicObject遮罩未按预期生效
Incisor遮罩功能未生效:仅显示遮罩对象,无预期遮罩效果
核心问题是你只完成了遮罩对象的创建与标记,但没有将需要被遮罩的目标对象(this.whiteBox)关联到这个遮罩实例——这是遮罩流程里最关键的遗漏步骤。
问题原因
makeMasker()方法只是把当前GraphicObject标记为可作为遮罩的载体,但它不会自动将场景中其他对象纳入遮罩范围,必须手动指定哪个对象要应用这个遮罩规则。
修正方案
在现有代码中添加一行,调用被遮罩对象的setMask()方法,将其绑定到对应的遮罩实例上:
class ProjectMain { init() { this.whiteBox = new GraphicObject( nc.graphicAssets.WhiteBox, nc.mainScene, "WhiteBox" ); this.masker = new GraphicObject( nc.graphicAssets.WhiteBox, nc.mainScene, "Masker" ); this.masker.position.x = -40; this.masker.position.y = -40; this.masker.makeMasker( nc.masks.MainMask ); // 新增:将目标方框绑定到遮罩,启用遮罩效果 this.whiteBox.setMask( nc.masks.MainMask ); } }
额外优化(可选)
如果希望遮罩对象本身不显示在画面中,只起到遮罩作用,可以添加一行隐藏遮罩:
this.masker.visible = false;
内容的提问来源于stack exchange,提问作者Ginter
相关产品推荐
相关产品推荐

