Unityの自作クラスでclassの拡張メソッドであるDeepCopy()をしようとしたらエラーが出る(自分用メモ)

結論

Unityの"ScriptableObject"などは[Serializable]でないため、それらを継承したクラスはDeepCopy()できない。

DeepCopy()って?

このサイトのように、DeepCopy()をC#に実装することで、簡単にクラスのディープコピーができるようになる。ただし、ディープコピーするクラスに[System.Serializable]を付与しなければならない。

対策

"ScriptableObject", "MonoBehaviour"などを継承しない。
継承が必要な場合、自分でディープコピーをクラスごとに設定する。

楽ができると思ったのに……


この記事が気に入ったらサポートをしてみませんか?