ジェノベーゼのUnity備忘録

Unity関連についてのブログです。

tips:2つの配列を同じインデックス同士で結びつける

2つの配列があり、それぞれの要素は同じインデックスによって何らかの結びつきがある状況において
LINQのZipメソッドを使うと、2つの配列から別の配列を簡単に作り出すことができる。

var jWeeks = new List<string>{
    "月", "火", "水", "木", "金", "土", "日"
};
var eWeeks = new List<string> {
    "MON", "TUE", "WED", "THU", "FRI", "SAT" , "SUN"
};
var weeks = jWeeks.Zip(eWeeks, (s1, s2) => string.Format("{0}({1})", s1, s2);
weeks.ToList().ForEach(Console.WriteLine);

出力結果
月(MON)
火(TUE)
水(WED)
木(THU)
金(FRI)
土(SAT)
日(SUN)

tips:連続して参照すると異なる値が返るプロパティは定義しない

連続して呼びだすと異なる値が返るプロパティは原則として定義しない方が良い。

// ダメな例
public int Value{
    get{
           _index++;
           return _numbers[_index];
     }
}

プロパティではなく次のようなメソッドにすれば、
連続して呼び出した時に違う値が返ることを利用者が理解できる。

public int GetNextValue(){
    _index++;
    return _numbers[_index];
}

tips:引数にoutキーワードをつけたメソッドは可能な限り定義しない

outキーワードを使っているメソッドは良いメソッドとは言えない場合がほとんど。
特に引数が一つでそれにoutキーワードがついているメソッドは、明らかに設計ミスである。
呼び出しもとに結果を返すなら戻り値として返すべき。

唯一outキーワードが許されるのは、TryParse系のメソッドだけ。

tips:継承するときの注意点

クラスの継承はis a関係が成り立つときだけ使う。
共通のプロパティがあるからといって共通部分を抜き出して
基底クラスとして定義しようという考えは間違っている。

通化のための継承は百害あって一利なし。
継承はそれほど多用するものではない。

tips:プレハブを普通のオブジェクトに戻す方法

プレハブを普通のゲームオブジェクトに戻す(展開する)には
右クリックメニューから prefab→unpack を選択すると展開される。

ネスト化されたものまで全て展開するには unpack completely
ただし、オーバーライドしているものは展開されない

tips:プレハブを普通のオブジェクトに戻す方法

プレハブを普通のゲームオブジェクトに戻す(展開する)には
右クリックメニューから prefab→unpack を選択すると展開される。

ネスト化されたものまで全て展開するには unpack completely
ただし、オーバーライドしているものは展開されない

tips:プレハブモードから抜けるとundoできなくなる

Unityの作業で、プレハブモードでプレハブを編集して
プレハブモードから抜けるとundoができなくなるので
オブジェクトを削除した後などは注意するよう心がける。