NinaLabo

個人ゲーム開発者の技術メモ

C#

【Unity】async/awaitのフレーム消費

C# 6.0から async/await が使えるようになり、コルーチンでは解決できなかった「何もしてないのにフレーム消費されてしまう」問題が解決できそうです。 まずは今までのコルーチン処理です。IEnumeratorを返すメソッドでは下記のように非同期処理を上から順に…

【Unity】 async/awaitの実行スレッド

C#6.0から async/await が使えるようになり非同期処理がスッキリ書けそうなので興味あるのですが、マルチスレッドとの関連が不明だったので色々試してみました。 実行環境 Unity2018.3.4f1 Taskのasync/await まずはシンプルなasync/awaitのサンプル。TestAs…

【C#】三角関数で2点間の線の長さと角度を計算する

下記のようなスキルツリーのミニマム版みたいなものを実装しているのですが、ボタンとボタンを繋ぐ線の長さと角度は計算して配置しています。 特定の2点間を線でつなぐのを Unity でどう書けばいいのか、いつもやりかたを忘れてしまうのでまとめておきます。…

Unity 5.3 で Application.LoadLevel が Obsolete になりました

シーンを遷移するときに呼び出す Application.LoadLevel が、Unity 5.3 から非推奨になったんですね。MonoDevelop で Application.LoadLevel を呼び出している箇所に警告が出ていました。 `UnityEngine.Application.LoadLevel(int)' is obsolete: `Use Scene…

【C#】リストや配列のソート方法まとめ

リスト(List)や 配列(Array)の 並び替えの方法をまとめました。 《CASE1》リスト内のオブジェクトの変数で並び替え 社員オブジェクト(Employee)を格納した 社員リスト(employeeList)があるとして、その社員リストを 社員番号(Employee.ID)で並び替…

【C#】数値を符号(プラス/マイナス)を付けた文字列に変換する

たとえば・・ 数値がプラスの場合は、 「こんぼう +1」 数値がマイナスの場合は、 「こんぼう -1」 数値がゼロの場合は、 「こんぼう」 と表示するとします。 もちろん、if分で場合分けして、文字列を組み立てればできるのですが、 string.Format ("{0} {1}"…

C#で Vector3 を Vector2 に変換するには

こういうVector3があるとして、 Vector3 three = new Vector3 (1, 2, 3); zを無視してVector2に変換する場合、もちろんこう書けばできるけど、 Vector2 two = new Vector2 (three.x, three.y); 暗黙的にキャストしてくれるので、これで大丈夫です。 Vector2 …

C#で Enum(列挙型)と 数値や文字列 との変換まとめ

こんな Enum(列挙型)があるとして、 public enum ItemType{ Weapon = 1, Shield = 2,} Enum (列挙型)→ 文字列 ItemType.Weapon.ToString(); Enum (列挙型)→ 数値 int itemTypeNo = (int)ItemType.Weapon; 文字列 → Enum (列挙型) ItemType type = En…

C#で 任意の個数の引数をもつメソッドをつくるには

キーワード params をメソッドの引数の配列型の前につけるだけ。例えばこんな感じ。 public void ShowMessage (string message, params object[] messageParams) 呼び出し側は引数を何個でも渡せます。 ShowMessage ("message", param1, param2, param3); 文…