菜鸟教程小白 发表于 2022-12-13 04:00:23

ios - 带有 .dae 的 SCNNode 静态主体导致问题


                                            <p><p>我在 blender 中建立了一个景观模型,导出为 .dae 并添加到我的 xcode 项目中。</p>

<p>我已经加载了场景,然后将 child (景观网格网格)附加到我的景观节点,这完美加载。</p>

<p>但是,当我将静态物理实体附加到 landscspeNode 时,我的 heroNode 似乎在尝试飞越陆地时撞到了看不见的墙上。</p>

<p>我正在寻找的功能是与我建模的土地的明显碰撞,因此 heroNode 无法飞过土地并被迫在其周围移动。</p>

<p>注意:我没有在 blender 中对 y 轴进行任何转换,xcode 也没有只是简单地将节点围绕 -x 轴旋转 90 度。</p>

<p>编辑:我尝试添加物理形状的代码</p>

<pre><code>landscapeNode.physicsBody = options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

landscapeNode.physicsBody = ];

landscapeNode.physicsBody = ];
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您在为节点创建物理体时没有指定其他选项,则会得到 <a href="https://en.wikipedia.org/wiki/Convex_hull" rel="noreferrer noopener nofollow">convex hull</a>包含该节点的几何形状。</p>

<p>由于您的景观是一个静态物体,您可以使其使用更接近几何形状的凹形。 (请注意,这仅适用于静态实体。)为此,您需要:</p>

<ol>
<li>使用 <a href="https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNPhysicsBody_Class/index.html#//apple_ref/occ/clm/SCNPhysicsBody/bodyWithType:shape:" rel="noreferrer noopener nofollow"><code>bodyWithShape:type:</code></a>创建主体的方法,而不是 <code>staticBody</code>。</li>
<li>对于该方法,您需要传递 <a href="https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNPhysicsShape_Class/index.html" rel="noreferrer noopener nofollow"><code>SCNPhysicsShape</code></a> .使用 <code>shapeWithGeometry:options:</code> 或 <code>shapeWithNode:options:</code> 创建一个。</li>
<li>对于 <em>options</em> 参数,传递包含键 <code>SCNPhysicsShapeTypeKey</code> 和对应值 <code>SCNPhysicsShapeTypeConcavePolyhedron</code> 的字典。</li>
</ol></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 带有 .dae 的 SCNNode 静态主体导致问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/27503183/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/27503183/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 带有 .dae 的 SCNNode 静态主体导致问题