Unityアプリ開発FAQ | VRプロフェッショナルアカデミー/No1.VR/AR専門プロフェッショナルスクール

Unityアプリ開発FAQ

Top  >   よくある質問:Q&A  >   Unityアプリ開発FAQ

=Unityに関する質問=


Unityインストール・セットアップ

  • 考えられる原因として下記の可能性があります。
    1:インストール先のパスに日本語が含まれている。日本語記述がない場所にインストール先を変更すると解決する場合があります。
    2:ウイルス対策ソフトが起動しており、インストールを防いでいる可能性があります。ウイルス対策ソフトの機能にある、一時的にセキュリティ保護をオフにすることでインストールが出来る場合があります。
    3:PCの空き容量が不足している可能性があります。インストール先に10GB以上の空きがあるのか確認してください。

  • 考えられる原因として下記の可能性があります。
    1:UnityProjectを開くにはAssetsフォルダが見える階層まで開き、最後に「開く」ボタンを押します。
    2:開こうとしているUnityProjectがzip等圧縮されたファイルのままの可能性があります。確認し、Zipファイルの場合は展開(解凍)してください。

  • UnityProjectを開く際に「Safe Mode」のポップアップが出る場合は、プロジェクト内にエラーが発生している事が原因です。
    こちらは基本「Ignore」を押していただいて構いません。
    そしてエラーの解決策として次のアプローチがあります。
    1:開くプロジェクトには他に必要なツールと依存関係がある可能性があります。ダウンロード先のドキュメントをよく読み、プロジェクトを開くために他に必要なものは無いか確認を行ってください。
    2:開くプロジェクトのUnityバージョンが低すぎる可能性があります。作成されたUnityProjectと同じバージョンをインストールしてから再度開いてみてください。
    3:GitHubからProjectをダウンロードする場合、Git機能を使わないと必要な部品が同時にダウンロードされない場合があります。この場合はGitツールを使ってProjectをダウンロードするようにしてください。
    4:開発プラットフォームが特定の環境下でないと動かない場合があります。一度Projectを開いたあと、目的の開発プラットフォームにProjectを変更するとエラーが解決する場合があります。
    5:上記でも解決しない場合は手動で修正する必要があります。はじめは難易度が高いため、どうしてもエラーが出てしまう場合はプロジェクトを開くことを諦める必要があります。

  • 考えられる原因として下記の可能性があります。
    1:「Visual Studio Tools for Unity」がインストールされていない可能性があります。Visuak Studioのインストローラーから拡張機能の「Visual Studio Tools for Unity」をインストールしてください。
    2:Unity内の外部ツールの設定が正しく行われていない可能性があります。Unityのメニューから「Edit」 > 「Preferences」 > 「External Tools」を選択し、正しいVisual Studioが設定されているかを確認してください。

  • https://unity.com/ja/download を表示してください。
    このページがダウンロードページとなります。

  • Windowsボタンをクリックして、検索欄に「Unity Hub」と入力してください。Unity Hub というアプリが結果に表示されますので、クリックしてください。

  • https://id.unity.com/ja を表示してください。
    このページのUnity IDをお持ちでない場合、「こちらでIDを作成してください」という表記の「IDを作成」部分のリンクからアカウントを作成するページを表示できます。

