【Unity】Hot Reloadアセットのアンインストール方法

今話題のコンパイル時間がなくなって Play の変更が実行中に動作に即座に反映される Hot Reload というアセットのアンインストール方法の紹介です。 assetstore.unity.com PackageManager から削除する PackageManager に Hot Reload の表示が追加されるので…

【Unity】enumの途中にシンボルを追加しても値が変わらないようにする

Unity で enum をインスペクターで使用しているときに、enum の途中にメンバーを追加すると、追加したメンバーより後ろの値を設定した場合値がずれる問題が発生します。 例えば以下のように Fruit 列挙型があったとします。 // Fruit.cs // もともとの定義 p…

【C#】enumのメンバーに任意の番号を振る

enum は宣言した順に数字が自動で振られています。 以下の例だと Apple=0, Banana=1 といように自動でインクリメントされた数字が割り当てられます。なのでメンバーを途中に追加すると数値が変わってしまいます。 public enum Type { Apple, // 0 Banana, //…

【Unity/C#】Stateパターンで状態を管理する

今回は State パターンの説明と Unity/C# で使用するときの簡単な実装例の紹介です。 Stateパターンの説明 【前提】パターンを使わない場合 Stateパターン C#/Unityで実装する 【事前準備】Playerクラス Stateインターフェース StateImplement1, 2 Contextク…

【Unity】GameObjectがDestroyされたら一緒にオブジェクトを削除する

ある GameObject が削除されたときに関連付けた Object が一緒に削除される仕組みを紹介したいと思います。 特に、Unity の Material はプロパティに一度でも触ると勝手にコピーされて開放は自分でやってね、という動作のため開放処理を OnDestory にいちい…

【Unity】ExcelのデータをScriptableObjectに取り込む

Excel で管理しているゲームデータを自作のプログラムを使って ScriptableObject にインポートする方法を紹介したいと思います。 これ系は既にライブラリとかアセットが色々と配布されていて、それらを使用したほうが時間の節約になると思いますが、今回はを…

【Unity】値の変更を検出して処理を実行する方法

ゲーム中で「ある値を監視して毎フレームごとに値の変化を監視し、値が変化した時に特定の処理を実行する」という実装方法は色々にありますが、最も一般的な Update メソッド内で値の監視処理を書く実装は規模が大きくなると徐々にコードが見づらくなってい…

【C#】正規表現で小数文字列をマッチする

小数文字列は書き方が複数ありますが、それらを正規表現でマッチさせたりマッチした文字列を取り出す方法を紹介したいと思います。 小数の表記方法の確認 小数は以下のように表現されます。 123.456 / +123.456 -123.456 .456 / +.456 -.456 1.23e5 / 1.23E5…

【Unity】Destroyしたらnull代入を同時にする

以下の Unity 公式の Tweet を見て思ったことです。 Twitterから: Unity でオブジェクトを Destroy したら null を代入するのが望ましいです。既に null が入っているように見えますが、実はこれ、本当の null ではないんです。この状況 (Leaked Managed She…

【Unity】プロパティを[field:SerializeField]は避ける

初めに Unity でインスペクター上から値を変更できるようにするには以下のように記述します。 // (1)publicで宣言する public float _value1; // (2)SerializeFieldを付ける [SerializeField] private float _value2; // privateは書かなくても良い // [Seri…

【Excel】ブック内のリンクでエラーが出るときの対処法

エラーの内容 以下エラーメッセ時が表示された時の対応法です。 ブック内のリンクを更新することができません。リンクを更新するには、リンクしたすべてのソース ファイルを開きます ([データ] タブの [リンクの編集] をクリックします)。計算をすべて更新す…

【C#】インスタンス作成速度の比較

C# で数通りあるインスタンス作成方法の処理速度の比較です。 前提条件・環境 環境は以下の通り Visual Studio 2019 + .NET Core 3.1 Windows10, Releaseビルドをコンソールから実行 動作検証 検証は BenchmarkDotNet を使用して検証は以下の通り実行します…