LoginSignup
1
1

More than 5 years have passed since last update.

【EZGUIを殴り続けるのだ】raycastClosestShape: The maximum distance must be greater than zero!

Posted at

07-08 15:35:07.330: E/Unity(2233): Scene::raycastClosestShape: The maximum distance must be greater than zero!

こんなエラーがLogCatで出た。
症状としては

特定のシーンに入る。
入った直後にタップをする。
反応が帰ってこないで2秒くらい固まる。
LogCatでエラーが出る。

ちなみに以降は正常に動作する。

謎…

で、ちょっと調べてみてる。

Rayを飛ばしているのはEZGUIのUIManager.csの以下のメソッド

・protected void DoDragUpdate(POINTER_INFO curPtr)
・protected void DispatchHelper(ref POINTER_INFO curPtr, int camIndex)

で、今回ぶつかったのは
protected void DispatchHelper(ref POINTER_INFO curPtr, int camIndex)
こいつ

ログこんな感じ
エラーの時
・07-08 15:35:07.320: I/Unity(2233): ============DispatchHelper: TAP: 0; 0;
正常な時
・07-08 15:35:29.750: I/Unity(2233): ============DispatchHelper: TAP: Infinity; -1;

ん・・・値入ってない?

Physics.Raycast(curPtr.ray, out hit, 0, 0);
って感じになってるっぽい

0距離のレイ?

試しに以下のコードを追加
if (curPtr.rayDepth <= 0 )
{
curPtr.rayDepth = Mathf.Infinity;
}

要は0以下のレイを飛ばそうとしたら強制的に無限レイを発射するようにしてみた。

(このあたりでNexus10さんが御臨終…電池が切れた)

結果

相変わらず固まるのだけどこれは別の問題の筈。
でもRayを飛ばし続けるエラーは出なくなった。

再現端末
・Nexus7
・Nexus10
再現しなかった端末
・XperiaAcro

今回はここまででおしまい

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1