Hi, I have been working on this script:
ArgumentException: GetComponent requires that the requested component 'List`1' derives from MonoBehaviour or Component or is an interface. UnityEngine.Component.GetComponent[List`1] () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/ComponentBindings.gen.cs:48) PlaneAttack.Start () (at Assets/Scripts/PlaneAttack.cs:131)
I entered the first line into Unity answers but to no avail as none of the previous answers suited my script.
Thanks
NOTE: this is a simplified version of my final script, and the lines listed in the error will not match those in the code shown.
public enum PlaneType
{
SmallBomber,
MediumBomber,
LargeBomber
}
public PlaneType planetype;
public List Plane = new List();
public List Spawns = new List();
public List Remove = new List();
public bool T;
public void PlaneAttack(PlaneType type)
{
if (type == PlaneType.SmallBomber)
{
for (int i = 0; i < 2; i++)
{
Instantiate(Plane[1]);
Instantiate(Plane[2]);
Thread.Sleep(1000);
}
}
else if (type == PlaneType.MediumBomber)
{
for (int i = 0; i < 2; i++)
{
Instantiate(Plane[0]);
Thread.Sleep(3000);
}
}
else
{
Instantiate(Plane[0]);
}
}
Plane = GetComponent>();
for (int i = 0; i < 5; i++)
{
Spawns.Add(GameObject.Find("Spawn " + i.ToString()));
}
for (int j = 0; j < 5; j++)
{
Remove.Add(GameObject.Find("Destroy " + j.ToString()));
}
for (int a = 0; a < 3; a++)
{
Plane.Add(GameObject.Find("EnemyPlane Small"));
}
Plane[0].GetComponent().StartPoint = Spawns[3].transform;
Plane[0].GetComponent().EndPoint = Remove[3].transform;
Plane[1].GetComponent().StartPoint = Spawns[2].transform;
Plane[1].GetComponent().EndPoint = Remove[2].transform;
Plane[2].GetComponent().StartPoint = Spawns[4].transform;
Plane[2].GetComponent().EndPoint = Remove[4].transform;
}
// Update is called once per frame
void Update () {
if (T == true)
{
PlaneAttack(planetype);
T = false;
}
}
}
I have 3 copies of the same prefab, in the Plane list, but with different transform set (using empty GameObjects that act as Markers). When debugging, this error is thrown:ArgumentException: GetComponent requires that the requested component 'List`1' derives from MonoBehaviour or Component or is an interface. UnityEngine.Component.GetComponent[List`1] () (at C:/buildslave/unity/build/artifacts/generated/common/runtime/ComponentBindings.gen.cs:48) PlaneAttack.Start () (at Assets/Scripts/PlaneAttack.cs:131)
I entered the first line into Unity answers but to no avail as none of the previous answers suited my script.
Thanks
NOTE: this is a simplified version of my final script, and the lines listed in the error will not match those in the code shown.