Hi, I’m in the process of looking over another person’s code and found a line that I don’t understand.
Missile missileObj = (Missile)objectsList;
Missile is a class that creates a new missile object (taking in Direction, Transform).
objectsList is an arrayList of all the missile objects that currently exist.
My question is why after the ‘=’ there is another reference to the missile class? Is this some kind of C# specific shorthand?
In most cases casting is done implicitly, like assigning a
float value to an
int type variable.
But you can also explicitly cast types:
int foo = 0.0;
int foo = (int)(0.0);
int foo = 0.0 as int;
The same goes for any other type.
In your case you have an array. An array holds object’s of type
object. Meaning it can be anything.
But your variable is of a specific type, so it is good to explicitly cast it, but it is not necessary.
Also note that Explicit casting is always faster than implicit. It’s the main reason why:
Missile obj = GetComponent(typeof(Missile)) as Missile;
//is faster than
Missile obj = GetComponent(Missile)
Hope this helps,
It is a type casting.
Have a look at this
Suppose that you have a hierarchy class like that :
class A is parent of class B.
It is used when you know that an instance of A is in fact an instance of B. The type casting is useful here if you want to use some methods defined in the class B for example.