※コードの変更やオブジェクトの移動などの一般的なアクションを元に戻します。どこにUnityプロジェクトを作成したか分からないプロジェクト名の下に下記のような表示があります。/Users/〇〇/〇〇/....こちらが作成したUnityプロジェクトが保存された場所になります。物体がGameViewに表示されないオブジェクトがカメラの視野外にあるかどうかを確認してください。オブジェクトがSceneビューで見えるがGameビューで見えない場合、カメラの位置や向きがオブジェクトを捉えていない可能性があります。物体を配置できないシーン再生中の変更は反映されません。そのため、シーンの再生を停止してから、変更を加えてください。Unpack」の順で選択することで解除することができます。選択し、表示させたいビューやウィンドウを選択することで再表示させることができます。別のオブジェクトにAssetの中のマテリアルを付けたいが、AssetフォルダをクリックしたらInspectorが切り替わってしまいますInspector右上に開いている鍵のアイコンがあります。クリックして閉じた鍵に切り替えると、他の項目を選択しても切り替わらず作業効率が上がります。Unityのシーンビューでオブジェクトが表示されず、XYZの中心軸だけで操作がしづらいですHierarchビューの左にある目のアイコンでオブジェクトの表示/非表示を切り替えることができます。目の右側の手をクリックするとシーン上でオブジェクトを選択しなくなるので開発操作がしやすくなります。Layers」を選択します。ここで新しいレイヤーを追加してください。2:シーン内のオブジェクトを選択し、Inspectorウィンドウで「Layer」ドロップダウンメニューから追加したレイヤーを割り当てます。Settings」>「Physics」を開きます。Matrix」から対象のチェックボックスを外すと、重なるレイヤー同士が衝突するかを設定できます。【覚えておきたい】チェックを外すことで計算を減らしパフォーマンスを向上させることができます。Layer...」を選択してもレイヤーを追加できます。Colliderの範囲を変更したいColliderを持つオブジェクトを選択した状態で、InspectorのColliderコンポーネントを見てください。Colliderの項目にボタンがあるので選択すると、シーン上でコライダーの大きさを変更することができるます。コライダーの線上に見づらいですが■が現れます。クリックしながら移動させると大きさを変更することができます。インスペクターのCenter値でも変更できます。URP」をクリック3:メニューが開いたら「Proceedを選択」してください。Transformが触れるようになります。最初はサイズが大きいので0.01から調整してください。Canvasの文字を編集したいが【T】が邪魔で編集しにくいですシーンの右側にある▼をクリックしてください。Iconsのスライダーを下げてみると見やすく編集できます。ステージオブジェクトのXYZ軸を一度に変更したいTransformのScaleにXYZの大きさを変更できる項目があります。Xの左側にあるボタンをクリックしてサイズを変更してみてください。XYZが一括で変更できると思います。ステージや建物のサイズを変更するときは歪まないように一括で変更してください。Package」を選択してくださいフォルダが開いたらダウンロードをクリックして、購入したアセットを選択して開いてください。Origin」にチェックマークをつけてください。この設定をすることで新規オブジェクトは毎回原点(0,0,0)に設置されます。Gravity」にチェックが入っている可能性があります。Gravity」のチェックを外してください。これにより、重力の影響を受けることなく空中に停止することができます。ゲームシーンを再生した時に音が鳴ってしまう「PlayOnAwake」にチェックがついていることが原因です。Sourceコンポーネントを見つけ、「PlayOnAwake」のチェックを外してください。C#型とは?型はデータの種類を表します。整数、小数を含む数字、文字列、他にもたくさんあります。C#(Unityで使われるプログラミング言語)では、以下のような基本的な型があります。(文字列)変数とは?変数はデータを格納するためのコンテナのようなものです。変数には名前があり、その名前を使ってデータにアクセスします。変数は特定の「型」を持ち、その型のデータのみを格納できます。Aliceを格納しています。メソッドとは?メソッドはクラス内で定義される機能の単位です。特定の動作や計算を実行するためのものです。必要に応じてデータを受け取り(パラメータ)、データを返すことができます。number2;}この例のAddNumbersメソッドは2つの変数(number1、number2)を受け取り、それらを加算して結果を返すメソッドです。そのフィールドがシリアライズ可能であることを表す属性です。C#におけるシリアライズとは、オブジェクトをバイト列に変換する操作を意味します。「シリアル化」や「直列化」などと表記されることもあります。Delegate処理とは?Dlegate処理とはメソッドを変数のように扱うことができる型です。他のメソッドに渡したり、イベントハンドラとして使用したりすることができます。イベント駆動型や非同期処理、コールバック関数などの実装に使用します。こちらのサイトで使用方法を確認できます:https://qiita.com/ysn/items/71fe3f332ea9a3114d36Delegateの使用例を教えてください次の例文ではMyDelegateというDelegate型を定義し、MethodAというメソッドをDelegateインスタンスdelに関連付けています。delを呼び出すことで、MethodAが実行されます。UnityEvent処理が実行されません。Eventを登録するためにはAddListenerで追加する必要があります。次の例文ではボタンがクリックされたらTaskOnClickメソッドをリスナーとして追加しているのでイベントが呼び出されています。FixedUpdateとは?FixedUpdateメソッドは一定の間隔ごと(デフォルトでは0.02秒)で呼び出され、物理計算や固定フレームレートの更新処理に使用されます。Rigidbodyに力を加えるような処理は、FixedUpdate内で行う必要があります。プレイヤーのキー入力が伴う処理にも適しています。値を変更することで、FixedUpdateの呼び出し間隔を調整できます。LateUpdateとは?LateUpdateはUpdateメソッドがすべて実行された後に呼び出されるイベント関数です。カメラの追従やほかのオブジェクトの動きに依存する処理の実装に使用します。次のコードはカメラがプレイヤーを追いかける実装の例です。アセット・アセットストアWebサイトにて購入したアセットがUnityのPackageManagerで表示されない。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にAndroidSDKをインストールする方法が分からないUnityにAndroidSDKをインストールする方法は下記手順で行えます。1:UnityHubを開く。2:画面左にあるInstallボタンを押す。3:インストールされているUnityEditorが表示されるので、AndroidSDKを追加したいUnityバージョンの歯車マークのアイコンをクリックする。4:AddModuleのボタンが表示されるのでそこをクリックする。Support」をチェックする。6:Installボタンを押す。Metaの開発者ページでOrganizationを作成したのに、MetaスマートフォンアプリのQuestの開発者モード設定のボタンが表示されないMetaの開発者ページでOrganizationを登録し、開発者登録を完了したにも関わらず開発者項目が表示されない理由としてアカウントの個人情報の登録漏れの可能性があります。アカウントに支払い方法の登録を行っていないとVRヘッドセットの開発者登録をONにすることが出来ません。アカウント登録において名前、住所、メールアドレス等もきちんと登録されているかをご確認ください。EditorのAssetsフォルダ内に画像データをドラッグ&ドロップしてください。UI)」に変更してください。3:一番下にある「Apply」ボタンをクリックすると、Unity上で表示できる画像データに変換されます。4:次に、ヒエラルキーでCanvasオブジェクトに付いている子オブジェクトのImageをクリックします。Image」の項目があるので、先ほど変換した画像データをドラッグ&ドロップしてください。すると、シーン上に画像が表示されます。Bakerを用いてマテリアルをアトラス化する処理軽減方法について解説しています。VR開発のセットアップに必要なUnityの設定を教えてください。テンプレートで作成しますXRアプリ開発のためのUnityProjectは現在URPの利用が推奨されています。3D」を選択して新規プロジェクトを作成してください。Platformをクリックしてください。VR開発では最初にこのプラットフォームを変更することを忘れないでください。下記URLにアクセスし、MetaQuest開発SDKをUnityProjectに追加します。SDK」を検索し、マイアセットに追加をしてUnityに戻ってください。https://assetstore.unity.com/ここまでできたら~セットアップ2~に進んでください。VR開発のセットアップに必要なUnityの設定を教えてください。ItemsをFixする次は修正が推奨される項目です。All」ですべてを修正します設定後、下図のようになっていればOKです。VRアプリを開発するためにはプロジェクト作成毎に上記設定が必要です開発環境のセットアップは2024年04月現在の設定手順であり、機能アップデートでセットアップの手順は今後変更される場合がありますUnityの実行中に編集をしていましたが、実行を止めると編集内容が消えてしまいました。元に戻すことはできますか?残念ながらUnityでは、ゲームを実行(プレイモード)中に行われた編集作業は、実行を停止すると失われます。これを元に戻す方法はありません。これは意図しない変更を防ぐためにUnityではデフォルトで設計されています。今後同じ失敗をしないようにUnity実行中の色を設定してミスを防ぐ方法はあります。3:プレイモード中に変更した色に変わります。することで視覚的に実行中であると分かりやすくなります。ManagerでダウンロードしたOculusのコントローラが見つかりませんUnityにダウンロードしたアセットを探す方法はProjectフォルダ内の【検索機能】を使うと便利です。>「All」に変更すると見つけることができます。Layers」を選択します。ここで新しいレイヤーを追加してください。2:シーン内のオブジェクトを選択し、Inspectorウィンドウで「Layer」ドロップダウンメニューから追加したレイヤーを割り当てます。Settings」>「Physics」を開きます。Matrix」から対象のチェックボックスを外すと、重なるレイヤー同士が衝突するかを設定できます。【覚えておきたい】チェックを外すことで計算を減らしパフォーマンスを向上させることができます。Layer...」を選択してもレイヤーを追加できます。Linkでは問題なく動いたが、ビルドするとカメラがカクカクします。そのままプレイすると途中で動かなくなりました。何がいけないのでしょうかUnity上でエラーが無ければQuest上で問題があるかもしれません。Overlay」を有効にしてください。2.FPSの情報がオーバーレイ表示されるので、その状態のままアプリをAPKを実行。3.オーバーレイに表示されているグラフを見ると、どのシーンでFPSが下がるか確認できます。今回のケースでいうと、最初はアプリは動くが途中でオブジェクトのCGが重すぎて負荷がかかりゲームが止まった可能性があります。ビルド前にUnity上でCG負荷の軽減処理(リダクション)を行いましょう。Optimizerなどのツールを使用してリダクションをしてからビルドすると解決することもあります。Hands】に設定して再度再生してください。Projectを開くと開発モードがWindowsやMac用のプロジェクトでした。Androidに変更しても大丈夫でしょうか大丈夫です。Questを使用している場合はProjectを開いて最初にAndroid設定に変更してください。Quest用にビルドする際にはAndroidプラットフォームに設定する必要があります。Questデバイスでアプリケーションをテストし、デバッグすることができます。この変換は時間のかかる処理であり、プロジェクトが大きくなるにつれ肥大します。開発を始める前にモードを変更することで不要な再変換処理を抑えることができますCGレンダリングの処理速度をあげるには?「XR-PluginManagement」>「Oculus」>「StereoRendering」>「MultiView」に変更してください。これだけでCGのレンダリングパフォーマンスが約2倍上がります。現在MetaはMultiViewの設定を推奨しており、設定するだけでパフォーマンスがぐっと軽くなります。ModeをONにします。*注意事項*MultiViewは特殊な描画方式のため、アセットストアで購入した一部のCG(シェーダ)やエフェクトが機能せずに映像がグチャグチャになってしまう可能性があります。Platformをしているか確認してください。Platformを選択してください。VRアプリ開発では必ず最初に行ってください。Toolを開いてください。All」をクリックしてください。Settingsを推奨設定に自動的におこなってくれます。すべて緑色にして再度エディタを再生してください。PlayerController配置後、オブジェクトに近づくと見えない壁にぶつかってしまいますOVRPlayerControllerにはコライダーが設定されているため、他のコライダーを持つオブジェクトと衝突します。これを解決する方法として、1:右上のGizmoをOnにした状態でOVRPlayerControllerを選択してください。するとPlayerControllerのコライダーが視認できます。2:この状態でインスペクターからCharacterControllerのRadiusの値を0.5から0.1にすると、接触するコライダーの範囲を変更できるため、オブジェクトに近づくことができます。3:またもう一つの解決方法として前述で記載した「Unityエディタを再生するとオブジェクト同士が衝突してモデルが崩れてしまいます」をご確認ください。Run」を押すことでAPKの作成からインストールまで行ってくれます。この方法でサイドクエストを使わずに直接APKファイルをインストールすることが可能です。この方法は通常の検証時にオススメです。グラフィクスUnityシーンの屋内で光が天井を貫通して影ができてしまいますUnityでは3Dモデルの裏面は描画されないよう設定(カリング)されています。Shadows」>「Two-Sided」に変更します。することで表裏の面で影の投影は計算されるようになり、光が貫通しなくなります。【VRアプリを開発する場合、パフォーマンスを定期的にチェックしてCGモデルを描画する頂点数を減らして処理を軽減する「リダクション」が必須です】CGパフォーマンスの確認方法は以下の順に行います1:UnityエディタのGame画面にStatsという項目があります。ここをクリックするとStatisticsが表示され、Unityを実行したときのパフォーマンスを表示してくれます2:頂点数=Vertsです。Unity実行中の数値を確認します3:Quest2での理想値は300kです。大きすぎた場合はリダクションをしてください。この数値は現在描画している範囲を表しています。カメラの見える範囲が変わると数値も変わるので注意してください。Grabするボタンを変更したいです。シーン上に配置したControllerの設定を変更する必要があります。Left」の順番に選択してください。HelperのControllerタブをクリックしてボタンを変更してください。それぞれのボタン配置は画像で確認してください。Rigを子オブジェクトにしてくださいOVRPlayerControllerのOVRCameraRigは削除してください。コントローラのスティック入力で移動が可能になります。OVRPlayerControllerにはRigidBodyがついてるので、必ずPlaneなど地面を設置してください。作成したアプリを開くと物体が正面に表示されない右コントローラーにあるクエストボタン(∞に似たマーク)を長押しすると、正面の位置を調整することができます。LinkアプリをPCにインストールしてください。インストールはこちらhttps://www.meta.com/ja-jp/help/quest/articles/headsets-and-accessories/oculus-link/set-up-link/アプリを立ち上げたら「設定」>「ベータ」>「開発者ランタイム機能」をオンにしてください。2:オンにしたら左の欄から「デバイス」を押して、お持ちのQuestを追加してください。Questを起動しQuestの「設定」>「デバイス」>「開発者モード」をオンにしてください。4:PCとQuestを一度再起動して再度接続してください。