更改 SCNText 上字符串的值不会产生任何变化

Changing the value of string on SCNText produces no change

我正在读取陀螺仪并将 SCNText 几何体的字符串更改为陀螺仪的偏航值。更改发生在每 1/30 秒调用一次的陀螺仪处理程序内部。 SCNText 几何图形是使用 Interface Builder 创建的。

我正在使用此代码检索对文本的引用:

SCNNode *textNode = [scene.rootNode childNodeWithName:@"yawText" recursively:YES];
self.text = [textNode geometry]; 
//self.txt is declared as @property (strong, nonatomic) SCNText *text;

稍后在陀螺仪手柄上我这样做:

CGFloat yaw = convertToDegrees(attitude.yaw);
[weakSelfText setString:[NSString stringWithFormat:@"%.1f", yaw]];
NSLog(@"yaw = %1f", yaw);

// I had to declare weakSelfText outside the gyro handler
// because Xcode was complaining
// weakSelfText is declared like this
// __weak typeof(self.text) weakSelfText = self.text;

NSLog 正确打印值,但 SCNText.

没有变化

是的,我已经尝试更改主线程上的文本。没有变化。

在 SCNText 几何上设置 string 就足够了。

textNode.geometry.string = "0.5"

如果您没有看到任何变化,则 weakSelfText 没有指向您认为它指向的位置。确保您没有在某处删除引用:

NSAssert(weakSelfText == textNode.geometry, @"pointers not the same")