Unity しょうもないミス + 小ネタ集

Unityのしょうもないミスと小ネタをここにまとめていく。

 

++モデルをUnityに取り込むときはテクスチャを先に入れておいた方がよい。よくわかってないが、先にテクスチャを入れておかないとUnity上でモデルにテクスチャが自動で貼り付けられない

 

++UnityでWebGLでビルドすると、デフォルトのフォントに日本語が含まれてないために日本語が表示されない。日本語を使うには日本語のフォントを含める必要がある。

UnityのWebGLで日本語を表示する - Qiita

 

++UnityでWebGLでビルドするときIL2CPPを使うっぽいのだが、これがすごく時間がかかる。SSDにしたり、Windows Defenderをオフにすると早くなるらしい

IL2CPP ビルド時間の最適化 - Unity マニュアル

++

OnSceneLoadとStartだとLoad=>Startの順で呼ばれる

 

++日本語化すると一部のコンポーネント名まで日本語化されて英語で検索しても出てこないときがある。

 

++Start()はインスタンス化した時点でのシーンでしか呼ばれないっぽい。DontDestoryOnLoadしたら次のシーンでは呼ばれない

 

++エラーがあるとスクリプトのアタッチが出来ないっぽい。

 

++EasySoundManagerというアセットを導入してリファレンスを見ながら作業していたが、特定のメソッドについて存在しない、というエラーが返ってくる。調べてみると、ストアに置かれてるアセットが古いもので、リファレンスが更新されていたのが原因であった。GitHubから最新版を落としてくることで解決

 

++オブジェクトにそのコンポーネントを付加してないのに(AudioSorceなど)そのオブジェクトに追加したスクリプト内で

gameObject.GetComponent<AudioSorce>とかしてた。 

 

++オーディオ関連の操作がおかしい(例えば、ゲーム開始時に再生、しないようにしてるのにBGMが流れる)と思ったら、知らない間に全く別のオブジェクトにBGMを適応していた。

 

++Unityのカメラプレビューの映像とゲーム実行時のシーンが一致しない。=>良くわからないままUnityを再起動したら回復したので、Unityのバグだったんではないか、という気がする。

 

++スクリプト側で速度の変数をいじっても実行時に変更されない

=>変数をpublicで公開しており、インスペクタで設定された値が設定されていた。

 

++GetComponent<Rigidbody>();でエラーが出る。

メンバ変数を宣言するところに直接書いてたら出た。

start()内で書いたら通った。