2014/06/28(土) [n年前の日記]
#1 [unity] Unity 4.5 の奇妙な挙動
_2014/02/17の日記
で公開してた、Unityのプロジェクトフォルダ一式について。コメント欄で、「DLしたけどキャラクター達が地面の下に落ちていく」と報告していただけたので、自分も検証作業を。
Unity を、4.3 → 現行版 4.5.1f3 に更新してから試したのですけど。自分の環境でも、キャラクター達が地面の下に落ちていくことを確認しました。
地面の下に落ちていく条件、落ちていかない条件について調べましたが、どうやら Plane + Box Collider 2D を使って地面を表現しようとすると、すり抜けてしまうようで。
で、どうしてこうなるかと言うと。
ということで。とりあえずですが、Plane を Quad に変更した版をアップロードしておきました。
最新版の Unity を使うと、過去に作ったプロジェクトを読み込んでも正常動作しない、ってのはなんだか痛いですな…。
Unity を、4.3 → 現行版 4.5.1f3 に更新してから試したのですけど。自分の環境でも、キャラクター達が地面の下に落ちていくことを確認しました。
- DLしたzipを解凍して、プロジェクトとして開いてもそうなるし。
- 以前保存していた、HDD内の元プロジェクトを開いてもそうなるし。
地面の下に落ちていく条件、落ちていかない条件について調べましたが、どうやら Plane + Box Collider 2D を使って地面を表現しようとすると、すり抜けてしまうようで。
- Sprite + Box Collider 2D なら、すり抜けない。
- Quad + Box Collider 2D も、すり抜けない。
- Plane + Box Collider 2D は、すり抜けちゃう。
で、どうしてこうなるかと言うと。
- Plane を2Dゲームっぽく表示するためには回転しないといけない。
- 現在の Unityは、Box Collider 2D が、x軸回転、y軸回転、z軸回転をちゃんと反映する仕様になってる。
- Sprite と Quad は、x軸回転、y軸回転しなくても、2Dゲーム画面っぽく表示できるので、Box Collider 2D の指定値・アタリ範囲がそのまま使われる。
- Plane は x軸で90度回転、y軸で180度回転、等をしないと2Dゲームっぽく表示されない。そのせいで Box Collider 2D のアタリ範囲までグルグルと3D計算で回転しちゃって、アタリ範囲が思ったような状態にならない。
ということで。とりあえずですが、Plane を Quad に変更した版をアップロードしておきました。
最新版の Unity を使うと、過去に作ったプロジェクトを読み込んでも正常動作しない、ってのはなんだか痛いですな…。
[ ツッコむ ]
以上、1 日分です。