如何用SwiftdebuggingSceneKit中的自定义几何

我正在尝试学习如何在SceneKit中创build自定义几何。 不过,我试图做一个三angular形,它没有显示任何东西。 我不知道如何debugging。 有没有办法找出三angular形是否有效? 我只是不知道从哪里开始。

有关参考,有关的操场代码如下。 请注意,它是针对Swift 4编写的,但Swift 3和Swift 4之间的变化非常小,以至于在Swift 3中编译它是微不足道的。

import UIKit import SceneKit let points = [ SCNVector3Make(0, 0, 0), SCNVector3Make(0, 10, 0), SCNVector3Make(10, 0, 0), ] let indices = [ 0,2,1, ] let vertexSource = SCNGeometrySource(vertices: points) let element = SCNGeometryElement(indices: indices, primitiveType: .triangles) let geo = SCNGeometry(sources: [vertexSource], elements: [element]) 

在创build自定义SCNGeometryElement时,索引的types需要为Int16 1 。 我不认为这在任何地方logging。 但是,当你更改索引的声明

 let indices: [Int16] = [ 0, 2, 1 ] 

应该出现三angular形。


编辑

1:正如@语言指出的那样,SceneKit仅支持32位整数作为索引。 所以你可以使用Int8Int16Int32

从Inttypes的文档中我们可以得到

在32位平台上,Int的大小与Int32的大小相同,在64位平台上,Int的大小与Int64的大小相同。

所以在Swift Playground中你最终会用Int64

这是不幸的,因为SceneKit(和金属)只支持UInt8UInt16UInt32 。 在debugging器控制台中,您应该能够看到SceneKit警告不支持的64位宽索引。