UnityのLineRendererでInvalid AABBエラー

UnityのLineRendererを使っていて

  • Invalid worldAABB
  • Invalid localAABB
  • Invalid AABB

のようなエラーが発生する場合は、設定しているPositionsの値にNaNが含まれていることが原因の場合があるそうです。

NaNかどうかはfloat.IsNaNでチェックできるので確認してみてください。

リンク

【Unity】Assertion failed: Invalid worldAABB. Object is too large or too far away from the origin. – コガネブログ
http://baba-s.hatenablog.com/entry/2018/01/31/102700

【C#】float 型の値が正常ではない場合はデフォルト値を返す拡張メソッド – コガネブログ
http://baba-s.hatenablog.com/entry/2015/03/01/104741

Unity – Scripting API: LineRenderer
https://docs.unity3d.com/ScriptReference/LineRenderer.html

Unity 2019.2.0

Unity 2019.2.0がリリースされました。

What’s new in Unity 2019.2.0 – Unity
https://unity3d.com/unity/whats-new/2019.2.0

Unityではスクリプト編集でVisual Studio Communityを使っていたのですが、最近は気分を変えてVisual Studio Codeを使っています。拡張機能でC#のコード補完もでき、機能的にも十分です。

と思ってリリースノートを見ていたら

Editor: Added VSCode and Rider code editor integration as Packages.

という記述を見つけました。

何が変ったのか分かっていませんが、Visual Studio Codeで気分転換してみるのもいいかなと思います。

リンク

Unity – Download Archive
https://unity3d.com/get-unity/download/archive

ScreenToWorldPointでクリックした位置のWorld座標が取得できない場合

マウスでクリックした位置に対応するWorld座標を取得したい場合、Camera.ScreenToWorldPointを使うと思いますが、たまに正しい値が取得できないことがあります。

Camera.main.ScreenToWorldPoint (Input.mousePosition);

そういう場合は、CameraのProjectionOrthographicに設定してみるとうまくいくこともあるみたいです。

ちなみに、Perspectiveで正しい値が取得できない理由はよく分かりませんでした。

リンク

Unity で ScreenToWorldPoint が常に同じ座標を返す件 – nirasan’s tech blog
http://nirasan.hatenablog.com/entry/2014/03/28/093924

Unity – Scripting API: Camera.ScreenToWorldPoint
https://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html