コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】Scene ビューでミップマップレベルを可視化する方法

概要 Scene ビューの「Shaded」を押して 「Mipmaps」を押すと ミップマップレベルを可視化できます 赤 描画密度が高い テクスチャ解像度が必要以上に大きい 青 描画密度が低い テクスチャ解像度を大きくしても良い 参考サイト様 https://radiumsoftware.tumb…

【Unity】PC 向けにビルドしたゲームのウィンドウのサイズを自由に変更できるようにする方法

概要 Unity メニューの「Edit > Project Settings...」から「Player」を選択して 「Resizable Window」 をオンにしてビルドすると PC 向けにビルドしたゲームのウィンドウのサイズを自由に変更できるようになります

【Unity】Unity デフォルトのオーディオ機能を無効化する方法

概要 Unity メニューの「Edit > Project Settings...」から「Audio」を選択して 「Disable Unity Audio」をオンにすることで Unity のデフォルトのオーディオ機能を無効化できます

【Unity】uGUI で多解像度対応する方法

概要 例えば、画面の左上にボタンを配置した場合、何もしていないと 他の解像度にした時にボタンの位置が意図しない場所に表示されてしまうことがあります 他の解像度でも画面端に合わせた位置に UI を表示したい場合、 UI のオブジェクトを選択して Inspect…

【Unity】.unitypackage は Project ビューにドラッグしてもインポートできる

概要 .unitypackage は Project ビューにドラッグしてもインポートできます

【Unity】Ctrl + 左クリックでマテリアルに設定されたテクスチャのプレビューを表示できる

概要 Ctrl + 左クリックでマテリアルに設定されたテクスチャのプレビューを表示できます 参考ツイート You can preview the texture applied to a material with Ctrl + Left mouse button.#unitytips #unity #unity3d #gamedev pic.twitter.com/ybqbyzLsgv—…

【Unity】Android アプリ開発で使用できるプロファイラがまとめられている公式ドキュメント

概要 上記の公式ドキュメントで Android アプリ開発で使用できるプロファイラがまとめられています

【Unity】Unity エディタを開発者モードにしてみる

はじめに 上記のサイト様でも紹介されていますが、 Unity メニューの「Help > About Unity」を選択して ウィンドウが表示されたら internal と入力することで 「Developer Mode(開発者モード)」が有効になり、 いくつか開発者モード専用の機能が使えるよう…

【Unity】uGUI で Canvas Renderer の「Cull Transparent Mesh」をオンにすると透明なオブジェクトの描画をスキップできる

概要 例えば uGUI で透明な Image をシーンに配置した場合 画面には何も表示されないですが Overdraw を見てみると、うっすら赤くなっており 描画の処理は走ってしまっていることがわかります (透明な Image を10個重ねてみるとこのようにわかりやすくなり…

【Unity】ゲームオブジェクトにアタッチされているすべての MonoBehaviour の情報を JSON で出力する方法

概要 using System.Linq; using UnityEngine; public class Example : MonoBehaviour { private void Start() { var list = GetComponents<MonoBehaviour>() .Select( c => JsonUtility.ToJson( c, true ) ) ; var str = string.Join( "\n", list ); Debug.Log( str ); } } </monobehaviour>…

【Unity】すべての子オブジェクトを親オブジェクトから切り離す「Transform.DetachChildren」

概要 using UnityEngine; public class Example : MonoBehaviour { private void Start() { transform.DetachChildren(); } } 「Transform.DetachChildren」を使用することで すべての子オブジェクトを 親オブジェクトから切り離すことができます 孫オブジェ…

【Unity】新規プロジェクトを作成する時に選択できるテンプレートを自作する方法

2022/6/3 追記 Unity Hub 3 や Unity 2021 以降でプロジェクトテンプレートを自作する方法は 上記の記事にて紹介しています はじめに Unity で新規プロジェクトを作成する時に選択できるテンプレートは自作できます 検証環境 Windows 10 Unity 2018.3.7f1 Un…

【Unity】iOS で加速度センサを無効化してパフォーマンスを改善する

概要 iOS で加速度センサを使用しない場合、 Unity メニューの「File > Build Settings...」から 「Player Settings...」を開いて、iOS の Other Settings の中に存在する 「Accelerometer Frequency」を「Disabled」にすることで 少しだけパフォーマンスを…

【Unity】Unity 製の APK をバッチファイルで起動する方法

概要 adb shell am start -n "【パッケージ名】/com.unity3d.player.UnityPlayerActivity" 上記のようなコードが記述されたバッチファイルを実行する 参考サイト様

【Unity】Rigidbody2D を使用した際のすり抜けを防ぐ方法

概要 Unity メニューの「Edit > Project Settings > Time」を開いて 「Fixed Timestep」の数値を減らす 減らしすぎるとゲームが処理落ちする可能性があるので注意 参考サイト様

【Unity】乱数のシード値をランダムに設定する

概要 Random.InitState( System.DateTime.Now.Millisecond ); 例えば現在の日時をシード値に設定することで 乱数のシード値を擬似的にランダムに設定できる

【Unity】Console ウィンドウに表示される「warning CS0649: Field is never assigned to」の警告を無効化する方法

概要 using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private GameObject m_gameObject; private void Awake() { Debug.Log( m_gameObject ); } } このようなコードを記述した場合 Assets\Example.cs(5,38): warning CS0649: …

【Unity】Visual Studio で表示される「warning CS0649: Field is never assigned to」の警告を一括で無効化してしまうエディタ拡張

概要 using UnityEngine; public class Example : MonoBehaviour { [SerializeField] private int m_value; private void Start() { Debug.Log( m_value ); } } このようなコードを記述した場合 CS0649 フィールド 'Example.m_value' は割り当てられません。…

【Unity】iOS / Android でバッテリーの状態を確認できる「SystemInfo.batteryLevel」「SystemInfo.batteryStatus」

概要 // バッテリーの残量 ( 0.0 - 1.0 ) var level = SystemInfo.batteryLevel; // バッテリーの状態 // // Charging : 充電中 // Discharging : 放電中 // NotCharging : 充電していない // Full : 満タン var status = SystemInfo.batteryStatus; Windows…

【Unity】デフォルトの AndroidManifest.xml が保存されている場所

概要 【Unity のインストール先】\Editor\Data\PlaybackEngines\AndroidPlayer\Apk 上記のフォルダにデフォルトの AndroidManifest.xml が保存されています

【Unity】マテリアルで設定する時のシェーダの場所名を取得する方法

概要 シェーダファイルのこの部分をスクリプトから参照したい場合 public Shader m_shader; ... var name = m_shader.name; name プロパティにアクセスすれば取得できる

【Unity】Unity 2018.3 から自動実装プロパティに SerializeField 属性を付与して Inspector に表示できるようになった

概要 公式で意図されたものかどうかはわからないですが using UnityEngine; public class Example : MonoBehaviour { [field: SerializeField] public int Health { get; private set; } } このように自動実装プロパティに SerializeField 属性を付与すると …

【Unity】シェーダファイルの Inspector に表示されるエラー文言は右クリックしてコピーできる

概要 シェーダファイルの Inspector に表示されるエラー文言は 右クリックして「Copy error text」を選択することでコピーできる

【Unity】Console ウィンドウのログを選択した状態で Ctrl + C を押すとコピーできる

概要 Console ウィンドウのログを選択した状態で Ctrl + C を押すと スタックトレースも含めてログをコピーできます 参考ツイート Wow, didn't know that you can Ctrl+C on a console entry and copy the whole text from the output, so you can paste it …

【Unity】Windows PC で Mac 向けのスタンドアロンビルドができるようにする方法

概要 Windows PC で Mac 向けのスタンドアロンビルドを行おうと Build Settings の「Target Platform」を表示した際に、 「Windows」の項目しか存在しない場合は、 Unity Hub の「Installs」タブから任意のバージョンの Unity のメニューを開いて 「Add Comp…

【Unity】AnimationCurve の初期化ができる「AnimationCurve.Constant」「AnimationCurve.Linear」「AnimationCurve.EaseInOut」

概要 using UnityEngine; public class Example : MonoBehaviour { public AnimationCurve m_curve1 = AnimationCurve.Constant( 0, 1, 0.5f ); public AnimationCurve m_curve2 = AnimationCurve.Linear( 0, 0, 1, 1 ); public AnimationCurve m_curve3 = A…

【Unity】Unity 製の PC ゲームにおける逆コンパイル・改造の方法と難読化による対策を紹介

はじめに この記事は「Unity #2 Advent Calendar 2018」の 12/6 の記事です Unity で作成したゲームは特に何も対策しなかった場合、 割と簡単にソースコードを閲覧したり改造したりすることができます この記事では Unity 製のゲームはどのように逆コンパイ…

【Unity】Visual Studio で Unity イベントの関数名の表示色を変更する方法

概要 Visual Studio メニューの「ツール>オプション」から 「環境>フォントおよび色」を選択し 「Unity メッセージ」の「前景色」を変更して「OK」を押すことで Unity イベントの関数名の表示色を変更できます 参考ツイート Did you know you can customize …

【Unity】Visual Studio だとデバッガーで LINQ の結果を確認できない?が VSCode だと確認できる

概要 Console アプリケーションの場合 結果ビューを展開すると LINQ の結果を確認できる Unity + Visual Studio の場合 結果ビューの展開ができず LINQ の結果を確認できない Unity + VSCode の場合 IEnumerator を展開すると LINQ の結果を確認できる Unity…

【Unity】Windows でスタンドアロンビルドしたゲームにおける PlayerPrefs の保存場所

保存場所 レジストリの下記の場所に保存されている HKEY_CURRENT_USER\Software\【Company Name】\【Product Name】 確認方法 Windows のスタートメニューに「regedit」と入力する 「regedit.exe」を起動する HKEY_CURRENT_USER\Software\【Company Name】\…