Unity基本操作

  • PCの環境によって操作が異なります。
    1:Windowsの場合
    Ctrl + Z を押してください。
    2:Macの場合Command + Z 押してください。
    ※コードの変更やオブジェクトの移動などの一般的なアクションを元に戻します。

  • プロジェクト名の下に下記のような表示があります。
    /Users/〇〇/〇〇/….
    こちらが作成したUnityプロジェクトが保存された場所になります。

  • オブジェクトがカメラの視野外にあるかどうかを確認してください。
    オブジェクトがSceneビューで見えるがGameビューで見えない場合、カメラの位置や向きがオブジェクトを捉えていない可能性があります。

  • シーン再生中の変更は反映されません。そのため、シーンの再生を停止してから、変更を加えてください。

  • 解除したいPrefabを右クリックで選択し「Prefab」 >「 Unpack」の順で選択することで解除することができます。

  • Unityのメニューバーにある「Window」> 「General」 を選択し、表示させたいビューやウィンドウを選択することで再表示させることができます。

  • Inspector右上に開いている鍵のアイコンがあります。クリックして閉じた鍵に切り替えると、他の項目を選択しても切り替わらず作業効率が上がります。

  • Hierarchビューの左にある目のアイコンでオブジェクトの表示/非表示を切り替えることができます。また目の右側の手をクリックするとシーン上でオブジェクトを選択しなくなるので開発操作がしやすくなります。

  • 1:Unityエディタの上部にあるメニューバーから「Edit」>「Project Settings」>「Tags and Layers」を選択します。ここで新しいレイヤーを追加してください。
    2:シーン内のオブジェクトを選択し、Inspectorウィンドウで「Layer」ドロップダウンメニューから追加したレイヤーを割り当てます。
    3:「Edit」>「Project Settings」>「Physics」を開きます。「Layer Collision Matrix」から対象のチェックボックスを外すと、重なるレイヤー同士が衝突するかを設定できます。
    【覚えておきたい】
    チェックを外すことで計算を減らしパフォーマンスを向上させることができます。またヒエラルキーでオブジェクトを選択し、インスペクターの「Layer」>「Add Layer…」を選択してもレイヤーを追加できます。

  • Colliderを持つオブジェクトを選択した状態で、InspectorのColliderコンポーネントを見てください。
    Edit Colliderの項目にボタンがあるので選択すると、シーン上でコライダーの大きさを変更することができるます。
    コライダーの線上に見づらいですが■が現れます。クリックしながら移動させると大きさを変更することができます。またインスペクターのCenter値でも変更できます。

  • 1:「Window」>「Rendering」>「Lighting」を開いてください
    2:「Lighting」の設定画面が開いたら上部の「Environment」を選択
    3:「Lighting」内の「Environment」>「Skybox Material」があるので、右側の◎をクリックする
    4:Unity Project内のSkyboxマテリアル一覧が出てくるので、設定したいSkyboxを選択

  • 1:Assetsフォルダ内からピンクMaterialをクリック
    2:「Edit」 >「 Rendering」 >「 Materials」 >「 Convert Selected Built-in Materials to URP」をクリック
    3:メニューが開いたら「Proceedを選択」してください。

  • CanvasのInspectorで[Render ModeをScreen Space – Overlay]→[World Space]に変更してください。
    これでRect Transformが触れるようになります。最初はサイズが大きいので0.01から調整してください。

  • シーンの右側にある▼をクリックしてください。一番上の3D Iconsのスライダーを下げてみると見やすく編集できます。

  • TransformのScaleにXYZの大きさを変更できる項目があります。Xの左側にあるボタンをクリックしてサイズを変更してみてください。XYZが一括で変更できると思います。
    ステージや建物のサイズを変更するときは歪まないように一括で変更してください。

  • Unity Editerで「Assets」>「Import Package」>「Custom Package」を選択してください
    フォルダが開いたらダウンロードをクリックして、購入したアセットを選択して開いてください。

  • 基本操作はマウスを使用するので、これらの基本操作をマスターすることでゲーム開発がよりスムーズに進みます

  • 「Edit」>「Preferences」 >「 SceneView」 >「Create Objects at Origin」にチェックマークをつけてください。
    この設定をすることで新規オブジェクトは毎回原点(0,0,0)に設置されます。


エラー

  • スクリプトのファイル名とクラス名は一致していない可能性があります。
    そのため、一致させる必要があります。
    例えば、スクリプトのファイル名がMoveCubeならば、クラス名も以下のようにスクリプト内でMoveCubeに設定する必要があります。
    ・スクリプトのファイル名がMoveCubeの場合
    ✕ public class moveCube : MonoBehaviour
    ◯ public class MoveCube : MonoBehaviour

  • Unityで同じプロジェクトを複数開いた時にこのエラーが表示されます。
    「OK」を押すと問題なく開くことができます。

  • 特定のコンポーネントが見つからないことが原因です。
    エラー文から該当するコンポーネントを見つけ、スクリプトやインスペクターを確認しましょう。適切に追加または修正する必要があります。

