mattak's blog

人生を1ミリ進める

EnumSelection v1.0.0 をリリースしました! 🎉

github.com

どうゆうやつ?

複数のenumを一つのfieldで管理 & unity editor上で表示できます!

f:id:mattaclj:20180525004755p:plain

便利な機能とか

どのenumにするかを選ばせるpopupをcategoryとして制限できます。

enum宣言時

[EnumSelectionEnable(Category = "MyCategory")]
public enum Sample {
    Value1,
    Value2,
}

利用時

public class Demo : MonoBehaviour {
    [EnumSelectionOption(Category = "MyCategory")]
    public EnumSelection Value;
}

parseも超簡単

// EnumSelection Value;
var value1 = this.Value.GetEnum<Sample>();
var value2 = this.Value.GetEnum(typeof(Sample));
var value3 = this.Value.GetEnum(); // automatically parse enum by stored class name & assembly name

どうやって保存してる?

  SkillSlot:
  - AssemblyName: Assembly-CSharp
    ClassName: Sample.AttackSkill
    ClassValue: DamageMutiply
  - AssemblyName: Assembly-CSharp
    ClassName: Sample.DefenceSkill
    ClassValue: DamageDivide
  - AssemblyName: Assembly-CSharp
    ClassName: Sample.MagicSkill((ここに脚注を書きます))
    ClassValue: SpeedUp

Assembly名とclass名, enumの値を文字列で保存しています. 読み出すときにstring => enumの変換をする感じ。 enumの順序変えられても安全な設計に倒している

以上です!

🌟 ください!

github/mattak/EnumSelection

試行回数9