Unity

T4TextTemplatesEngineをUnityで使う

省力化のお供テンプレートエンジンをUnityでも使ってみました。テンプレートエンジンを使って設定ファイルからコードを自動生成して楽をしよう!というわけです。今回使ったテンプレートエンジンはT4TextTemplatesEngineです。テンプレートエンジン用のプロ…

CameraDirector

SceneDirector・CanvasDirectorを作成する過程でCameraに関する制御が必要になったのでCameraDirectorを作成しました。Cameraを使って実現したかった機能は以下の2つです。 Popupの背景にブラーエフェクト(ぼかし)を付ける UI上に3Dオブジェクトを表示する…

CanvasDirector

自動でSortingOrderを調整したい! 各UIのSortingOrder設定を覚えていられない! そのUIの配下にあるParticleSystemや子CanvasのSortingOrder設定なんてもっと覚えていられない! ということでCanvasDirectorにUIを登録/削除すると各UIのSortingOrderを自動…

SceneをAssetBundle化する

github.com 自己流SceneManagerの作成と同時にSceneのAssetBundle化に取り組みました。 AssetBundleからSceneを読み込みたい シーンもAssetBundleにすることが可能です。これによりアプリ本体に含まれるAssetを思いっきり減らすことができます。前回の自己流…

自己流SceneManager

github.com Sceneに渡す引数をキャストしたくない 今回は自己流のSceneManagerを作りました。今回一番重視した点は「Sceneに渡す引数をキャストしない」ことです。 例えば、キャラクター詳細シーンがあった場合、どのキャラクターについて表示するかはキャラ…

DestroyされたComponentはinterface越しにnullチェックできない

Componentをinterfaceを使って扱っていたら困った話。困った原因を端的に表すコードが以下のようなものです。 using System.Collections; using UnityEngine; public class Root : MonoBehaviour { [SerializeField] Test test; IEnumerator Start() { ITest…

Conditional Attribute

qiita.com プリプロセッサの代わりに使えるConditionalAttribute。「自動編集用のinterfaceをクラスに付けるたびに#if UNITY_EDITORを記述するのが面倒くさい・・・」と思っていたところで発見したので「これで勝つる!」と思ったのですが、そう甘くはなかっ…

Componentに必要な設定を自動で守らせるようにしたい

qiita.com github.com Inspector上でResetすれば自動で必要な設定が揃うようにする、ということは今までやっていました。しかし、それでも面倒くさいのでもっと自動化しようとした取り組んだのが今回の記事。これでプロジェクトの最初からチェックルールを記…

自己流AssetBundleManager

github.com 自己流AssetBundleManagerを作ってました。もっと便利なAssetBundle管理ライブラリはあると思いますが、知識を再確認するために自分で一から作ってみました。 今回作ったAssetBundleManagerは以下の5つの要求に応えられるようにしました。 言語切…

Unity上でレーダーチャートを表示する

ゲームのパラメータ表示で使えそうということで作りました。 github.com Imageコンポーネントと組み合わせて使用します。下の画像では無地のレーダーチャートですが、ImageのSpriteに画像を指定すればその画像をレーダーチャート型に切り抜きます。 表示する…