- Home /
Find all instances of a script in the scene?
I want to find all instances of the ArmyUnit script in the scene. I googled it and I'm pretty sure I'm supposed to use FindObjectsOfType(type), but 1) I don't know what "types" are in this context, and 2) Im not 100% sure that's how to do it. If so, how exactly should it be coded, or if not, what should I use?
1) type means type of class. Such as: typeof(GameObject)
for example: GameObject[] objs = FindObjectsOfType(typeof(GameObject)) as GameObject[];
2) I use a external tool to find all instances of a script in the scene. It's very handy.
Answer by rutter · Jun 03, 2014 at 11:27 PM
In the most general sense, a "type" is any data type (int, float, boolean, MonoBehaviour, and so on). It includes both "primitive types" that are built into the language, and "defined types" that are part of your code or the libraries referenced by your code.
In the case of your behavior scripts, the type is the name of the class. In most cases, and especially if you're coding in JS, the scripts filename matches the class name.
So, if you're in JavaScript:
var armyUnits : ArmyUnit[] = FindObjectsOfType(ArmyUnit);
Or, if you're in C#:
ArmyUnit[] armyUnits = FindObjectsOfType(typeof(ArmyUnit));
Both of the above do the exact same thing; the two languages just have slightly different syntax.
If you haven't practiced with arrays, now might be a good time to look up a tutorial. The Unity wiki has an interesting page about collections, including lists and arrays.
You may need to add "as ArmyUnit[]" if you're using C#, to avoid to following error:
Cannot implicitly convert type 'UnityEngine.Object[]' to 'ArmyUnit[]'
So, the code would appear as follows:
ArmyUnit[] armyUnits = FindObjectsOfType(typeof(ArmyUnit)) as ArmyUnit[];
Your answer
Follow this Question
Related Questions
The name 'Joystick' does not denote a valid type ('not found') 2 Answers
How to import the object from server to unity 2 Answers
Find guiTexture objects by scripting 3 Answers
Prefab being altered by changes implemented to instances at run time 1 Answer
C# The call is ambiguous between the following methods or properties 1 Answer