コンポーネント

  • 「Use Gravity」にチェックが入っている可能性があります。
    オブジェクトのInspectorウィンドウでRigidbodyコンポーネントを見つけ、「Use Gravity」のチェックを外してください。これにより、重力の影響を受けることなく空中に停止することができます。

  • 「PlayOnAwake」にチェックがついていることが原因です。
    オブジェクトのInspectorウィンドウでAudio Sourceコンポーネントを見つけ、「PlayOnAwake」のチェックを外してください。

C#

  • 型はデータの種類を表します。
    例えば、整数、小数を含む数字、文字列、他にもたくさんあります。C#(Unityで使われるプログラミング言語)では、以下のような基本的な型があります。
    int (整数)、float (浮動小数点数)、bool (真偽値:trueまたはfalse)、string (文字列)

  • 変数はデータを格納するためのコンテナのようなものです。
    変数には名前があり、その名前を使ってデータにアクセスします。変数は特定の「型」を持ち、その型のデータのみを格納できます。
    例えば:
    int myNumber = 5;
    string myName = “Alice”;
    myNumber は整数5を、myName は文字列 Aliceを格納しています。

  • メソッドはクラス内で定義される機能の単位です。
    特定の動作や計算を実行するためのものです。必要に応じてデータを受け取り(パラメータ)、データを返すことができます。
    例えば:

    public int AddNumbers(int number1, int number2) {
    return number1 + number2;
    }
    この例のAddNumbersメソッドは2つの変数(number1、number2)を受け取り、それらを加算して結果を返すメソッドです。

アセット・アセットストア

  • Webサイトにてアセットを購入したにも関わらず、アセットがUnityのPackageManagerで表示されない原因は次の可能性があります。
    1:PackageManagerの表示項目が”MyAssets”に指定されていない。画面左上にあるPackagesの項目をMyAssetsに設定してください。
    2:UnityでログインしているアカウントとWebサイトでログインしたアカウントが違う。UnityHubのアカウント画面で登録されているアカウント情報とWebサイトでログインしたアカウントが同一か確認してください。
    3:それでも上手くいかない場合、Unityのログイン認証に問題が発生しています。一度Unityを閉じ、UnityHubでログインしているアカウントをログアウトし、その後再度ログインを行ってください。ログイン処理が完了後、UnityHubよりUnityProjectを再度開いてみてください。
    4:上記でも上手くいかない場合、Unityのコンソール表示を確認し、Unityに赤文字でエラーが出ていないか確認してください。Clearボタンを押しても赤文字のエラーが消えない場合はコンパイルエラーの可能性があります。直せないエラーの場合は再度UnityProjectを新規で作成してください。



=VRに関する質問=


