Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9541

Unity初心者が知っておきたいTips:Serializableを使おう

$
0
0
Serializableとは?? クラスをシリアル化できることを示す属性です。 Unityで使用すると、インスペクターに サブプロパティを埋め込むことができるようになります。 Unityリファレンス Microsoftリファレンス どんな風に使う?? 例えば、以下のような形でCharacterクラス(キャラクターのクラス)とStatusクラス(ステータスのクラス)でクラスを分けて、以下のような形で定義します。 この際、StatusクラスにSerializable属性 を付与します。 Status.cs using UnityEngine; using System; namespace QiitaGame { [Serializable] public class Status { [SerializeField] private int _hp; [SerializeField] private int _mp; [SerializeField] private int _attackPower; [SerializeField] private int _defensePower; public int Hp { get => _hp; set => _hp = value; } public int Mp { get => _mp; set => _mp = value; } public int AttackPower { get => _attackPower; set => _attackPower = value; } public int DefensePower { get => _defensePower; set => _defensePower = value; } } } Character.cs using UnityEngine; namespace QiitaGame { public class Character : MonoBehaviour { [SerializeField] private Status _status; public Status Status { get => _status;} } } Characterクラス(コンポーネント)をヒエラルキー上のオブジェクトにアタッチすると、インスペクタに以下のように表示されます。 「Status」の▷をクリックして展開すると・・・ サププロパティが展開されましたね!

Viewing all articles
Browse latest Browse all 9541

Trending Articles