クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【Unity】不具合まとめ [起動が遅い?ダウンロードできない?]

Unityを使う場合の不具合です。

Unityの不具合

Cry baby

ログインできない?ダウンロードできない?

サーバ障害の可能性があります。

 

Unityではオフィシャルにサーバのステータスを公開していますので、まずはこちらを確認してみるとよいでしょう。

 

https://status.cloud.unity3d.com/

f:id:apicode:20210325195942p:plain

 

動作が重い?動かない?

Unityの動作要件は以下になります。

OS:

Windows 7 SP1+, 8, 10, 64 ビット版のみ;

Mac OS X 10.12+;

Ubuntu 16.04, 18.04, and CentOS 7.

 

GPU:

DX10(シェーダーモデル 4.0)の性能を持つグラフィックスカード。

 

ただし、オーサリング(プログラム作成時)には、たくさんのグラフィックデータ、3Dデータを読み込んで動かすことになるため、メモリはある程度装備しているうえ、ディスクもSSDで高速なアクセスができるほうがよいでしょう。

 

プロジェクトの起動が遅い場合は?

プロジェクトを複製する

プロジェクトファイルをそのまま複製することでバックアップできます。

ただプロジェクトファイルはサイズ大きいので注意。

 

 

プロジェクトファイルの容量削減

以下記事によればLibrary ディレクトリを削除可能のようです。

ただ起動時に再構成されるのでいったんロードは遅くなるようです。

[Unity] Libraryに含まれるCacheを削除してプロジェクト容量を削減する - JoyPlotドキュメント

 

 

プロジェクトの起動が遅い場合は?

不要なパッケージを削除しておく

たぶんですが、起動時には利用パッケージに更新があるかどうかとかもチェックしていてそれで遅くなる場合があるようです。

 

使わないものは削除しておきましょう。多くは後で再インストール可能だと思います。

 

コードエディタは自分が使わないものは不要なので削除して大丈夫でしょう。 

 

 

キャッシュサーバーを有効にする

キャッシュは一度生成したデータを保存しておくことで、次回からはそれをロードするだけとなり起動が早くなる効果が期待できます。

 

「環境設定>AssetPipeline」では「Unity Accelerator(CacheServer)」でDefualtmodeを有効にします。

 

 

新規に適用する場合「initial assset database refresh unity」で結構時間がかかりましたが、次に起動するときは速い...ようです。(PCの再起動によってクリア?)

 

 

逆にキャッシュの破損などでロードがうまくいかない場合には「無効」にしてから起動してみましょう。

 

 

プラットフォームを指定して起動

起動時にプラットフォームを指定しておきます。

プラットフォーム返還のたびに画像変換が入ったりするようなのでそれをオフにする効果が期待できます。

死ぬほど重いUnityの起動を高速化する4つの方法 - 渋谷ほととぎす通信 (shibuya24.info)

 

 

 

 

 

パッケージエラー

パッケージを利用する場合のエラーメッセージです。

Unknown

原因不明のエラーです。

 

NotFound

パッケージやパッケージで必要なファイルが見つかりません。

 

Forbidden Operation

この操作は許可されていません。

 

InvalidParameter

パラメータが不正です。

 

Conflict

複数のバージョンが見つかっています。

 

 

エディタのエラー

設定が反映されない?

ゲーム実行中にインスペクタなどを変更しても反映はされません。

ゲームプレイを停止してから修正しましょう。

 

なお、ゲーム実行中かわかりやすいように色を変更しておくと、このミスが防げます。

Edit>Preferenceで「Colors>Playmode tint」の色を変更しておきましょう。

 

「スクリプトクラスが見つからないため」エラー?

「スクリプトクラスが見つからないため、スクリプトコンポーネント「〇〇」を追加できません。」というエラーです。

 

インスペクタでもスクリプトをアタッチしたゲームオブジェクトで「該当するスクリプトをロードできません」となります。

 

これはアセットのほうでスクリプト名を変更した場合におきました。

 

対策ですが、アセット上でスクリプト名を変更しても、スクリプト内のファイルでは元のクラス名がそのまま残ってしまい、名前が一致していないことにあります。

スクリプト内のクラス名も変更した名前に書きかえれば修正されます。

 

 

 

Project has invalid dependenciesエラー?

Unityをアンインストールして、せっかくなので新しいバージョンをインストールしました。

 

その後プロジェクトを開こうとすると、バージョンが古いためかエラーとなりました。

 

開くことはできましたが依存関係でエラーとなりました。

An error occurred while resolving packages: Project has invalid dependencies: com.unity.feature.development: Package [com.unity.feature.development@1.0.1] cannot be found

 

指定された「manifest.json」で指摘された箇所を削除して保存します。

 

これで治りました。

 

ただ全部がこれで治るかはわかりませんので、バックアップ取りながら試しましょう。

参考:Unity Package Manager Error: An error occured while resolving packages - Unity Forum

 

The type or namespace name 'EditorApplication' does not exist

ビルドで以下のようなエラーとなりました。

Assets\scrTimer.cs(44,12): error CS0234: The type or namespace name 'EditorApplication' does not exist in the namespace 'UnityEditor'
 (are you missing an assembly reference?)

 

「EditorApplication」のネームスペースが存在しないというものです。

 

 

エラー場所やネット情報をみると、まずソースでエラーが起きていたのは

UnityEditor.EditorApplication.isPaused = true; 

という場所です。

 

これはエラーの場合にシーンの再生を止めるものです。

 

組み込んだ理由としては、エラーがたくさん出る場合にエラーが出たラすぐ再生を止めたいためです。

 

 

アプリケーションをビルドすると、エディターで停止というのはそもそも不要となります。

 

この場合の対応としては

 #if UNITY_EDITOR
 UnityEditor.EditorApplication.isPaused = true; 
 #endif

のようにユニティのエディタ上でのみスクリプトを有効とすればOKでした。

 

c# - The type or namespace name `UnityEditor' could not be found - Stack Overflow

 

NullReferenceException

スクリプトで参照先が見つからない場合のエラーです。

 

NullReferenceException: Object reference not set to an instance of an object
scrMain.Update () (at Assets/scrMain.cs:38)

 

たいていはスクリプトの行数が出ますので、そこで指定したオブジェクト等がみつからない・なくなっている場合のエラーです。

 

誤ってオブジェクトを削除している場合には、作り直すか、アンドゥで戻しておきます。

 

オブジェクトがシーン上にあっても、いったん非アクティブにしていると存在していないことになって参照できません。

 

この場合チェックを入れるか、スクリプトからSetActiveをtrueにしておきましょう。

 

 

Cannot import packages in play mode?

Cannot import packages in play mode?は、TMPなどのライブラリをロードしようとした際に出るエラー。

 

プレイモードではインポートできませんという意味のエラーです。

 

こちらの方は、実はプレイウィンドウが別モニタに表示されていたそうで、それをオフにしたら治ったとのこと。別モニタ表示をきづかせるサインが特にないため、わからなかったとのこと。

Resolved - Cannot import packages - Unity Forum

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