Q. 実行ボタンを押してから実行開始するまでの時間を短くしたい

A. デフォルトだと実行ボタンを押す度に Unity エディタがいちいち初期化処理を行うため実行開始するまで結構時間がかかる。
初期化処理を無効化するには Edit → Project Settings → Editor → Enter Play Mode Settings の Enter Play Mode Options にチェックを入れる。
すると変数の初期化やシーンの初期化をしなくなるので実行開始が早くなる。

※ この設定を有効にしたのを忘れたまま開発を進めると変なバグが入るので、たまに無効にして実行してみると良いです。




Q. シーンビューの表示とゲームビューの表示を同じにしたい

A. シーンビューを開いて視点を調整 → ヒエラルキーのカメラを右クリック → Align With View を選択




Q. Vector3 の値を Debug.Log でデバッグする時に小数以下1桁しか表示されない

A. 以下の様に Vector3 To String ユニットを間に挟む
桁数を変えたい時はFの後の数字を変更する




Q. テキスチャを貼ったオブジェクトを斜めに傾けたときに奥の方のテクスチャの模様が崩れる

A. 「異方性フィルタリング(Anisotropic filtering: アニソトロピックフィルタリング)」がきちんと設定されているか確認する。

例えば道路を作ろうと思って Plane にこのテキスチャを貼り付けたたら下の様に奥側の模様が変になったとする。

この場合まずはテクスチャのインスペクタを開き、Filter Mode の項目を確認する。
もし Filter Mode が 「Point(no filter)」になっていたら下の様に「Bilinear」または「Trilinear」にする(Trilinearの方が綺麗になるが計算の負荷が大きくなる)

すると下の様に奥側の模様も綺麗になる。
それでも綺麗にならない場合は Filter Mode の下にある Aniso Level の数値を上げる(ただし数値が大きいほど負荷が大きくなる)




Q. ヒンジジョイントなどのジョイントで関節が伸びる

A. ジョイントで結合しているオブジェクトの質量に極端な差があると関節が伸びる。
関節が伸びないようにするするためにはヒンジジョイントのインスペクタにある「Mass Scale」と「Connected Mass Scale」に適切な値をセットする。
するとヒンジジョイントがアタッチされているオブジェクトの質量が 1/(Mass Scale) 倍、ヒンジジョイントが接続されているオブジェクトの質量が 1/(Connected Mass Scale) 倍されて物理演算されるようになるので質量の差が補正される。

例えば下の様な腕を考える。

ARM1 の重さを 2 kg、ARM2 の重さを 1000 kg として ARM1 と ARM 2 をヒンジジョイントで繋ぎ(ARM2にヒンジジョイントをアタッチ、ちなみにBALLとARM1は固定ジョイント)、BALLを中心にして回転させると次の画像の様に関節が伸びる。

そこで ARM2 にアタッチされているヒンジジョイントのインスペクタを開き Mass Scale = 1000、Connected Mass Scale = 2 と入れる(下の図)。

すると ARM2 は 1000/1000 = 1 kg、 ARM1 は 2/2 = 1 kg に換算されて物理演算されるので下の画像の様に関節が伸びないようになる。




Q. 今までちゃんと動いてたし、Unity のアップデートとかもしてないのに VSCode の補完が急に効かなくなった

A. まず以下の手順で VSCode の補完機能(OmniSharp サーバ)が動いているかログを確認する。

VSCode の View メニューから Output を選択
→ Output が表示されたら OmniSharp Log を選択

何も表示されてない時は OmniSharp サーバが動いてないのでターゲットを手動で選択する。

VSCode の View メニューから Command Palette を選択
→ Command Palette が表示されたら 「OmniSharp: Select Project」を検索して選択
→ Select 画面が表示されたら「〜.sln」 を選択(多分一番上に表示されてる)
→ OmniSharp が起動して Output にログが表示される

OmniSharp サーバが起動してもエラーを吐く場合は、以下の手順で Unity の Visual Studio Code Editor パッケージを再インストールし直すと補完が効くようになる場合がある

Unity の PackageManager を開く
→ Packages を Unity Registry にセットする
→ Visual Studio Code Editor パッケージを選択して Remove
→ Unity 閉じる
→ Unity 起動
→ PackageManagerを開く
→ Visual Studio Code Editor パッケージを選択してインストール
→ Unity 閉じる
→ プロジェクトフォルダ内にある .csproj ファイルと .sln ファイルを削除
→ Unity 起動
→ Assets メニューから Open C# Project を選択して VSCode を起動
→ 上の手順で VSCode の OmniSharp サーバが動いてるか確認して、止まってたらターゲットを指定

それでも駄目な場合は VSCode の最終アップデート日を確認し、動かなくなった日と同じ日だったら VSCode の問題な気がするので、情報を集めて何とかするかしばらく補完無しで様子を見る。




Q. ヒエラルキー上にあるプレハブインスタンスを通常のゲームオブジェクトにしたい(アンパックしたい)

A. ヒエラルキー上のプレハブインスタンスを右クリックして Unpack Prefab か Unpack Prefab Completely を選択するとプレハブへのリンクが切れて通常のゲームオブジェクトになる。

Unpack Prefab と Unpack Prefab Completely の違いはプレハブインスタンスの内部にある別のプレハブインスタンスもオブジェクト化するかどうかで、Unpack Prefab Completely を選ぶと内部のプレハブインスタンスも含めて全てがゲームオブジェクトになる。