渋谷ほととぎす通信

Unity・ゲーム開発 技術で一生食べていく情報発信

【Unity】親子でserializeされた同名private変数を定義するとビルドは失敗する

恒例のUnity開発ビルド失敗共有記事です。
今回は以下のようなエラー

The same field name is serialized multiple times in the class or its parent class. This is not supported: Base(MonoBehaviour) _tweenTarget

結論から「親・子クラスで同名のシリアライズされた同名変数禁止」ということです。

具体的に説明すると以下のような2クラスです。

public class Parent : MonoBehaviour
{
    [SerializeField] private GameObject _hoge;
}
// Parentを継承したChildクラス
public class Child : Parent
{
    [SerializeField] private GameObject _hoge;
}

_hogeは親子で同名変数です。
private変数だからOKではないのです。

[SerializeField]を付与しているため、
内部的に_hoge同士がコンフリクト。

ゆえにビルドが失敗しますのでご注意を。

※変数名を変更しましょう。

環境

  • Unity2021.1.2f1