HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用重力使SCNNode掉线?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个SceneKit设置,其中有一个Sphere,它被设置为动态体.

我能够运行应用程序并看到球体落在静态车身底板上.

我想@L_450_3@的是设置场景,以便最初不会下降.

然后当一个函数运行时我希望sfere放弃.

什么是突然制作场景的正确逻辑/步骤(可能是按下按钮或其他东西)掉落球体?

我也尝试将球体设置为质量0然后将质量设置为100,但它不会导致掉落…

解决方法

Mass doesn’t control how fast something falls.在现实世界中也是如此,但在采用快捷方式而不是模拟现实世界物理学的每个细节的模拟中更是如此. (可悲的是,iOS设备仍然没有cpu能力来解释地球的旋转参系,你的球体与任何特别靠近它的身体之间的范德瓦尔斯吸引力,将三角形原子保持在一起的强大力量,等等.在SceneKit中,重力只是特定方向上的恒定加速度.

将质量设置为零并将其切换为其他东西会干扰静态/运动和动态体之间的区别……所以不要这样做.

As @mnuages notes,当您希望它受物理影响或完全不受物理影响时,您可以在球体中添加/删除物理体.

但是如果你想保留球体物理体的原因还有其他原因 – 比如在它开始下降之前允许其他物体与它发生碰撞?您可以使用以下几种方法

>将球体damping设置为1.0.
>将球体velocityFactor设置为零(至少在重力方向上).

当其他东西击中它时,这两个都将阻止球体移动.如果你想让球被撞倒,但不受重力的影响,最好的办法就是切换物理场的场景引力:

>将scene.physicsWorld.gravity设置为SCNVector3Zero.
>将使用linearGravityField构造函数创建的SCNPhysicsField添加到场景中,并设置其方向和强度以获得所需的重力行为.
>在球体和重力场上设置categoryBitMasks,使得该场影响其他物体但不影响球体.

无论您使用哪种方法,都可以在想要“turn gravity on”球体时更改它们:减小阻尼,重置veLocityFactor,或更改球体或重力场的categoryBitMask.

大佬总结

以上是大佬教程为你收集整理的ios – 使用重力使SCNNode掉线?全部内容,希望文章能够帮你解决ios – 使用重力使SCNNode掉线?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。