(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Unity

Audio Mixerの設定をプログラムで取得、変更する方法【Unity】【Audio Mixer】

この記事でのバージョン Unity 6000.4.5f1 はじめに 以前、Audio SourceをBGMやSEなどのグループごとに管理するAudio Mixerを紹介しました。 今回はそのAudio Mixerの設定をプログラムで取得、変更する方法の紹介です! Audio Mixerの設定をプログラムで取得…

サウンドの音量やエフェクトを、BGMやSEなどのグループごとに管理出来るAudio Mixer 【Unity】【Audio Mixer】

この記事でのバージョン Unity 6000.4.5f1 はじめに UnityでBGMやSEを鳴らす時、基本的にAudio Sourceを使いますが、Audio Sourceが増えてくると「BGMだけまとめて音量を下げたい」「SE全体にエフェクトをかけたい」みたいな事が面倒になってきます。 今回は…

Mathf.RoundToIntやRoundは四捨五入ではなく偶数丸め(銀行丸め)【Unity】【C#】

この記事でのバージョン Unity 6000.4.5f1 はじめに Unityで小数点を含む数字を一番近い整数にで変換したい時にMathf.RoundToIntがよく使われますが、 Debug.Log($"1.1をRoundToInt : {Mathf.RoundToInt(1.1f)}"); Debug.Log($"1.6をRoundToInt : {Mathf.Rou…

UIに綺麗な影を付けるTrue Shadowはグロー(輝いてるような)っぽいエフェクトを付けたい時にも便利【Unity】【uGUI】【アセット】

この記事でのバージョン Unity 6000.4.5f1 はじめに 以前、True ShadowというuGUIのテキストや画像に綺麗な影を追加出来るアセットを紹介しました。 True Shadow - UI Soft Shadow and Glow | GUI Tools | Unity Asset Store その影の自然さは一目瞭然(左 : …

Project Auditorでバージョンアップで廃止されるクラスやメソッド等(Obsolete API)を検出出来るように【Unity】【Project Auditor】【最適化】

この記事でのバージョン Unity 6000.3.4f1 はじめに 以前、Unityプロジェクトを解析し、改善点を教えてくれるProject Auditorというツールを紹介しました。(Unity6.4からはエディターに標準搭載) そのProject Auditorにバージョンアップで廃止されるクラスや…

Unityプロジェクトを解析し、改善点を教えてくれるProject Auditorが標準搭載に【Unity】【Project Auditor】【最適化】

この記事でのバージョン Unity 6000.4.5f1 はじめに 以前、Unityプロジェクトを解析し、改善点を教えてくれるProject Auditorを紹介したのですが、その時はUnityの人によって作られた物であるものの、Unity公式のサポートはない状態でした。 その後、Unity6.…

英語などの日本語に比べて長くなりがちな言語で、テキストを範囲内に収める色々な方法【Unity】【uGUI】【ローカライズ】

この記事でのバージョン Unity 6000.3.4f1 はじめに ゲームを多言語対応していると、日本語では問題なく収まっていたテキストが、英語など他の言語にした途端、長くなって収まらなくなる事がよくあります。 UnityのTextMeshProにはフォントサイズを自動で調…

Unity Hub 3.18.0から、オリジナルのプロジェクトテンプレートが簡単に作れるように【Unity】

この記事でのバージョン Unity Hub 3.18.0 はじめに Unity Hubでは新規プロジェクトを作る際に、いくつかのテンプレートから選択が出来ます。 ここのテンプレートは基本的に公式が用意したもので、自分用のオリジナルテンプレートを作ろうとすると今まではち…

Unity6.4からDestroy時に呼ばれるOnDisableのタイミングが微妙に変わってる件【Unity】

この記事でのバージョン Unity 6000.3.4f1 Unity 6000.4.5f1 はじめに UnityのMonoBehaviourにはコンポーネントが無効になった時や、GameObjectが非アクティブになった時に呼ばれるOnDisableというメソッドがあります。 OnDisableでログが出るようして確認し…

enumに後から項目を追加しても、保存していた値を出来るだけ変わらないようにする小技【Unity】【C#】

この記事でのバージョン Unity 6000.3.4f1 はじめに Unity(というよりC#)で状態や種類を合わす時にenumをよく使います。 public enum SampleType { None, Sample, Sample2, Sample3, Tmp, } //Tmpが初期状態 [SerializeField] private SampleType _sampleTyp…

AwakeやStartが既に実行されたかを判定するフラグ、didAwakeとdidStart【Unity】

この記事でのバージョン Unity 6000.3.4f1 MonoBehaviourにAwakeやStartが既に実行されたかを判定するフラグ、didAwakeとdidStartが追加され、コンポーネントが初期化済みか確認できるようになりました。なお、両方ともpublicなので外部からも使えます。 //…

UniRxのAddTo(gameObject)とAddTo(this)はほぼ同じ、OnDestroyが実行されなくてもAddToは有効【Unity】【UniRx】

UniRxとは この記事でのバージョン Unity 6000.3.4f1 UniRx 7.1.0 はじめに UniRxを使って何かしらのイベントを購読した際、 AddToを使えば「オブジェクトが消さたら購読も自動解除」という事が出来るのでとても便利です。 //ボタンば押された時を購読、game…

ParticleSystemの現在の再生を停止し、全ての粒子を消してから再生し直す方法【Unity】【Particle System】

この記事でのバージョン Unity 6000.3.4f1 今回はParticleSystemの現在の再生をリセットして最初から再生する方法の紹介です!と言っても引数を指定したStopというメソッドを使ってから、Playを実行しなおすだけ。 //パーティクルを止めて、既に出ているパー…

スプリングセール開催!約300のアセットが50%オフ!一部のアセットが日替わりで最大95%になるフラッシュディールも同時開催中!【Unity】【アセット】

はじめに Unity Asset Storeにてスプリングセールが始まっています! ​ 約300以上のアセットが50%オフになっている上に、 Unity Asset Store - スプリングセール 24時間限定で最大95%オフにもなるフラッシュディールも同時開催されています! Unity Asset …

ParticleSystemのパーティクルの数を、瞬時に好きな数だけ減らしたり増やしたりする方法【Unity】【Particle System】

この記事でのバージョン Unity 6000.3.4f1 はじめに 今回は再生中のParticle Systemのパーティクル(粒子)の数を、瞬時に好きな数だけ減らしたり増やしたりする方法の紹介です! パーティクルの数を、瞬時に好きな数だけ減らしたり増やしたりする

Task.DelayはtimeScaleの影響を受けない、UniTask.DelayはtimeScaleの影響を受ける設定もある【Unity】【UniTask】

この記事でのバージョン Unity 6000.3.4f1 UniTask 2.5.5 はじめに UnityはTask(.NETの機能)を使えば「1秒待機」みたいな処理を簡単に実装出来ます。 public async Task SampleMethod() { /*なにか処理1*/ //1秒待機 await Task.Delay(TimeSpan.FromSeconds(…

SteamのURLにUTMパラメータを付けてアクセス元や各種数字(訪問、ウィッシュリスト、購入など)を確認する方法 【Steam】

はじめに Steamでストアページを開設した後、色々と宣伝をしますが、その際にどこの国からどれぐらいアクセスされたのか、ウィッシュリストはどれだけしてもらえたのか等の宣伝の効果を知りたいという事はよくあります。 今回はそんな時に使えるSteamのURLに…

Unity Asset Storeにて中国本土・香港・マカオ製のアセットが購入出来なくなるという話【Unity】【アセット】

はじめに Unity公式からUnity Discussions(Unityのフォーラム)にてGreater China(中国本土・香港・マカオ)所在のパブリッシャーのアセットが、2026年3月31日以降グローバル版 Unity Asset Store で購入できなくなるという告知がされました。 Because of upda…

JsonUtilityでJsonからデジリアライズ(復元)した時は、引数なしのコンストラクタが自動で実行される【Unity】【JsonUtility】

この記事でのバージョン Unity 6000.3.4f1 はじめに UnityにはJsonUtilityというJSONデータを手軽に扱えるクラスがあります。 今回は、そのJsonUtilityでJsonからデジリアライズ(復元)した時のちょっとした注意点の話。 デジリアライズ時は、引数なしのコン…

Sprite Editor上の変更をApplyしなくともリアルタイムでプレビューできるように【Unity】

この記事でのバージョン Unity 6000.3.4f1 はじめに Unityにはスプライトの表示を調整するSprite Editorというものがありますが、 このSprite Editorの変更をリアルタイムでプレビューする機能が、Unity6.2から追加されたので、今回はその紹介です! Added a…

Unityのエフェクト(パーティクル)周りの不便な所を解消する Easy Effect Viewer【Unity】【アセット】【PR】

この記事でのバージョン Unity 6000.3.4f1 はじめに 今回はUnityのエフェクト(パーティクル)周りの不便な所を解消するEasy Effect Viewerというアセットの紹介です。 Easy Effect Viewer | Particles/Effects | Unity Asset Store ちなみに、記事中では以下…

Unity6.3からHierarchy上でレイヤーやタグなどを直接表示、変更が出来るように【Unity】

この記事でのバージョン Unity 6000.3.4f1 はじめに Unity 6.3からHierarchyの新しい表示方法が追加され、視認性や使い勝手がよくなりました。 なお、まだプレビュー扱いのため、表示や仕様が変わる可能性があります。 Hierarchyの新しい表示方法

スピーカーからイヤホンなど、オーディオ出力デバイスを切り替えるとUnityの音だけ聞こえなくなる時の対処法【Unity】

この記事でのバージョン Unity 6000.3.4f1 はじめに 自分の環境(Mac)でUnityを使っていると、スピーカーからイヤホンに切り替える時などに以下のようなログが出て、音が聞こえなくなる事がよくありました。(Unity以外の音は聞こえる) Forced to initialize F…

Unity6.3からQualityをトップのツールバーから簡単に切り替えられるように【Unity】

この記事でのバージョン Unity 6000.3.4f1 Qualityをツールバーから簡単に切り替えられるように Unity6.3からエディタの上部のUI(ToolBar)を移動、非表示が簡単にできるようになりました。 それに合わせて、いくつかUIが追加されたのですが、その中にQuality…

エディタ上でシーン切替時に強制GCや未使用アセットのアンロードを自動で行うかの設定 Force GC on Scene Loads【Unity】

この記事でのバージョン Unity 6000.3.4f1 Force GC on Scene Loads Unity6.2以前ではUnityエディタ上でSceneを切り替えるタイミングで、強制GCや未使用アセットのアンロードが自動で行われていました。 The previous default behavior of the Unity Editor …

UnityエディタやUnity Hubに対するディープリンク(Deeplinking)【Unity】

この記事でのバージョン Unity 6000.3.4f1 Unity Hub 3.16.1 はじめに Unity Hub 3.15とUnity 6.3から、Unity HubやUnityエディタに対するディープリンク(Deeplinking)使えるようになりました ディープリンクとはURLを踏むだけで、特定の画面まで自動遷移さ…

スプライトアトラスを解析して無駄や問題を発見する公式パッケージ Sprite Atlas Analyzer 【Unity】

この記事でのバージョン Unity 6000.3.4f1 はじめに Unity 6.3から、Sprite Atlasを解析し問題点を教えてくる「Sprite Atlas Analyzer」という公式パッケージが使えるようになりました。(公式なので、もちろん無料) 今回はこのSprite Atlas Analyzerを試しに…

Unity(C#)でlongでも扱えない巨大な桁の整数が扱えるBigInteger【Unity】【C#】

この記事でのバージョン Unity 6000.3.2f1 はじめに Unity(C#)で整数値を扱う場合、基本的にはintを使いますが、あまりに扱える範囲を超えてしまうとオーバーフローが発生してしまいます。 int max = int.MaxValue;//intの最大値を入れる int max_1 = max + …

エディタの上部のUI(ToolBar)にTime.timeScaleを操作出来るスライダーを表示する拡張【Unity】【エディタ拡張】

エディタ拡張とは この記事でのバージョン Unity 6000.3.2f1 はじめに Unity6.3からエディタの上部にあるToolBarと呼ばれる部分のUIを、簡単に移動、非表示出来るようになり、 プログラムでの拡張も簡単に出来るようになりました。 今回はその拡張を使って、…

インクリメンタルガベージコレクション(Incremental GC)は、有効にしておくだけで大きな処理落ちを防ぎやすい【Unity】

この記事でのバージョン Unity 6000.3.2f1 インクリメンタルガベージコレクション(Incremental GC) Unityや.NETにはGC(ガベージコレクション)という仕組みのがあります。GCとはざっくり言うと、不要になったメモリを自動で検出&解放する自動メモリ管理システ…