Unity C#, переопределить тип переменной в дочернем классе ⇐ C#
Unity C#, переопределить тип переменной в дочернем классе
Я постараюсь изо всех сил объясниться, но английский не мой родной язык.
Подводя итог: я хочу переопределить тип переменной в дочернем классе или что-то подобное, чтобы мои дочерние классы всегда имели «последнюю» версию каждого класса.
Сейчас у меня есть 2 класса > Animal и AnimalAnimator, и у обоих классов есть дочерние классы Dog и DogAnimator.
Класс
Animal выглядит следующим образом:
публичный класс Animal: MonoBehaviour { общественный AnimalAnimator Animator {get; частный набор; } частная виртуальная пустота Awake() { Аниматор = GetComponent(); [код...] } } Я хочу сделать что-то подобное с Dog:
public class Dog: Animal { общественный новый DogAnimator Animator {get; частный набор; } частное переопределение void Awake() { база.Пробуждение(); Аниматор = GetComponent(); } } Я хочу, чтобы Dog расширял Animal и переопределял компонент AnimalAnimator с помощью DogAnimator (который расширяет DogAnimator. Но Unity выдает мне следующую ошибку:
Одно и то же имя поля сериализуется несколько раз в классе или его родительском классе. Это не поддерживается: Base(Dog) k__BackingField Возможно ли это на C#? Как мне действовать?
Большое спасибо.
Я постараюсь изо всех сил объясниться, но английский не мой родной язык.
Подводя итог: я хочу переопределить тип переменной в дочернем классе или что-то подобное, чтобы мои дочерние классы всегда имели «последнюю» версию каждого класса.
Сейчас у меня есть 2 класса > Animal и AnimalAnimator, и у обоих классов есть дочерние классы Dog и DogAnimator.
Класс
Animal выглядит следующим образом:
публичный класс Animal: MonoBehaviour { общественный AnimalAnimator Animator {get; частный набор; } частная виртуальная пустота Awake() { Аниматор = GetComponent(); [код...] } } Я хочу сделать что-то подобное с Dog:
public class Dog: Animal { общественный новый DogAnimator Animator {get; частный набор; } частное переопределение void Awake() { база.Пробуждение(); Аниматор = GetComponent(); } } Я хочу, чтобы Dog расширял Animal и переопределял компонент AnimalAnimator с помощью DogAnimator (который расширяет DogAnimator. Но Unity выдает мне следующую ошибку:
Одно и то же имя поля сериализуется несколько раз в классе или его родительском классе. Это не поддерживается: Base(Dog) k__BackingField Возможно ли это на C#? Как мне действовать?
Большое спасибо.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение