UI操作とそれ以外の操作の判別
タッチパッドを押すことをトリガーとしているイベントが、UIを操作する時にも実行されると困ってしまいます。
このページではUI操作であるかを判別して、どちらの操作にも対応できるようにする方法を紹介します。
この問題を解決している例として、空間アンカーのサンプルシーンが参考になります。 空間アンカーでは、タッチパッドを押すことでアンカーを生成していますが、UI操作時のみアンカーを生成しないように工夫がされています。
Sample Assets > Anchor Sample ControllerオブジェクトにアタッチされているAnchorSampleControllerスクリプトでは以下のメソッドが実装されています。
トリガーアクションの実行
以下のようにトリガーアクションが実行されると、ギズモが生成されるようになっていますが、キャンセルするかどうかの処理も行われています。
private void OnTriggerAction(InputAction.CallbackContext context)
{
if (!_canPlaceAnchorGizmos)
{
return;
}
SendHapticImpulse();
InstantiateGizmos();
}