MonoBehavior vs UnityBehaviour

Curious why MonoBehaviour was chosen as the base class name instead of UnityBehaviour? The base class is Unity specific and not Mono specific, yes? It creates some confusion. I think it makes sense to rename it to UnityBehaviour, distinguishing it from the Mono project. I vote to begin the process of depreciating MonoBehaviour in-favor of UnityBehaviour — it is now time.

Added to SUGGESTIONS forum, please vote up:
https://feedback.unity3d.com/suggestions/change-monobehaviour-to-unitybehaviour

Some decisions become very hard to change, once they’re rolled out to a large user base…

Some aren’t. That’s the goal of the depreciation process. People can still use MonoBehaviour for a time, in the meantime docs get updated with UnityBehaviour. Simple.

From what i’ve read about the general attitude they have for rolling out new features, they’re extremely cautious in breaking existing code that used to work.

While you could simply create another identical type called UnityBehaviour, and mark the older one as obsolete or something similar, this still probably means work that has to be done… work that would lead to very little (if any) value to us developers.

I would be truly surprised if anyone would go for this, unless i am missing some of the valid reasons for doing it.

Leaving it at MonoBehaviour means they can change the name of the engine if they ever are bored with the current name. It’s also one less letter, and there are fewer namespaces starting with “Mono”, so auto-completion should be pretty quick no matter what. Also, not worth worrying about :wink:

@orb Sorry, but that’s just silly. @liortal , the value is correctness. While most (including me) are use to MonoBehaviour, it simply isn’t correct and invokes some confusion. There are no MonoBehaviour’s, there are however UnityBehaviour’s.

Additionally, using another project name as the base class name (in whole or part) for your framework, cheapens it. Comes off a bit amateurish. I might expect such an oversight or mistake from a high-school kid, not $100+m company.

The good news is; it’s easy to correct and given all the changes and growth Unity is undergoing, the time is ripe.

No, it’s silly to complain about a thing that works fine and won’t improve anything. I don’t feel the need to break 100% of all Unity scripts.

The idea comes from the fact that there’s a Behaviour class and there’s a MonoBehaviour which is the base class for a behaviour that is defined using Mono (in C# or Unityscript) by us developers.

It will improve properness.

I understand that Mono was used, but it’s not an excuse for naming a Unity framework after the Mono Project upon which it’s built - wink.

It’s as silly as naming a base class CPlusPlusBehaviour (assuming C++ was the underlining language used).

Correctness is not something valued around these parts.

I agree with you. And actually, Unity sort of agrees with you too. If you watch the latest Unite 2016 roadmap/wishlist video, they vaguely mention thoughts of replacing MonoBehaviour with a “ScriptBehaviour”. But not for a very very very long time. In fact, I’d bet money on never.

1 Like

While they’re at it, they should adopt proper American English and spell it Behavior. We didn’t win independance just to keep spelling words the old way. /s

2 Likes