SCNNode 静态主体与 .dae 导致问题

2024-06-24

我在 Blender 中构建了一个景观模型,导出到 .dae 并添加到我的 xcode 项目中。

我已经加载了场景,然后将子项(景观网格)附加到我的景观节点,这加载完美。

然而,当我将静态物理体附加到 landscspeNode 时,我的 HeroNode 在尝试飞越陆地时似乎撞上了无形的墙壁。

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

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

编辑:我尝试添加物理形状的代码

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithNode: [landscapeScene.rootNode childNodeWithName:@"Grid" recursively:NO] options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithNode: landscapeNode options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

landscapeNode.physicsBody = [SCNPhysicsBody bodyWithType:SCNPhysicsBodyTypeStatic shape:[SCNPhysicsShape shapeWithGeometry: landscapeNode.geometry options:@{SCNPhysicsShapeTypeKey:SCNPhysicsShapeTypeConcavePolyhedron}]];

如果在为节点创建物理体时没有指定附加选项,那么您得到的是凸包 https://en.wikipedia.org/wiki/Convex_hull包含该节点的几何形状。

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

  1. Use the bodyWithShape:type: https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNPhysicsBody_Class/index.html#//apple_ref/occ/clm/SCNPhysicsBody/bodyWithType:shape:创建身体的方法,而不是staticBody.
  2. 对于该方法,您需要传递一个SCNPhysicsShape https://developer.apple.com/library/mac/documentation/SceneKit/Reference/SCNPhysicsShape_Class/index.html。创建一个与shapeWithGeometry:options: or shapeWithNode:options:.
  3. For the options参数,传递一个包含key的字典SCNPhysicsShapeTypeKey以及对应的值SCNPhysicsShapeTypeConcavePolyhedron.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCNNode 静态主体与 .dae 导致问题 的相关文章

  • RxRealm pod 更新后在 RxRealm.swift 中构建编译错误:类型“List”不符合协议“NotificationEmitter”

    这是文件 RxRealm swift 的顶部部分 文件中的其他地方都没有编译错误 也没有 观察 函数 RxRealm extensions Copyright c 2016 RxSwiftCommunity All rights reser
  • 如何存储和访问 Twitter Fabric 登录会话 (iOS/Swift)?

    我可以使用以下 Twitter Fabric 代码通过我的应用程序登录 Twitter let logInButton TWTRLogInButton logInCompletion session TWTRSession error NS
  • 将现有的 UINavigationController 嵌入到新的视图控制器中

    假设我有一个带有导航控制器和多个视图控制器的故事板 一切都很好 直到我尝试添加新的视图控制器并希望将其与现有的关联起来UINavigationController 当我进入编辑器 gt 嵌入 gt 导航控制器时 Xcode会帮助创建一个新的
  • 我们可以传递一个参数来查看某个类中其他类的加载情况或视图将出现吗

    抱歉 如果这不是标准问题 但现在您的解决方案可以帮助我 在我的应用程序中 我有两个类 ClassA and ClassB ClassB其中有一个表视图 我正在使用查询来填充表视图ClassB 但是我必须查询的列名是我从中得到的ClassA
  • Cocoa 的依赖注入框架? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 Titanium Mobile 编译应用程序后 JavaScript 代码会发生什么

    我从 appcelerator 安装了 Titanium 并构建了 KitchenSink 示例应用程序 一切正常 我只是想知道 javascript 代码最终在构建的应用程序中的位置 我用 grep 编辑了 Xcode 项目以及结果应用程
  • 我可以在 iPhone 应用程序上使用 Facebook 身份验证服务器端流程并仍然进行客户端交互吗?

    我有一个使用 Facebook 身份验证来登录用户的网站 它使用 oAuth 2 0 服务器端流程进行身份验证 一切正常 我现在正在为同一网站开发一个 iPhone 应用程序 并希望允许用户使用 FB 身份验证通过 iPhone 应用程序登
  • 自定义 URL 方案

    如何处理自定义 URL 方案以允许一个应用程序定向到另一个应用程序 例如instagram user username someusername它通过用户名将用户直接引导至用户个人资料 我需要创建类似的东西 我已经结账了applicatio
  • Apple 实时照片文件格式

    苹果将 推出现场照片 http www apple com iphone 6s cameras 在 iOS 9 iPhone 6s 中 文件格式记录在哪里 实时照片有两个资源 它们与资产标识符 UUID 作为字符串 绑定在一起 JPEG 这
  • 如何在 AVCaptureVideoPreviewLayer 上添加叠加层?

    我正在使用 Swift 构建一个 iOS 应用程序 它需要二维码扫描仪功能 我已经使用 AVFoundation 实现了 QR 码扫描仪 现在我的捕获屏幕看起来与视频录制屏幕相同 即AVCaptureVideoPreviewLayer显示相
  • WGS84 iOS 上外部 GPS 数据的大地水准面高度高度偏移

    对于我正在编写的应用程序 我们将 IOS 设备与外部传感器连接起来 该传感器通过本地 WiFi 网络输出 GPS 数据 该数据以相对于海拔高度的 原始 格式出现 一般来说 所有 GPS 高度都需要应用与基于当前位置的 WGS84 大地水准面
  • 以编程方式获取 iOS 应用程序中的内存使用情况实时/脏字节(不是驻留/真实字节)

    根据我到目前为止所读到的内容 实际 驻留字节表示分配给应用程序的字节数 包括应用程序不再使用但尚未被操作系统回收的字节数 活动 脏字节是应用程序实际使用且操作系统无法回收的字节 我认为 XCode 调试导航器中显示的数字是 Live Byt
  • 向 UIImageView 添加反射的最有效方法是什么

    我只想要最简单的方法在易于管理的 UIImageView 下进行反射 只需使用iPhone SDK 库中的示例代码 http developer apple com library ios samplecode Reflection Int
  • TDD VS BDD:REST 服务

    我对 TDD 与 BDD 很困惑 TDD 和 BDD 在以下各点上有何不同 开发 先测试用例 再开发 RestService HTTP 不进行休息调用 如果是这样 a 我们是否使用模拟对象仅返回硬编码的 json b 如何处理 REST 调
  • 如何使 TextField 右对齐(尾随)

    我正在努力拥有一个价值文本域以尾随对齐方式显示 正如你所看到的价值34 3以前导对齐方式显示 我确信我错过了一些明显的东西 但我不知道是什么 有任何想法吗 State private var endwert 34 3 var numberF
  • 动态创建的标签被覆盖

    我正在开发一个应用程序 其中我在一个函数中动态添加了 5 个标签 当我回想起相同的函数时 尽管在每次创建时释放了标签 但先前创建的标签上的标签都会被覆盖 for int i 1 i lt array count i CGRect lblfr
  • 使用文本编辑器避免在 SwiftUI 中使用键盘

    我正在尝试重新创建 iOS 笔记应用程序的简单版本 请注意 我是一个十足的 Swift 新手 我当前的问题是我希望我的视图在键盘出现时向上移动 我已经实现了一些代码does这样做 但它有一些讨厌的错误 它首先将视图移动得太高 然后当您开始打
  • 如何在 React Native 应用程序中的 iOS 后台运行 socket.io?

    我在用socket io in an iOS React Native v0 20 app 该应用程序会跟踪我的位置 当我的位置发生变化时 它会向服务器发送一条消息 如果套接字连接丢失 服务器会发送电子邮件通知我 我在后台进行位置跟踪反应本
  • xamarin 中的本机链接错误

    我今天尝试编译我的 xamarin 项目 突然收到以下错误 错误 MT5210 本机链接失败 未定义符号 mono handle global vregs 请验证是否已引用所有必要的框架并且本机库是否正确 链接到 错误 MT5210 本机链
  • 禁用应用程序的启动图像

    我想从我的应用程序禁用启动图像 我已经有一个启动屏幕 因此在应用程序启动时首先显示启动图像 然后显示启动屏幕 我想禁用启动图像并仅在应用程序启动时显示启动屏幕 请帮忙 提前致谢 你不能 因为它会一直保持到你的程序被加载并从applicati

