万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

C#

uFrameやってみる(Unity 5.3.1f1)

Unityは5.3.1f1を使っている。 uFrameやってみる。 Asset Storeの1.6.3.r1のバージョンを使うことにした。 uFrame-1.5.1r2とuFrame-1.6.3r1のUnityパッケージが存在する。 このバージョンがあたらしいuFrame-1.6.3r1を展開してみる。 すると早速大量のエラー…

Unityエキスパート養成読本

Unityエキスパート養成読本 Unityエキスパート養成読本[ゲーム開発の現場で役立つノウハウ満載! ] (Software Design plus)作者: 佐藤圭明,村上哲太郎,大塚壮太郎,渡部聡,渡邉俊光,新井隆祥,相良康介,吉田奉正,石黒祐輔,大庭俊介出版社/メーカー: 技術評論社…

stringでメソッド名を辞めたい UnityEditor C#

C#

メソッド名をstringで"HogeMethod"っとやるのはエラーになってくれないのでメソッド名を安易に変えられなくて不便。 void HogeMethod(bool isActive) {} という名前の時は。 var methodName = (this.HogeMethod as Action<bool>).Method.Name; のようにするのが良</bool>…

UnityEditorでのNullReferenceExceptionのハマり

string hoge; で宣言して、 this.hoge = GUILayout.TextField(this.hoge, 200); とすると、 NullReferenceException: Object reference not set to an instance of an object UnityEngine.GUI.DoTextField (Rect position, Int32 id, UnityEngine.GUIContent…

MonoBehaviorでInvokeをパラメータ付きでメソッド拡張

C#

docs.unity3d.com があるのでEditor拡張で (target as MonoBehaviour).Invoke("HogeMethod", 0f); とかやることがあると思う。 ちなみに第2引数は秒数なのでHogeMethodに渡したい引数ではない・・。 using System; using System.Reflection public static vo…

カスタムコルーチンの日本語公式記事を万年素人が理解するメモ

http://blogs.unity3d.com/jp/2015/12/01/custom-coroutines/ 1. 疑問 もしWaitForSecondsをtimescaleを0に指定しながら使用したら、(timescaleが0以外に再び戻るまで) 永遠に待ち続けることになるのです。 理由 これはつまりWaitForSeconds に1秒待つよう…

C#Unity IEnumerator

Currentとは Unity のコルーチンで結果を受け取る - Qiita StartCoroutineで呼ばれているIEnumeratorメソッド内ではCurrentを返さないとダメらしい。 こちらも参考 Unity入門/コルーチンの待機 - WisdomSoft あとは、関係ないがvoidを返す普通のメソッドでの…

C# Unity EditorのInspector拡張で自前のクラスの変換

Hogeクラスは何の変哲もないMonoBehaviorの継承でもないふつーのクラス。 シリアライズのため[System.Serializable] [System.Serializable] class Hoge { string bar; } そしてInsppectorを表示していたクラス public class MyMono : MonoBehaviour { [Seria…

InitializeOnLoadとかInitializeOnLoadMethodとかRuntimeInitializeOnLoadMethod Unity

どうしてもEditorのOnEnabledが遅くて、普通のMonoBahaviorのAwake()より遅くて困った。 [InitializeOnLoad] //これをつけるとstaticなコストラクタを定義すると呼ばれる. public class Test : Editor // 別にEditorの小クラスでなくても`InitializeOnLoad`…

yield return n C# Unity

yield キーワード yield return n; とした。 foreach(object n in GetIterator()) { Debug.Log(n); } ちゃんと数字返るっぽい

カスタムインスペクタでプライベートメソッドにアクセス

invoke a method from a Unity Inspector カスタムアトリビュートを作る? using System; // Place this file in any folder that is or is a descendant of a folder named "Scripts" namespace CatchCo { // Restrict to methods only [AttributeUsage(Att…

TransformのCustomEditor C# Unity

https://unity3d.com/learn/tutorials/modules/intermediate/live-training-archive/property-drawers-custom-inspectors UnityScriptもなんかある http://answers.unity3d.com/questions/39360/how-to-get-to-the-editor-to-display-a-childs-world.html

NGUIとかで使うカラーコード C# Unity

RGBの(255, 255, 255)みたいなのを6桁の16進数数字のカラーコードFFFFFFにしたい。 ※'#‘はいらない。 RGB値からHTMLカラーコードに変換する:humming bird を参考。 拡張メソッド // Slice. public static string Slice(this string aString, int num) { retu…