Unityの開発で役に立ちそうなもの!

どうも、みなさんこんにちは!

いまUnityで開発をしているのですが、そこでこれは便利だなーって思ったことがいくつかあったのでご紹介したいなって思います。

そんなの知ってるよ!って人も温かい目で見てくれたら幸いです(笑)

では、スタート!!

1、#region 名称、#endregion

これでコードを囲むとエディター上で折りたたむこと(一時的に非表示)ができます。

f:id:kkam0707:20170907145622p:plain

折りたたみ後はこのようになります。

f:id:kkam0707:20170907145812p:plain

このようにregionを使うことによって、変数やメソッドをどこに書くべきなのかなど決定づけるのに役に立ちます。

ほかに、後から見直す際にも、どこになにがあるのかもはっきりと分かるのでとても便利だと思います。

2、UnityのC#にある属性のいくつか

まずは、[SerializeField]

これはprivateな変数でも、シーン上確認することができます。

f:id:kkam0707:20170907151145p:plain

f:id:kkam0707:20170907151225p:plain

これは簡単に「シーンやプレハブに値が保存される」こんな感じな認識で大丈夫かと思います。

もちろんのことシーン上でも変数が触れます。

次は、[SerializeField,Range(1,10),Header("名称")]

この二つはまとめて紹介したほうが早いのでまとめて紹介します!

f:id:kkam0707:20170907152807p:plain

 

Range

これは、シーン上にスライダーを表示して、変数が調整できます。

最小、最大の値を入れておいて使うのが一般的かと思います。

Header("名称")

これはフィールドの上にタイトルが表示されるようになります。

なんの変数か区別するにはとても便利だと思います。

次は、[DisallowMultipleComponent]

1つのゲームオブジェクトに同じコンポーネントを複数アタッチすることを禁止するための属性になります。

f:id:kkam0707:20170907153834p:plain

 

このように警告される。。。

f:id:kkam0707:20170907174508p:plain

1つだけアタッチされてればいいのに気付かずに、同じコンポーネントを2つ以上アタッチしている場合があります。

二つ以上アタッチしている状態で、ゲームを再生すると上手く動作しなくて「コードは合ってるはずなのに動作しない」という原因が掴めない状態になってます。

そういうのを事前に防ぐのに、これはとても便利じゃないかと思います。

 

今回はこれだけしか使用して理解してないのでここまでにさせていただきます。

C#の属性には、他にも色々存在していますので良かったら調べてみてください。