VR開発環境構築

  • UnityにAnrdoidSDKをインストールする方法は下記手順で行えます。
    1:UnityHubを開く。
    2:画面左にあるInstallボタンを押す。
    3:インストールされているUnityEditorが表示されるので、AndroidSDKを追加したいUnityバージョンの歯車マークのアイコンをクリックする。
    4:AddModuleのボタンが表示されるのでそこをクリックする。
    5:Platformの項目から「Android Build Support」をチェックする。
    6:Installボタンを押す。


  • 特にアカウントに支払い方法の登録を行っていないとVRヘッドセットの開発者登録をONにすることが出来ません。アカウント登録において名前、住所、メールアドレス等もきちんと登録されているかをご確認ください。


  • 1:Unity EditorのAssetsフォルダ内に画像データをドラッグ&ドロップしてください。
    2:Unityに入れた画像をクリックしてInspectorを開いて「Texture Type」>「Default」になっているので「Sprite(2D and UI)」に変更してください。
    3:一番下にある「Apply」ボタンをクリックすると、Unity上で表示できる画像データに変換されます。
    4:次に、ヒエラルキーでCanvasオブジェクトに付いている子オブジェクトのImageをクリックします。
    5:ImageのInspectorを見ると、「Source Image」の項目があるので、先ほど変換した画像データをドラッグ&ドロップしてください。すると、シーン上に画像が表示されます。

  • https://vracademy.jp/blog/meshbaker-for-unity/ を表示してください。
    上記ページにてMesh Bakerを用いてマテリアルをアトラス化する処理軽減方法について解説しています。

  • 【VRアプリを開発する場合、パフォーマンスを定期的にチェックしてCGモデルを描画する頂点数を減らして処理を軽減する「リダクション」が必須です】
    CGパフォーマンスの確認方法は以下の順に行います
    1:UnityエディタのGame画面にStatsという項目があります。ここをクリックするとStatisticsが表示され、Unityを実行したときのパフォーマンスを表示してくれます
    2:頂点数=Vertsです。Unity実行中の数値を確認します
    3:Quest2での理想値は300kです。大きすぎた場合はリダクションをしてください。
    この数値は現在描画している範囲を表しています。カメラの見える範囲が変わると数値も変わるので注意してください。

  • 1:最初にUnity Editerを立ち上げる前にAndroidがインストールされているか確認してください。MetaQuestの中身(OS)はAndroidで構成されています。
    【Androidがない場合】
    「Unity Hub」を開き、「Install」>使用するUnityバージョンの歯車マークをクリック>「モジュールを加える」>インストール画面から「Android Build Support」にチェック>「実行」をクリックしてインストールしてください。
    2:インストールしたらUnityを開き、Build Settingsを開いてプラットフォームをAndroidに選択してSwitch Platformをクリックしてください。
    VR開発では最初にこのプラットフォームを変更することを忘れないでください。

  •        
  • 1:プラットフォームを変更したら、Player設定を開いてください。設定項目を以下に変更しましょう。
    2:Androidの下限OSを10.0」に設定する(必須)
    3:「Identification」の項目から「Minimum API Level」を見つけて、Android 10.0(API level 29)に設定
    4:「Target Architectures」の「Armv7」をクリック(必須)
    5:「Project Settings」<「XR Plugin Management」を選択してインストールしてください。

  •        
  • 残念ながらUnityでは、ゲームを実行(プレイモード)中に行われた編集作業は、実行を停止すると失われます。これを元に戻す方法はありません。
    これは意図しない変更を防ぐためにUnityではデフォルトで設計されています。ですが今後同じ失敗をしないようにUnity実行中の色を設定してミスを防ぐ方法はあります。
    【Unity 実行(プレイモード)中の画面の色を変える方法】
    1:[Edit] > [Preferences] を開きます
    2:[Colors] > [Playmode tint] から色を変更します。
    3:プレイモード中に変更した色に変わります。
    こうすることで視覚的に実行中であると分かりやすくなります。

  •        
  • Unityにダウンロードしたアセットを探す方法はProjectフォルダ内の【検索機能】を使うと便利です。
    ダウンロードしたアセットによっては「Assetsフォルダ」ではなく「Packageフォルダ」内に格納されることもあるので、検索機能を「Search:」 >「All」に変更すると見つけることができます。

  •        
  • Unityでは3Dモデルの裏面は描画されないよう設定(カリング)されています。
    光の貫通を防ぐ方法として、天井と壁を選択し、「Cast Shadows」>「Two-Sided」に変更します。
    こうすることで表裏の面で影の投影は計算されるようになり、光が貫通しなくなります。

  •        
  • 「Edit」>「Project Settings」>「Meta XR」>「Fix All」をクリックしてください。これをすることでUnityがProject Settingsを推奨設定に自動的におこなってくれます。すべて緑色にして再度エディタを再生してください。

