URL:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/
→翻訳:http://warapuri.tumblr.com/post/28972633000/unity-50-tips
ExtensionとMonoBehaviourBase
23、インターフェースの共有するコンポーネントを使うためのextensionを使おうMonoBehaviour[] monoBehaviours = FindObjectsOfType<MonoBehaviour>();
これはFindObjectsOfTypeがobjectを返してしまうので、↓こうしないと動かないね。
MonoBehaviour[] monoBehaviours = FindObjectsOfType(typeof(MonoBehaviour)) as MonoBehaviour[];
クラス設計
29、シングルトンは便利だSingleton.csはこうしないとダメ。アタッチするものではないみたい。
Singleton<MonoBehaviour> singleton = new Singleton<MonoBehaviour>();
インスペクター描画の再実装の仕方
コンポーネントを描画する再起とリフレクションを使おうおそらく、「リフレクションを使い、コンポーネントを再帰的に描画しよう」だと思う。
インスペクター描画の再実装の仕方
2. コンポーネントを描画する再起とリフレクションを使おう「上の関数はこんな感じに助けてくれる」→「上の関数は下のヘルパーを使う」の誤訳すだと思う。
ちなみに、↓にあるSplitCamelCase()メソッドはそのままで動かない。
field.Name.SplitCamelCase();
・Stringを拡張する「StringExtension」を作っておく。
using System.Text.RegularExpressions; public static class StringExtension { public static string SplitCamelCase(this string str) { return Regex.Replace( Regex.Replace( str, @"(\P{Ll})(\P{Ll}\p{Ll})", "$1 $2" ), @"(\p{Ll})(\P{Ll})", "$1 $2" ); } }
例えばこう使う。
string str = "HogeBar"; str.SplitCamelCase();
"HogeBar"が、"Hoge Bar"みたいにスペースが入ったもので返り値が来る。
→ 他のとこに書いてある、「VampireDark じゃなくて DarkVampire; ButtonPaused じゃなくて PauseButton。で、インスペクター上では「pause button」となってるから見つけやすい。」
のためだと思う