【问题标题】:Are SceneKit eulerAngles Floats or CGFloats? [duplicate]SceneKit eulerAngles 是浮点数还是 CGFloats? [复制]
【发布时间】:2016-02-25 03:51:28
【问题描述】:

根据 SceneKit API,欧拉角作为 SCNNode 的一个属性,是 SCNVector3。 SCNVector3 是{ CGFloat x, y, z: }。但是当我尝试将 CGFloat 分配给节点的 eulerAngle 属性时,Xcode 声称我正在尝试分配类型“Float”。这是来自我的panGesture 处理程序的 sn-p:

    baseNode.eulerAngles.x = newAngleX

我可以通过转换为浮点数来避免这种情况,但我很好奇,特别是因为 SCNVector3 似乎仍然接受 CGFloats。

【问题讨论】:

  • 无论出于何种原因,在 iOS 上是 Float,在 OS X 上是 CGFloat

标签: swift scenekit cgfloat


【解决方案1】:

你是对的,文档是错误的。直接来自 SceneKit/SceneKitTypes.h:

typedef struct SCNVector3 {
    float x, y, z;
} SCNVector3;

CGFloats 不同,这意味着无论目标如何,它们都是 32 位的。因此,尽管命名相似,但这不仅仅是一个 typedef 问题——Swift 想要一个显式转换是正确的。

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 2014-08-23
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2012-05-12
    • 2016-06-24
    相关资源
    最近更新 更多