私はテキストを継承した曲線のTextクラスを実装しています。その中で私はこのOnValidate実装を持っている:Unity3Dで "OnValidate()"をオーバーライドできないのはなぜですか?
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
それでは、私はOKだった、これは奇妙であってもVSオーバーライドを示唆しています。それで私は次に何をしますか? overrideキーワードを削除し、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