SerializeFieldを使用する必要があるのはなぜですか?

著名な皇帝ペンギン

私はC#とUnityを学び始めたばかりですが、慣れないことが1つあります。

なぜ、いつ使用する必要があります[SerializeField]か?

[SerializeField]ユニティインターフェイスを使用しているにもかかわらず、変数をハードコーディングしたままにして、テキストボックスを増やすのは悪いことですか?

何卒ご理解とご協力を賜りますようお願い申し上げます。

プログラマー

なぜ、いつ[SerializeField]を使用する必要がありますか?

SerializeField属性を使用すると、Unityは任意のprivate変数をシリアル化します。これは、C#の静的変数とプロパティには適用されません。

SerializeField変数を設定する必要があるprivateだけでなく、エディターに表示する場合にも、この属性を使用します

たとえば、これエディタに表示されません

private float score;

これはprivate変数であるためですが、以下のものがエディターに表示されます。

[SerializeField]
private float score;

これは、適用SerializeFieldし、Unityにシリアル化してエディターに表示するように指示しているためです


private変数はUnityよりもC#と関係があることに注意してくださいパブリック変数変数もあります。変数にマークprivateを付けるということは、別のスクリプトがその変数にアクセスできないようにすることを意味します。public修飾子もあります。変数にマークpublicを付けるということは、他のスクリプトがその変数にアクセスできるようにすることを意味します。

他のスクリプトが別のスクリプトから変数にアクセスできるようにしたいが、public変数をエディターに表示したくない場合があります属性を使用しpublic変数を非表示にでき[HideInInspector]ます。

これはエディターに表示されます:

public float score;

これエディターに表示されません

[HideInInspector]
public float score;

[SerializeField]を使用しているにもかかわらず、変数をハードコーディングしたままにして、ユニティインターフェイスにテキストボックスを追加するのは悪いことですか?

はい、それは特に新しいユーザーにとってはほとんど悪いことです。UnityとC#のプログラマーにとって、これは長い間大したことではないはずです。これが悪い理由は、以下のコードがある場合です。

[SerializeField]
private float score = 5f;

デフォルト値は5エディターにあります。スクリプトを保存すると、この変数はエディターで5として更新されます。問題は、これをエディターからに変更できることです14エディタから変更しても、スクリプトの値はそのままです5が、実行すると、Unityはエディタで設定した値であるを使用します14これにより、スクリプトで設定されたデフォルト値が使用されることを期待しているときに、エディターで設定された別の値が使用されているという理由だけで問題にならない問題のトラブルシューティングに多くの時間を費やす可能性があります。

score変数をデフォルト変数にリセットする唯一の方法は、変数の5名前を別の名前に変更するか、エディターからリセットすることです。あなたから値を変更しても、それは変わらないだろう53、スクリプトから。名前を変更するか、エディターからリセットする必要があります。知っておく価値はありますが、Unityに慣れれば、これについて心配する必要はありません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SerializeFieldを使用する必要があるのはなぜですか?

分類Dev

chrootを使用する必要があるのはなぜですか

分類Dev

Fortranで「使用のみ」を使用する必要があるのはなぜですか

分類Dev

なぜshutdownNow()ではなくawaitTerminationを使用する必要があるのですか?

分類Dev

'react'からimportReactを使用する必要があるのはなぜですか

分類Dev

AndroidでRequestQueueを使用する必要があるのはなぜですか?

分類Dev

StackでDequeを使用する必要があるのはなぜですか?

分類Dev

$ resourceで$ promiseを使用する必要があるのはなぜですか?

分類Dev

Flutterでカードを使用する必要があるのはなぜですか?

分類Dev

Angular UnitTestingでJasmineSpy Objectを使用する必要があるのはなぜですか?

分類Dev

mongoDBクエリで+を使用する必要があるのはなぜですか

分類Dev

ReactJsでweb-packを使用する必要があるのはなぜですか?

分類Dev

jQueryにGoogleのCDNを使用する必要があるのはなぜですか?

分類Dev

なぜflatMapを使用する必要があるのですか?

分類Dev

なぜ基数を使用する必要があるのですか?

分類Dev

なぜEMFを使用する必要があるのですか?

分類Dev

なぜIDEを使用する必要があるのですか?

分類Dev

なぜJPanelを使用する必要があるのですか?

分類Dev

なぜstd :: forwardを使用する必要があるのですか?

分類Dev

Rails。なぜActiveRecordを使用する必要があるのですか?

分類Dev

なぜDjangoREST APIを使用する必要があるのですか?

分類Dev

なぜstrdup()を使用する必要があるのですか?

分類Dev

なぜgruntを使用する必要があるのですか-useminPrepare

分類Dev

なぜ@ngrx / storeを使用する必要があるのですか?

分類Dev

なぜreduxreact Nativeを使用する必要があるのですか?

分類Dev

Validators.compose()を使用する必要があるのはなぜですか?

分類Dev

<label>タグと 'for'属性を使用する必要があるのはなぜですか?

分類Dev

React with Meteorを使用する必要があるのはなぜですか?

分類Dev

minitest / autorunを使用する必要があるのはなぜですか?

Related 関連記事

  1. 1

    SerializeFieldを使用する必要があるのはなぜですか?

  2. 2

    chrootを使用する必要があるのはなぜですか

  3. 3

    Fortranで「使用のみ」を使用する必要があるのはなぜですか

  4. 4

    なぜshutdownNow()ではなくawaitTerminationを使用する必要があるのですか?

  5. 5

    'react'からimportReactを使用する必要があるのはなぜですか

  6. 6

    AndroidでRequestQueueを使用する必要があるのはなぜですか?

  7. 7

    StackでDequeを使用する必要があるのはなぜですか?

  8. 8

    $ resourceで$ promiseを使用する必要があるのはなぜですか?

  9. 9

    Flutterでカードを使用する必要があるのはなぜですか?

  10. 10

    Angular UnitTestingでJasmineSpy Objectを使用する必要があるのはなぜですか?

  11. 11

    mongoDBクエリで+を使用する必要があるのはなぜですか

  12. 12

    ReactJsでweb-packを使用する必要があるのはなぜですか?

  13. 13

    jQueryにGoogleのCDNを使用する必要があるのはなぜですか?

  14. 14

    なぜflatMapを使用する必要があるのですか?

  15. 15

    なぜ基数を使用する必要があるのですか?

  16. 16

    なぜEMFを使用する必要があるのですか?

  17. 17

    なぜIDEを使用する必要があるのですか?

  18. 18

    なぜJPanelを使用する必要があるのですか?

  19. 19

    なぜstd :: forwardを使用する必要があるのですか?

  20. 20

    Rails。なぜActiveRecordを使用する必要があるのですか?

  21. 21

    なぜDjangoREST APIを使用する必要があるのですか?

  22. 22

    なぜstrdup()を使用する必要があるのですか?

  23. 23

    なぜgruntを使用する必要があるのですか-useminPrepare

  24. 24

    なぜ@ngrx / storeを使用する必要があるのですか?

  25. 25

    なぜreduxreact Nativeを使用する必要があるのですか?

  26. 26

    Validators.compose()を使用する必要があるのはなぜですか?

  27. 27

    <label>タグと 'for'属性を使用する必要があるのはなぜですか?

  28. 28

    React with Meteorを使用する必要があるのはなぜですか?

  29. 29

    minitest / autorunを使用する必要があるのはなぜですか?

ホットタグ

アーカイブ