ARKit-SCNPath

用于在 iOS 上的 SceneKit 应用程序中创建路径几何体的函数和类。主要用例是 ARKit。我希望在可以生成网格后添加 RealityKit 支持。(如果有人知道方法,请告诉我!)

Version License Platform Swift Package Manager Swift 5.0 Actions Status

介绍

对于制作 AR 应用的人来说,导航似乎是一个强项。所以这里有一个类,可以轻松地在 AR 中沿着一组中心点创建路径。这个类也可以用来画出赛道、动画角色跟随的道路,甚至在地板上画一个五角星!

查看 Medium 上的完整教程,了解我是如何使用这个 Pod 和大约 30 行非样板代码制作下面这些 GIF 示例的。

请随意使用和贡献这个库。我只要求您在这样做时告诉我一声,这样我就可以看到一些很酷的用途!

如果您在使用 Swift Package 依赖项时遇到问题,网上有一些很棒的资源:https://developer.apple.com/documentation/xcode/adding_package_dependencies_to_your_app

要求

兼容性

示例

使用此路径作为几何体创建一个节点非常容易,如下所示:

let pathNode = SCNPathNode(path: [
	SCNVector3(0, -1, 0),
	SCNVector3(0, -1, -1),
	SCNVector3(1, -1, -1)
])

或者,您可以直接获取几何体:

let pathGeometry = SCNGeometry.path(path: [
	SCNVector3(0, -1, 0),
	SCNVector3(0, -1, -1),
	SCNVector3(1, -1, -1)
])

y 值设置为 -1 只是一个示例,假设您的场景图的原点在地面上方 1 米处。使用平面检测来正确地击中地面。

可以传递到 SCNPathNode 类和 SCNGeometry.path 函数的其他参数:

名称 描述 默认值 示例
path(路径) 构成路径的 SCNVector3 点的数组 无默认值 [SCNVector3(0,-1,0), SCNVector3(0,-1,-1), SCNVector3(1,-1,-1)]
width(宽度) 路径的宽度,单位为米 0.5 0.1
curvePoints(曲线点) 构成曲线外观的点数,当路径转向新方向时使用。 8 16
materials(材质) 应用于几何体的材质。 一个蓝色的 SCNMaterial [SCNMaterial()]
curveDistance(曲线距离) 从曲线中心到角半径的距离,是宽度的一半的倍数。最小值是 1。 1.5 2

以下是使用此软件包可以执行的一些基本示例:

Path Example 1 Path Example Texture Repeating Path Example Creating