随机推荐

  • 如何为所有用户静默安装 NSIS 可执行文件

    我有一个 NSIS 安装程序可执行文件 我想为所有用户静默安装它 我知道我可以通过 S进行静默安装的参数 问题是安装程序的默认选项是仅为当前用户安装 如何从命令行更改此选项 installer exe S NSIS本身只支持 S NCRC
  • JPA 持久保存与现有实体有关系的新实体

    我有两个实体 ManyToMany关系 让我们举一个常见的例子 学生和课程 我坚持一门新课程与学生列表 如果新学生在列表中 它应该级联新学生 如果存在 它应该更新它 对于新学生和新课程 它工作得很好 但对于新课程和现有学生 我会从数据库中抛
  • 使用循环绘制多个结果

    我想使用 for 循环绘制原始和窗口的结果 10 50 100 全部在一个图中这是我得到的情节 https i stack imgur com wAixM png below is my code Read data in data csv
  • wp7 上的折线图

    我正在使用 amCharts 及其 SerialChart 与 LineGraph 相结合 我已经让它以这种方式工作
  • 返回二维数组中不同值的函数

    我有以下二维数组 var items al bv sd al cc ab cv vv sw al bv sd 我需要一个函数 它将返回一个类似的数组 但具有不同的值 例如 在上面的数组中 al bv sd 发生两次 我希望该函数返回我 va
  • 解决复发问题

    我被给予F 0 X and F i A F i 1 2 B F i 1 C 1000000 for 1 i N 现在给出N A B C and X 如何找到所有N元素有效吗 我需要将这 N 个元素分成 2 个集合 其中最大的元素在第一个集合
  • 从 web 应用程序更新 url 栏以表示当前状态

    我基本上想做杰森要求的事情here https stackoverflow com questions 1457 modify address bar url in ajax app to match current state 用一句话来
  • 自定义 UITableViewCell 不显示故事板中的标签

    在此屏幕截图中 您可以看到我已在 UIViewController 中添加了 UITableView 然后通过在其中添加一些标签来自定义 UITableViewCell 但问题是当我运行应用程序时 所有单元格都是空的 根本没有标签 我不明白
  • jQuery .delay 不延迟

    如何设置元素的 html 等待 2 秒 然后将 html 设置为其他内容 例子 div html clicked delay 2000 html 2 seconds have passed 发生了什么 div 立即得到 2 秒已过去 而不是
  • wpf中基于绑定bool属性的样式对象

    如何使用 wpf 中的 xaml 更改我在 mvvm 设置中要使用的对象的填充颜色 当绑定的属性设置为 True 时 我想将填充颜色更改为红色 该属性称为 IsRound 如果需要的话我会发布代码 我现在不在电脑上 UPDATED 有人可以
  • 压缩图像使其小于 4KB

    我有一个人的图像 我想将其压缩以使其小于 4KB 我需要对其进行压缩 并且即使图像缩小 仍然可以识别人的脸部 这是特蕾莎 梅 Theresa May 142kB 并调整大小为 72x72 并转换为灰度并减少到 2kB图像魔术师在命令行 co
  • C++ 跨平台库

    我对 C 并不陌生 但我从来没有设法了解库 我想将网络 图形和输入类集从主可执行文件中分离出来 以便我可以单独更新它们 而不是将所有代码的重新编译版本作为单个可执行文件发送 这可能吗 我该如何跨平台进行此操作 例如 该过程适用于 Windo
  • 绘制渐变圆

    我正在尝试重现带有渐变圆圈的 Stephen Few 图形 该图形演示了光线从上方出现的硬连线假设 以下是圆圈 我怎样才能重新创建这个 画圆圈还不错 但添加渐变是我遇到的问题 我认为网格可能会创造出更清晰的东西 但这可能是我的误解 从画圆圈
  • 以编程方式在 Chrome 扩展中启用内容脚本

    我开发了一个 chrome 扩展 它工作得非常好 的一部分manifest json看起来像这样 content scripts js js script js css css style css matches http localhos
  • PyCharm 中的 TensorFlow Python 警告 - 在 __init__.py 中找不到引用 __version__

    我正在使用 if tf version lt x x x PyCharm 中的声明 可以在许多 TensorFlow GitHub 示例中找到 如下所示 tensorflow version test py import tensorflo
  • Ionic CSS 类分配

    我正在设计我的应用程序 熟悉基本的主题组件 SASS 等 但有一件突出且没有意义的事情是为什么当我在正在运行的应用程序中预览源代码时会添加大量额外的 CSS 类 就我而言 我只是想更改菜单标题背景 在我的 app html 文件中 我有
  • 如果您的 UIScrollView 已经处于该缩放级别,zoomToRect 不会执行任何操作

    我想我在 UIScrollView 中发现了一个错误 但我想检查其他人是否观察到同样的事情以及它是否是预期的行为 我有一个 UIScrollView 并尝试使用 ZoomToRect 设置它正在查看的内容 效果很好 如果我然后拖动视图 使其
  • 防止 ES6 模板字符串中的换行

    ESLint 第 403 行超过最大行长度 120 max len 我有一个很长的字符串 是使用 ES6 模板字符串构建的 但我希望它没有换行符 var string Let me be the throws Exception to yo
  • 我可以在程序内更改堆栈大小限制吗?

    我可以通过传递配置 GHC 编译的 Haskell 程序的最大堆栈大小 RTS Kn到它 在哪里n是某个数字 有没有办法在程序内更改此设置 我想对各种函数的堆栈消耗进行基准测试 因此尝试在各种限制下运行它 捕获StackOverflow例外
  • SCNNode 静态主体与 .dae 导致问题

    我在 Blender 中构建了一个景观模型 导出到 dae 并添加到我的 xcode 项目中 我已经加载了场景 然后将子项 景观网格 附加到我的景观节点 这加载完美 然而 当我将静态物理体附加到 landscspeNode 时 我的 Her