Ответ 3, если по какой-то причине вас интересует механизм, с помощью которого «волшебные» функции Unity работают в Unity (в текущей версии - он сильно меняется)
обязательно загляните в обширное обсуждениена этом примере:
Как работают методы пробуждения и запуска Unity private?
Это очень неинтересно и ни на что не влияет.
Вам может понравиться этот длительный QA, который доходит до сути этой проблемы:
В Unity, как Unity волшебным образом называет все «Интерфейсы»?
Скорее всего вы просто ищете ключевые слова New
и Override
в c #.
(У каждого языка есть немного разные синтаксис / парадигмы для наследования.)
Override
расширяет функцию в базовом классе, а New
скрывает ее.Выбор за вами:)
Это широко объясняется, например:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords
(Если вы буквально спрашиваете о необычной парадигме «магических» функций Unity (Update()
и т. Д.), Это невозможно сделать, и вы все равно не хотите.)
Есть еще одна возможная вещь, которую вы спрашиваете:
Это довольноДля новых разработчиков Unity характерно не осознавать этого:
Как вы говорите, Unity дает вам MonoBehavior
.
Новые программисты Unity часто не понимают, что вы, как правило, делают "базу"класс с использованием MonoBehavior
class Weapon: MonoBehavior {
... explosions
... sound effects
... etc
}
, а затем вы и другие программисты пишете классы на основе этого класса:
class Slingshot: Weapon {
class Peashooter: Weapon {
class SplatRoller: Weapon {
Обратите внимание, что эти новые классына самом деле они монофоненты - вы можете, делать и должны использовать в них «Пробуждение», «Обновление» и т. д. обычно!
Я думаю, это может быть то, о чем вы спрашиваете.