日々是好日~every day is a good day~

日常の中の非日常の備忘録

【Unity】Rigidbody2D.velocityに値を設定しているのに移動しない

前回 Unityエディターをパッチ適用済みバージョンに変更しました

プロジェクトを開いて 軽くエディター上で動作をチェックしてビルドという作業を繰り返しやっていたので その時は気づかなかったのですが

2023.1.22f1でビルドしたプロジェクトの中にエディター上では動くのにビルドされていないものがいくつかありました

ビルドは成功となっているのに アプリケーションが作られていないんです(涙)

設定を変更してやってみても

UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()

というメッセージに変わるくらいでアプリケーションが作られません

解決方法がさっぱりわからないので エディターを一つ前のLTSバージョンに変更することにしました

2022.3.62f3をインストールして これでビルドすると問題なくアプリケーションが出力されました

ビルドできるようになったのはいいのですが 挙動がおかしくなったプロジェクトが1つありまして…これです

これ プレーヤー(顔のついた白い四角のオブジェクト)にはRigigbody2Dをアタッチしていてvelocityに値を設定しているんです

なのに動かない(汗)

動くときもありますが 止まるときはだいたい同じ位置です

前にもこの現象あった気がするのですが どうやって解決したのか?

まずRigidbody2Dのvelocityの値がリセットされていないかDebug.Logをいれてチェック

velocityの値は問題なし

次にConstraintsのZ回転の固定をはずしてやってみたところ 前に進むではないですか!! くるくる回るけど(笑)

ここに問題がありそう ここでGoogle先生の出番

何て検索したらいいのか迷ったのですが『unity rigidbody2d 回転を固定すると移動しなくなる』と現象をそのまま入力すると原因と解決策まで教えてくれました

さすがです なるほど!なるほど!!

Composite Collider 2Dはアタッチ済でした

エディターのバージョンが変わったので設定方法も変わったのかな?

Tilemap Collider 2Dの複合で使用にチェックを入れると タイル一枚一枚についていたコライダーが外枠だけになりました

これでゴースト衝突というものがなくなって前に進むようになりました

チェック一つ あるかないかで動きが変わってしまいます

今回はしっかり記録を残しておきます!