Итак, я реализую изогнутый класс Text, который наследуется от текста. В этом у меня есть эта OnValidate реализация:Почему я не могу переопределить «OnValidate()» в Unity3D?
protected override void OnValidate()
{
base.OnValidate();
// some other code
}
Теперь, когда я пытаюсь построить проект, я получаю эту ошибку:
error CS0115: CurvedText.OnValidate() is marked as an override but no suitable method found to override
Итак, я был в порядке, это даже странно VS предложить подмену. Итак, что мне делать дальше? Удалите ключевое слово переопределения и игнорируйте предупреждение VS. Таким образом, теперь единство вызывает эту ошибку:
error CS0117: UnityEngine.UI.Text does not contain a definition for OnValidate
Итак, что мне теперь делать? Я должен также упомянуть, что когда скрипт добавляется к объекту в сцене, он работает так, как ожидалось, и ошибок не возникает.
Существует нет OnValidate в базовом классе для переопределения –
, но вещь есть. [Проверить это] (https://docs.unity3d.com/ScriptReference/UI.Text.html) –
Согласно ссылке, 'OnValidate' не является' virtual', поэтому его нельзя переопределить. Это может быть просто неточностью ссылки на скрипт, но поскольку VS соглашается, это, вероятно, так. – Luaan