コガネブログ

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

【Unity】Scene ビューのカメラの描画範囲を非表示にする方法

概要 Scene ビューのカメラの描画範囲を非表示にしたい場合は Scene ビューの「Gizmos」から Camera のチェックマークをオフにすることで 非表示にできます

【Unity】Inspector で値をドラッグして変更する時に Shift や Alt を押しながらドラッグすると値の増加値が変化する

概要 通常 Shift を押しながらドラッグ 通常よりも値の変化が大きい Alt を押しながらドラッグ 通常よりも値の変化が小さい 参考ツイート You can multiply the Inspector's editing speed by pressing SHIFT (faster) or ALT (slower).>More tips here: htt…

【Unity】ミップマップテクスチャを確認する方法

概要 「Generate Mip Maps」がオンのテクスチャを選択した状態で Inspector でスライダーを操作すると、ミップマップテクスチャを確認できます

【Unity】ミップマップで使用されるテクスチャをカスタマイズして、距離によって見え方を変えてみる

はじめに Unity ではミップマップテクスチャをカスタマイズすることができるので 普通はカメラからの距離が変わっても見た目は変わらないところも 例えば、3D キャラの装飾の色がカメラからの距離に応じて変わるようにしてみたり 2D 画像がカメラからの距離…

【Unity】テクスチャのミップマップのバイアスを変更する方法

方法1 using UnityEditor; using UnityEngine; public sealed class Example : AssetPostprocessor { private void OnPostprocessTexture( Texture2D texture ) { var importer = AssetImporter.GetAtPath( assetPath ) as TextureImporter; importer.mipMap…

【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】新規プロジェクトを作成する時に選択できるテンプレートを自作する方法

はじめに Unity で新規プロジェクトを作成する時に選択できるテンプレートは自作できます 検証環境 Windows 10 Unity 2018.3.7f1 Unity Hub 1.6.0 作成方法 【Unity のインストール先】\Editor\Data\Resources\PackageManager\ProjectTemplates 上記のフォル…

【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…