Also implementiere ich eine gekrümmte Text-Klasse, die von Text erbt. Darin habe ich diese OnValidate Umsetzung:Warum kann ich "OnValidate()" in Unity3D nicht überschreiben?
protected override void OnValidate()
{
base.OnValidate();
// some other code
}
Jetzt, wenn ich versuche, das Projekt, das ich diesen Fehler zu bauen:
error CS0115: CurvedText.OnValidate() is marked as an override but no suitable method found to override
Also dann war ich ok diese wierd ist auch VS die überragende vorschlagen. Was mache ich als nächstes? Entfernen Sie das Schlüsselwort override und ignorieren Sie die VS-Warnung. Also jetzt Einheit wirft diesen Fehler:
error CS0117: UnityEngine.UI.Text does not contain a definition for OnValidate
Also was mache ich jetzt? Ich sollte auch erwähnen, dass, wenn das Skript zu einem Objekt in der Szene hinzugefügt wird, es wie erwartet funktioniert und keine Fehler geworfen werden.
Es gibt keine OnValidate in der Basisklasse für die Überschreibung –
, aber die Sache ist, gibt es. [Check this] (https://docs.unity3d.com/ScriptReference/UI.Text.html) –
Laut der Referenz ist 'OnValidate' nicht' virtuell' und kann daher nicht überschrieben werden. Dies könnte nur eine Ungenauigkeit der Skript-Referenz sein, aber da VS zustimmt, ist es wahrscheinlich wahr. – Luaan