2017-09-21 15 views
2

を失敗した私は、hitTestを使用して困難な状況に直面しています:オプション:mapingアプリケーションでiOSの11iOSの11 SceneKit hitTest:オプション:

上SceneKitに私は地形のノードを持っています。 hitTestを使用する:options:私は画面上のタッチから地形上のポイントを見つけるのに長い時間がかかりました。 iOS 11でリリースされたバイナリと、iOS 10シミュレータ用のXcode 9でコンパイルされたバイナリでも、期待どおりに動作します。

iOS 11 SDKのiOS 11バイナリは、エラートな結果をもたらします。 hitTestからの配列を返します:options:結果が含まれていないか、多すぎます。さらに、ほとんどの場合、結果のどれも有効ではありません。ここでは、ポイントを説明するための画像です。すべての画像は隠れノードのないシーンからのものです。

編集:今日hitTestWithSegmentFromPoint:toPoint:options:を使用してテストを行い、偽の結果も得ました。

まず作業シミュレータを使用します。

one hit ok地形に通常のヒットを示します。ヒットポイントは赤い球で示されています。地形の中心が地形の上にあるので、地形では半分になっています。

3 hits ok 3 hits ok yawこれら2枚の画像は、「光線」は地形を3回交差する場合を示しています。 3ヒットがすべて地形に正確に配置されています.2番目の画像は、3つの点を表示するために画角を変更します。

今失敗iOSの11状況:

one hit koこの絵では、我々は1本のヒットを得たが、それがない地形の上に、二つの山の間で「どこ」ではありません。

最後の2枚の写真には、4つのヒットと16ヒットの試合があり、すべてが地形に接続されていない「青色の中」です。

ヒットが地形を越えて「離れている」場合があります。時には、カメラと地形の間にあることもあります。

4 hits ko 16 hits ko

+2

私はまた私をたくさん助けたものを、iOSの11最初以来、問題に直面していますAppleがデフォルトのsearchModeを 'nearest'に変更したことが判明しました。以下のオプションを試してみてください。助けてくれることを願っています。 場合#available(iOSの11.0、*) { hitTestOptions [SCNHitTestOption.searchMode] = SCNHitTestSearchMode.all.rawValue }PéterKová[email protected] –

+0

おかげで、それはまさに私の問題でした。再び魅力のように働く。 –

+0

私にとって、allオプションは問題を解決しません。まだ青色の点が表示されています –

答えて

1

私は、iOS 11.私のソリューションに同じ問題に直面していた。

var hitTestOptions = [SCNHitTestOption.sortResults : NSNumber(value: true), 
         SCNHitTestOption.boundingBoxOnly : NSNumber(value: true)] 

if #available(iOS 11.0, *) { 
    hitTestOptions[SCNHitTestOption.searchMode] = SCNHitTestSearchMode.all.rawValue as NSNumber 
} 
+0

私のバグ報告は、Appleによってフォローアップされています。このバグは、11.2ベータ版で部分的に解決されています。いつでもポイントを得るのにはいくつかの困難があります。 –

関連する問題