Когда внешний скрипт вызывает .copy(), он всегда получает родительский компонент DataComponent, а не BooleanProperty. >
Если copy() не вызывается, вместо этого получается передача по ссылке, в результате чего изменения в одном экземпляре влияют на другой (потому что они одинаковы; мне это не нужно). );
Я считаю, что это моя проблема: я не знаю синтаксиса языка или чего-то еще, надеюсь, это именно так.
Использование Unity 2020.3 .17f1 с Windows 10.
Код двух классов:
Код: Выделить всё
[System.Serializable]
public class DataComponent
{
public DataComponent(string n = "")
{
name = n;
}
public string name;
[System.NonSerialized]public string value;
public DataComponent copy()
{
DataComponent ret = new DataComponent(this.name);
ret.value = this.value;
return ret;
}
}
[System.Serializable]
public class BooleanProperty : DataComponent
{
public BooleanProperty(string n = "") : base(n) { }
public new bool value;
public new BooleanProperty copy()
{
BooleanProperty ret = new BooleanProperty(name);
ret.value = value;
return ret;
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... of-a-class