What is the difference between Component, Behaviour and MonoBehaviour? And why these are separated? : <p>MonoBehaviour extends Behaviour and Behaviour extends Component.
I want to know why these classes are separated and semantic meanings of these classes.
Are there any purpose to separate these classes? And are there any classes extending Behaviour or Component directly?</p>

<p>I know we must use MonoBehaviour to create C# codes in Unity. 
However, I'm interesting in architecture of Unity as a game engine.</p>
