【Unity】SerializeFieldとpublicの違い
最近Unityを勉強していてserializeFieldとpublicの違いに疑問をもったので備忘録として書いておきます。
そもそもserializeFieldとはなんだ?
そもそもserializeFieldがなんだかよくわかりませんでした。調べてみると
シリアライゼーションは、データ構造やオブジェクトの状態を Unity が保存して後で再構成できる形式に変換する自動プロセスです。
ほうほう。
まあ、ようはスクリプトで保存をした後にinspectorで編集できるよということなんでしょうね。
じゃあpublicとおなじじゃね?
まあ、結論からいうと同じではないです。同じだったら必要ないし。
他のスクリプトで書き換えられるのがpublic
他のスクリプトで書き換えられないのがserializeField
で、調べていると開発している環境によって変えるのが良さそう。
開発している環境とは
・チーム開発
・個人開発
という環境です。
チーム開発の場合
チーム開発の場合はserializeFieldを使うのが良さそうです。
先ほど行ったようにserializeFieldは他のスクリプトから書き換えが可能です。
なのでチーム開発中にpublicで書いてしまうと自分が意図していない数値に他人に書き換えられてしまうので開発に支障が出てしまいます。
個人開発の場合
一方個人開発の場合はpublicで書いても問題なさそうです。個人で開発している分には編集するのは自分しかいませんので好きに数値を書き換えられます。
僕が参考にしたのはこの記事です。この記事では実際に動かしているので視覚的に理解できます。
ぜひもっと知りたいという方はこの記事をさんこうにしてみてくださいね〜