Xcode 粒子发射器编辑器不使用〜ipad 图像?

Posted

技术标签:

【中文标题】Xcode 粒子发射器编辑器不使用〜ipad 图像?【英文标题】:Xcode Particle Emitter Editor not using ~ipad images? 【发布时间】:2017-03-24 02:31:13 【问题描述】:

我们为 iPhone 和 iPad 提供不同的图像,但 Xcode 中的粒子发射器编辑器似乎只使用 iPhone 图像——即使在 iPad 设备上也是如此。

我们还尝试在代码中更改纹理,如下所示:

emitterNode.particleTexture = SKTexture(imageNamed: "Test.png")

我们有一个名为“Test@2x~ipad.png”的图像。这是图片的 iPad 版本。

iPhone 版本命名为“Test@2x.png”。

SKEmitterNodes 无法为不同的设备自动使用不同的图像,还是我们做错了什么?

【问题讨论】:

@matt 是的,这是可能的。只是想看看是否有一种不那么骇人听闻的方法,这意味着全部来自粒子编辑器(因为其他一切都由粒子编辑器控制)。 【参考方案1】:

不要调用SKTexture(imageNamed: "Test.png"),而是调用SKTexture(image: UIImage(named: "Test"))。对UIImage(named:) 的调用将遵守捆绑资源命名约定。

【讨论】:

所以 SKTexture(ImageNamed: "Test.png") 不应该遵守捆绑资源命名约定?感谢分享! 不知道有没有。但我知道UIImage(named:) 可以! 很公平,将尝试这种方法,看看它是否有效!再次感谢。 不幸的是这不起作用......还有其他建议吗?新图像的纹理大小打印正确,但粒子的纹理大小似乎与粒子的原始图像/纹理的大小一致。换句话说,图像本身会发生变化,但大小不会。 啊,是的,尺寸。我记得,您不会将 2x 图像用于发射器。是这个问题吗?【参考方案2】:

这是答案,但自从 @matt 提供帮助后,他就给了分数。

不幸的是,Xcode 粒子编辑器似乎无法通过 ~ipad 命名约定自动识别 iPad 图像。

解决方案是在代码中指定纹理,但你也必须像这样更新粒子大小:

            let texture = SKTexture(imageNamed: "Test.png")
            emitterNode.particleTexture = texture
            emitterNode.particleSize = texture.size()

【讨论】:

以上是关于Xcode 粒子发射器编辑器不使用〜ipad 图像?的主要内容,如果未能解决你的问题,请参考以下文章

(转载)(官方)UE4--图像编程----粒子发射器技术指南

将背景图像添加到 ScnScene

从 SKEmitterNode 动画粒子

Unity的粒子系统(二)

unity粒子系统怎么让条形贴图以中心向外360度发射?

Xcode Ipad 模拟器背景图像拉伸