我需要将粒子发射器效果在两个位置上重复显示(用于分屏目的),我想知道是否有人知道如何实现这一点。我的目标是在iOS 10上运行。以下是我迄今为止尝试过的方法:
另外一件事是我可以预渲染发射器,但如果我采用这种方法,将会占用大量纹理内存。
编辑:为了帮助可视化,我画了一张图片,白色边框显示分屏位置,黑色边框显示场景包裹位置。
。
截至目前,Player 1和Player 2都在原始场景中。
- 将
targetNode
赋值给SKNode
,然后每帧复制SKNode
:在iOS 10上不起作用。 - 将粒子发射器分配给
SKNode
,并使用view.textureFromNode
生成纹理以便每帧进行复制:太慢了,需要1/120帧的时间。 - 将自定义操作分配给粒子节点,将节点复制到另一个
SKNode
中:在iOS 10上不运行动作。 - 复制现有的粒子节点,希望种子不是随机的:种子是随机的。
- 尝试在更新时复制粒子发射器:粒子只会在原点产生。
- 尝试使用
SKReferenceNode
:仅是发射器的副本,单独运行。
另外一件事是我可以预渲染发射器,但如果我采用这种方法,将会占用大量纹理内存。
编辑:为了帮助可视化,我画了一张图片,白色边框显示分屏位置,黑色边框显示场景包裹位置。
![enter image description here](https://istack.dev59.com/coFcg.webp)
截至目前,Player 1和Player 2都在原始场景中。
第二位玩家正在向右走,即将撞上世界边缘以将其移动到世界的左侧,但他尚未撞上。因此,我需要复制发生的场景,以视觉上看起来像一个场景。由于玩家1仍在原始场景中,原始发射器需要保持原样。玩家2将不得不看到副本中发生的相同图像,否则一旦他穿过边界,将会出现“故障”效果,包围的幻象就消失了。
最终结果:
我们只是说了“算了”,玩家1和玩家2将查看不同的发射器节点,我们只需在需要时将发射器附加到每个玩家的摄像机上。
SKVideoNode
。我正在测试使用它与将所有粒子节点帧保留在内存中时的性能差异。 - Knight0fDragon