- Home /
Does Unity support the declaration of several classes in one script?
It is my understanding that each .js automatically declares one class by default. This class is derived from MonoBehaviour and has the same name as the script.
You can also declare your own class with
class MyClass {/* variables and functions */}
Would that automatically derive from MonoBehaviour, too?
When I've seen examples of this, MyClass still had the same name as the Script (that is: MyClass in the MyClass.js-Script). Is that a must?
And you can declare your own derived class with
class MyClass extends MyParentClass {/* variables and functions */}
But is it possible to declare several Classes in one Script?
I've seen several script-examples in the forum or here wich looked like it is possible, but I'm not sure if it wasn't just for convenient's sake to not specify that the sniplets were each in their own script-file.
If it's possible, are there any restrictions or downsides to using this?
Thanks & Greetz, Ky.
Answer by Mortim · Dec 28, 2009 at 10:10 PM
You can declare several classes in one script. However, when you attach a script to an object, the class that will be attached is the class whose name correspond to the name of the script file, and this class must extend MonoBehaviour.
In most object oriented programming languages, it is often recommended to have one separate file for each class. Exceptions are when you need to declare a class which is only used by one other class, for convenience purposes, or if you need to declare several very simple classes. The same guidelines should apply to unity.
Thank you =) So having one class with the same name as the script is obligatory. Just to be sure: This one has to extend $$anonymous$$onoBehaviour means it can extend $$anonymous$$onoBehaviour or any of $$anonymous$$onoBehaviour's SubClasses, right?
Yep, $$anonymous$$onoBehaviour or any of $$anonymous$$onoBehavior's subclasses.
Answer by flaminghairball · Dec 28, 2009 at 09:46 PM
While I see no reason it shouldn't be possible, I don't see how it would work within Unity, due to problems with adding components to objects(which class are you adding?).
I could be wrong though.
Best wishes,
-Lincoln Green
Your answer
Follow this Question
Related Questions
Does Unity support multiple Inheritance? 3 Answers
Not every Class in the API is derived from the "Object"-Class, so what are they? 2 Answers
What's the difference between a struct and a class? 1 Answer
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
What is a Script when it's attatched to a GameObject? An Object? A Class? A Reference? 3 Answers