如何禁用子节点SKEmitterNode的触摸响应?附SKSpriteNode创建代码
禁用SKEmitterNode的触摸响应解决方案
嘿,这个问题处理起来超简单!要让你的SKEmitterNode子节点不响应触摸,只需要修改它的isUserInteractionEnabled属性就行啦。
SpriteKit里的所有节点(包括SKEmitterNode)都通过isUserInteractionEnabled属性控制是否接收触摸事件。默认情况下,SKEmitterNode的这个属性是true,会拦截触摸事件;我们把它设为false后,触摸就会直接穿透到它下方的节点(比如你的父节点SKSpriteNode)。
假设你已经创建了SKEmitterNode并将其添加为onObject的子节点,只需要添加这一行代码:
// 假设你的发射器节点变量是emitterNode emitterNode.isUserInteractionEnabled = false
如果是在创建发射器节点时直接设置,代码可以写成这样:
if let emitterNode = SKEmitterNode(fileNamed: "你的发射器配置文件.sks") { // 提前禁用触摸响应 emitterNode.isUserInteractionEnabled = false onObject.addChild(emitterNode) }
这样设置后,粒子发射器就不会再干扰父节点或其他节点的触摸交互啦,是不是很方便?
内容的提问来源于stack exchange,提问作者Sjero Markus
相关产品推荐
相关产品推荐

