Micomprocedure Wiki
public,private,serializefieldの使い方
をテンプレートにして作成
開始行:
Unityでのアクセス修飾子とSerializeFieldなどのAttributeの使い分け所感
public,privateなどのアクセス修飾子とSerializeFieldとSystem.NonSerializedなどのAttributeの使い方についての解説
アクセス修飾子について
public: 外からアクセス可能。Unityだとインスペクタで編集可能
private: 外からアクセス不可能。Unityだとインスペクタで編集不可能
速度の調節用に
#code(csharp){{
public float speed
}}
と使うと思う
実行中にインスペクタで調節可能なのでゲームをプレイしながらレベル調節が出来る
しかしこれでは外部スクリプトからアクセス出来てしまう
具体的には
speedがPlayerクラスのフィールドにある時、EnemyクラスがPlayerのspeedを調整する可能性がある
publicは公開相手を選択できない
しかしprivateにするとインスペクタから編集できない
そこでAttributeを使用する
SerializeField: インスペクタで見えるようにする
System.NonSerialized: インスペクタで見えないようにする
上記の「privateだがインスペクタからは編集したい」を実現するなら
#code(csharp){{
[SerializeField]private float speed
}}
と書く
逆に「publicだがインスペクタから編集したくない」なら
#code(csharp){{
[System.NonSerialized]public float speed
}}
と書く
自作クラスをインスペクタ上で編集したい場合は[Serializable]を使い、
#code(csharp){{
[Serializable]
public class Hoge{}
}}
と書く
この使い方に賛否はあるが編者の所感として記す
終了行:
Unityでのアクセス修飾子とSerializeFieldなどのAttributeの使い分け所感
public,privateなどのアクセス修飾子とSerializeFieldとSystem.NonSerializedなどのAttributeの使い方についての解説
アクセス修飾子について
public: 外からアクセス可能。Unityだとインスペクタで編集可能
private: 外からアクセス不可能。Unityだとインスペクタで編集不可能
速度の調節用に
#code(csharp){{
public float speed
}}
と使うと思う
実行中にインスペクタで調節可能なのでゲームをプレイしながらレベル調節が出来る
しかしこれでは外部スクリプトからアクセス出来てしまう
具体的には
speedがPlayerクラスのフィールドにある時、EnemyクラスがPlayerのspeedを調整する可能性がある
publicは公開相手を選択できない
しかしprivateにするとインスペクタから編集できない
そこでAttributeを使用する
SerializeField: インスペクタで見えるようにする
System.NonSerialized: インスペクタで見えないようにする
上記の「privateだがインスペクタからは編集したい」を実現するなら
#code(csharp){{
[SerializeField]private float speed
}}
と書く
逆に「publicだがインスペクタから編集したくない」なら
#code(csharp){{
[System.NonSerialized]public float speed
}}
と書く
自作クラスをインスペクタ上で編集したい場合は[Serializable]を使い、
#code(csharp){{
[Serializable]
public class Hoge{}
}}
と書く
この使い方に賛否はあるが編者の所感として記す
ページ名:
サイト内を検索
AND検索
OR検索
操作メニュー
サークル情報
†
名称
東北大学文化部登録団体
東北大学マイコンプロシージャ
部室
川内北キャンパス内
川内サークル部室棟 4階
416号室
設立
1979年4月1日
(44年前)
活動内容
ゲームの制作・発表等
(
詳細
)
連絡先
こちら
↑
Twitter
†
@micom_procedure からのツイート
このウェブページについて
ここを編集
コンテンツ
†
トップページ
マイコンプロシージャとは?
公開中の作品
その他の作品
資料室
情報室
リンク
部内向けページトップ
最新の20件
2023年05月25日
ContactUs
2022年11月03日
公開中の作品/2021年度新入生プロジェクト/Gravity-Lost
公開中の作品/2021年度新入生プロジェクト/はるさがし
2021年12月13日
公開中の作品/2021年度新入生プロジェクト/落単・タイム・アタック!
公開中の作品/2021年度新入生プロジェクト/神社からの脱出
RecentDeleted
公開中の作品/2021年度新入生プロジェクト/THE Unexpected Fighting Operation
公開中の作品/2021年度新入生プロジェクト
2021年12月03日
公開中の作品/2020年度新入生プロジェクト/城熊
公開中の作品/2020年度新入生プロジェクト
2021年07月18日
公開中の作品
ProcGameJam9
Inneer/C++_const
2021年04月18日
公開中の作品/2020年度新入生プロジェクト/CrossFade
2021年04月17日
2021年度新歓情報
公開中の作品/2020年度新入生プロジェクト/TeamC no game
2021年04月07日
ようこそ
公開中の作品/2020年度新入生プロジェクト/トキノカダイ
2021年04月04日
2020年度新歓情報
2020年09月15日
ProcGameJam10
ここを編集