2

ジャイロを読み取り、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

はい、メイン スレッドのテキストを変更しようとしました。変化なし。

4

1 に答える 1

5

stringSCNText ジオメトリに を設定するだけで十分です。

textNode.geometry.string = "0.5"

変化が見られない場合、weakSelfText は、あなたが考えている場所を指していません。どこかに参照をドロップしていないことを確認してください。

NSAssert(weakSelfText == textNode.geometry, @"pointers not the same")
于 2016-03-02T04:21:34.130 に答える