scenekit - 在 Scenekit 中,摩擦系数如何在一对材料之间应用
问题描述
我正在学习SceneKit
,在物理部分,可以选择设置任何物体的摩擦力。我对此有两个问题
- 这是怎样的摩擦?(静态或动态)
- 给定 2 个对象系统的摩擦系数,我如何
friction
在 SceneKit 中分配属性值以使其与现实世界的物理相匹配
例如,对于保龄球游戏,Ball 和 Lane 之间的摩擦系数为 0.12,我应该为 SceneKit 中的 Ball 和 Lane 分配什么值,因为没有设置静态和动态摩擦以及设置 2 个对象系统之间的摩擦的选项。
我可以在 0 和 1 之间为 Ball 分配摩擦力,但它代表什么,因为根据物理摩擦力只能在一对对象之间计算,而不是单个对象
编辑1
我知道我必须通过跟踪和错误设置值,但我想知道如何SceneKit
解决这些值。例如,在统一中,他们在 2 种材料(平均值、最大值、最小值、乘法)之间提供了 4 个选项
考虑 2 个物体 A 和 B,它们的摩擦值由 0.1 给出,然后 0.2
μAB = 0.1 (minimum)
μAB = 0.2 (maximum)
μAB = 0.15 (average)
μAB = 0.02 (multiply)
请参阅此链接https://docs.unity3d.com/Manual/class-PhysicMaterial.html
解决方案
尝试对球道(墙壁和地板)使用静态,对球使用动态。您仍然可以为每个设置其他属性。不过还有很多事情要做——质量、重力、滚动摩擦、阻尼等。
摩擦力分配给物体本身,并在物体相互碰撞或滚动/摩擦时计算。
抱歉,我不知道要使用的确切数字——最好的猜测是因为它们都是光滑的表面,所以数字应该非常接近。您必须关注很多事情,因此我将从默认值开始并从那里进行调整。经过一系列的尝试和错误,我所做的是将一些 UIKit 控件覆盖在 scenekit 的顶部以动态调整物理体属性并重复我想要测试的动作 - 然后我调整属性直到我得到行为我想了。
推荐阅读
- google-maps - 谷歌地图 JavaScript 街景错误
- scala - Scala Anorm 查询异常处理
- angular - Leaflet MarkerCluster removeOutsideVisibleBounds 不起作用
- c# - C# WPF - 类的数据绑定 ObservableCollection 的组合框
- python - 程序没有在python中打印结果就符合要求
- apache-spark - 从数据框中动态获取列,列名将出现在变量中
- python - 尝试学习json
- c# - 修改结构变量
- visual-foxpro - Windows 10 1803 的 VFP 网络问题
- reactjs - 如何将其孩子接受的仅限父母的道具传递给父母?