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
今回はここまででおしまい