ビルドエラー・インストールエラー

  • Gradleエラーが発生する原因としてAndroidSDKもしくはGradleのいずれかのバージョンが古い。もしくは壊れてしまっている可能性があります。
    特にこちらは以前はビルド出来ていてもあるタイミングでのAndroidのセキュリティアップデート等によりビルド出来なくなる場合もあります。
    この場合の対処方法としてUnityの再インストール。もしくは手動でGradleとAndroidSDKを更新する必要がありますので次のアプローチをお試しください。
    Unityを一度アンインストールし、再度インストールを行ってからお試しください。上記でも上手くいかない場合、GradleかAndroidSDKが古くなってしまった可能性があります。
    下記記事を参考にAndroidSDKとGradleをインストールし設定をおこなってください。

    https://qiita.com/warapuri/items/17721b113be8c44e5369
    どのバージョンをインストールするかについては検索エンジン等で最新の変更履歴を確認して推奨環境を探す必要があります。しかしわからない場合は講師・TAにご相談ください。

  • Shaderエラーが起きる原因として、Android環境で利用出来ないShaderファイルがUnityProjectに含まれている可能性があります。
    修正方法として、エラーが発生しているShaderスクリプトをConsoleのエラーログより見つけ、該当スクリプトを削除する必要があります。しかしこの場合、もし開発コンテンツで利用していたShaderだった場合はピンク色で表示され、CGを描画することが出来ません。該当のMaterialを探し、代替となるShaderを再設定する必要があります。

  • Identificationのエラーが起きる原因として、PlayerSettingsのCompanyName、またはIdentificationの名前に利用出来ない文字列が含まれていることが原因です。考えられる可能性として日本語、または単語の先頭に数字が入力されているとエラーが発生します。
    対策とし下記手順を実行します。
    1 : Editor > Project Settingsを開く
    2 : Playerの設定項目を選択し、OtherSettingsの項目を開きます。
    3 : Identificationの項目を探し、PackageNameを日本語、英数字を利用しない名前に変更します。

  • QuestとPCがケーブルで接続しても認識しない場合は下記アプローチをお試しください。
    1:QuestとPCを再起動する。
    2:ケーブルを挿すUSBポートを変更する。
    3:違うUSBケーブルで接続する。
    特に100円ショップ等で販売している安価なケーブルは充電機能しかないケーブルが多いため、付属品のケーブル、もしくはデータ通信用のUSBケーブルを別途お買い求めください。

  • Questが開発者モードに変更されていない可能性があります。
    スマートフォンのMeta QuestアプリでQuestの開発者モードをONにする必要があります。

  • QuestがUSBデバッグモードで接続されていない可能性があります。
    USBケーブルを接続後、Questを被り、内部で表示されているUSBデバッグをONにするボタンを押す必要があります。

  • 同じアプリでも別開発環境でビルドしたアプリを上書きインストールしようとしたときに発生します。
    対策方法としては、過去にインストールしたアプリを削除し、再度アプリをインストールする必要があります。

  • エラー内容を見るとUnityプロジェクトのパッケージ名のフォーマットに問題があると言われています。セグメントが数字で始まっており、これがUnityの命名規則に違反しています。このエラーを解決するには、セグメントが英字で始まるように調整する必要があります。(例)com.vr2024.Academy.2024V.professionalは「.2024V」が誤りなので、com.vr2024.Academy.V2024.professionalのように「.英字」にしてください。

  • SideQuest上でAPKファイルを探す際は、「Product Name」ではなく「Package Name」になります。Unityで「Project Settings」>「Player」>「Identification」>「Package Name」に記載されているアドレスが、SideQuestに表示されるファイル名になります。

  • 【原因特定方法】1.QuestでストアからOVR Metrics Toolをインストールして立ち上げて、「Enable Persistent Overlay」を有効にしてください。2.FPSの情報がオーバーレイ表示されるので、その状態のままアプリをAPKを実行。3.オーバーレイに表示されているグラフを見ると、どのシーンでFPSが下がるか確認できます。今回のケースでいうと、最初はアプリは動くが途中でオブジェクトのCGが重すぎて負荷がかかりゲームが止まった可能性があります。上記を確認したら、ビルド前にUnity上でCG負荷の軽減処理(リダクション)を行いましょう。Mesh Optimizerなどのツールを使用してリダクションをしてからビルドすると解決することもあります。【Mesh Optimizerの使い方】https://styly.cc/ja/tips/assets%CC%B2-unity-3dcg-mesh-polygon/

Meta Quest 操作

  • 右コントローラーにあるクエストボタン(∞に似たマーク)を長押しすると、正面の位置を調整することができます。

  • 【最初に確認!】QuestとPCが同じWi-fi環境に接続している/接続ケーブルはUSB 3.0を使用している
    1:Meta Quest LinkアプリをPCにインストールしてください。
    インストールはこちら
    https://www.meta.com/ja-jp/help/quest/articles/headsets-and-accessories/oculus-link/set-up-link/
    アプリを立ち上げたら「設定」>「ベータ」>「開発者ランタイム機能」をオンにしてください。
    2:オンにしたら左の欄から「デバイス」を押して、お持ちのQuestを追加してください。
    3:Meta Questを起動しQuestの「設定」>「デバイス」>「開発者モード」をオンにしてください。
    4:PCとQuestを一度再起動して再度接続してください。

=VRアカデミー学校説明会=