この記事でのバージョン
Unity 6000.4.5f1
はじめに
以前、Audio SourceをBGMやSEなどのグループごとに管理するAudio Mixerを紹介しました。
今回はそのAudio Mixerの設定をプログラムで取得、変更する方法の紹介です!
この記事でのバージョン
Unity 6000.4.5f1
以前、Audio SourceをBGMやSEなどのグループごとに管理するAudio Mixerを紹介しました。
今回はそのAudio Mixerの設定をプログラムで取得、変更する方法の紹介です!
この記事でのバージョン
Unity 6000.4.5f1
UnityでBGMやSEを鳴らす時、基本的にAudio Sourceを使いますが、
Audio Sourceが増えてくると「BGMだけまとめて音量を下げたい」「SE全体にエフェクトをかけたい」
みたいな事が面倒になってきます。
今回はそんな時に便利なAudio Mixerの紹介です!
![]() |
Audio Mixerを使うと、Audio Sourceをグループ分けして管理できるため、
例えばBGM用グループを作れば、BGM全体の音量を一括で変更できるようになります。
なお、Unityにデフォルトで入っている機能なので、特に導入は必要ありません。
この記事でのバージョン
Unity 6000.4.5f1
Unityで小数点を含む数字を一番近い整数にで変換したい時にMathf.RoundToIntがよく使われますが、
Debug.Log($"1.1をRoundToInt : {Mathf.RoundToInt(1.1f)}"); Debug.Log($"1.6をRoundToInt : {Mathf.RoundToInt(1.6f)}");
![]() |
実はRoundToIntは(Roundも)四捨五入ではなく偶数丸め(銀行丸め)だというのが今回の話。
この記事でのバージョン
Unity 6000.4.5f1
以前、True ShadowというuGUIのテキストや画像に綺麗な影を追加出来るアセットを紹介しました。
![]() |
| True Shadow - UI Soft Shadow and Glow | GUI Tools | Unity Asset Store |
その影の自然さは一目瞭然(左 : 影なし、中央 : Unity標準機能、右 : True Shadow)ですが、
![]() |
グロー(輝いてるようなエフェクト)っぽいエフェクトを付けたい時にも便利というのが今回の話。
![]() |
この記事でのバージョン
Unity 6000.3.4f1
以前、Unityプロジェクトを解析し、改善点を教えてくれるProject Auditorというツールを紹介しました。
(Unity6.4からはエディターに標準搭載)
そのProject Auditorにバージョンアップで廃止されるクラスやメソッド等である
Obsolete APIを検出する機能が追加されたので、今回はその紹介です!
![]() |
なお、先に結論を書いておくと現状はそんなに使い道がなさそうな感じでした。
というのも、Obsolete APIの一覧は見れるものの、全てを検出出来るわけではなく、
自動で修正も出来ない上に、Unity 6.4はまだ非対応とまだまだ出たばかりという感じだからです。
この記事でのバージョン
Unity 6000.4.5f1
以前、Unityプロジェクトを解析し、改善点を教えてくれるProject Auditorを紹介したのですが、
その時はUnityの人によって作られた物であるものの、Unity公式のサポートはない状態でした。
その後、Unity6.1から公式パッケージとしてサポートされるようになりました。
(まだパッケージを導入する必要があった)
そしてUnity6.4から、Project Auditorがエディターに標準搭載されるようになったので、
今回は改めて、ProjectAuditorの紹介記事です!
![]() |
この記事でのバージョン
Unity 6000.3.4f1
ゲームを多言語対応していると、日本語では問題なく収まっていたテキストが、
英語など他の言語にした途端、長くなって収まらなくなる事がよくあります。
![]() |
UnityのTextMeshProにはフォントサイズを自動で調整する機能があるため、
![]() |
基本はそれを使ってフォントサイズを小さくすればいいのですが、
あまりにも長いと文字が小さくなりすぎてしまって読みにくくなってしまいます。
![]() |
表示範囲に余裕があれば改行を自動で増やすという事も出来ますが、
(特にUIでは)表示範囲が限られてる事が多いので、その方法でも上手くいかないことも多いです。
ということで今回は、他の言語でテキストを範囲内に収める色々な方法の紹介です!
この記事でのバージョン
Unity Hub 3.18.0
Unity Hubでは新規プロジェクトを作る際に、いくつかのテンプレートから選択が出来ます。
![]() |
ここのテンプレートは基本的に公式が用意したもので、
自分用のオリジナルテンプレートを作ろうとすると今まではちょっと面倒でした。
それがUnity Hub 3.18.0から、簡単に作れるようになったので、今回はその紹介です!
カスタムテンプレートが正式にサポートされ、Unity Hubでプロジェクトテンプレートの作成と共有を標準化された方法で行えるようになりました。
この記事でのバージョン
Unity 6000.3.4f1
Unity 6000.4.5f1
UnityのMonoBehaviourにはコンポーネントが無効になった時や、
GameObjectが非アクティブになった時に呼ばれるOnDisableというメソッドがあります。
OnDisableでログが出るようして確認してみると以下のような感じに。
private void OnDisable() { Debug.Log($"OnDisable : {name}"); }
![]() |
このOnDisableはDestroyされた際にも呼ばれるのですが、
その挙動がUnity6.4から微妙に変わったようなので今回はその紹介です!
この記事でのバージョン
Unity 6000.3.4f1
Unity(というよりC#)で状態や種類を合わす時にenumをよく使います。
public enum SampleType { None, Sample, Sample2, Sample3, Tmp, } //Tmpが初期状態 [SerializeField] private SampleType _sampleType = SampleType.Tmp;
![]() |
しかし、後からenumの途中に項目を追加すると、
Inspectorで設定していた値が変わってしまう事があります。
public enum SampleType { None, Sample, Sample2, Sample3, Sample4,//後から追加 Tmp, } //Tmpが初期状態 [SerializeField] private SampleType _sampleType = SampleType.Tmp;
![]() |
これは、Inspectorのenumが名前ではなく、
内部的には数値として保存されているためです。
これはScriptableObjectを使ってデータを作成した時にも、
クラスをjson化して保存する時なども同様の問題が起こります。
今回はそんな時に使える小技の紹介です!