Siri Remote の現在の向きを確認する方法、または Siri Remote の向きの変更を登録する方法を探していますが、まだ何も見つかりません。これを行うことは可能ですか (生の重力データの解釈に頼ることなく)?
「 microGamepad 」で「allowsRotation」を使用して自動方向の変更を無効にする方法を見つけました。これはかなりクールです!
Siri Remote の現在の向きを確認する方法、または Siri Remote の向きの変更を登録する方法を探していますが、まだ何も見つかりません。これを行うことは可能ですか (生の重力データの解釈に頼ることなく)?
「 microGamepad 」で「allowsRotation」を使用して自動方向の変更を無効にする方法を見つけました。これはかなりクールです!
私もAPIを見ませんでしたが、あなたが言ったように、重力データをポーリングすることができます. 変更のコールバックが必要な場合は、最後の向きを検出して現在と比較するなど、必要に応じてこれを変更できます。
//**************************************************************
// Update loop portion to UIViewController
//**************************************************************
@property (strong) CADisplayLink *updateLoopTimer;
self.updateLoopTimer = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateRefreshRate:)];
[self.updateLoopTimer addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
-(void)updateRefreshRate:(CADisplayLink *)displayLink
{
CFTimeInterval deltaTime = displayLink.duration * displayLink.frameInterval;
[self update:(float)deltaTime];
}
//******************************************************
// Update loop
//******************************************************
-(void)update:(float)dt
{
#ifdef TV
//***************************************
// Detect button presses
//***************************************
//self.gameControler = [[GCController controllers] firstObject];
if( self.gameController != nil )
{
GCMicroGamepad* microPad = self.gameController.microGamepad;
if ( microPad != nil )
{
GCMotion *motion = self.gameController.motion;
GCControllerDirectionPad *dpad = microPad.dpad;
if( motion != nil )
{
GCAcceleration accelVector = motion.gravity;
if( fabs(accelVector.x) > fabs(accelVector.y) )
{
NSLog(@"Sideways");
}
else
{
NSLog(@"Upright");
}
}
}
}
#endif
}