Array of Objects of a Class

I would assume this is relatively straightforward.
I just switched over from UnityScript to C#, and I have to admit it is largely superior, even in the fact that it very tangibly helps you understand the object-class relationships in the game project. I all ready prefer it.

Anyways, I’m just trying to get a quick array set up of references to instances of a SpawnPoint class. SpawnPoint is a script attached to a Spawn Point prefab, and I’m just cycling through them when a level loads to get a list of them.

However, I am having trouble populating this array.

To get a reference to the class, I am using GetComponent. I understand why this doesn’t work- GetComponent returns a type and not a variable/value. I just don’t know what other method I should employ here.

Thanks for the help! - YA

P.S: Is there any way for me to get rid of the automagically created ‘Use this for initialization’ and ‘Updates every frame’ comments? They’re a small annoyance but still…

using UnityEngine;
using System.Collections;

public class SpawnCont : MonoBehaviour {
	
	public SpawnPoint[] pointArr;
	public GameObject player;
	public SpawnPoint current;

	// Use this for initialization
	void Start () {
		
		pointArr = new SpawnPoint[ transform.childCount ];
		//Because of this, don't make anything but spawnpoints children
		
		int count = 0;
		//Make sure we get through full list

		foreach( Transform child in transform ){

			//The important part 
			//THIS IS WHERE THE ERROR IS
			pointArr[count] = child.GetComponent( SpawnPoint );
			count += 1;
		}

		SetActive ( pointArr[0] );
		Debug.Log ( "Spawning Player at: " + pointArr[0].pos.x );
		Spawn( player );
	}
	
	void SetActive( SpawnPoint myPoint ){
		for( int i = 0; i < pointArr.Length; i++ ){
			pointArr*.activated = false;*
  •  }*
    
  •  myPoint.activated = true;*
    
  •  current = myPoint;*
    
  • }*

  • void Spawn( GameObject player ){*

  •  Instantiate( player, current.pos, Quaternion.identity );*
    
  • }*
    }

1.If you’re trying to get the SpawinPoint from SpawnPointScript

2.First define a spawn point return function on your SpawnPoint script.

2.1.For example let the function be “ReturnSpawnPoint()”

  1. And at the start() of SpawnCount script use the following code:

using UnityEngine;
using System.Collections;

public class SpawnCont : MonoBehaviour {

public SpawnPoint[] pointArr;
public GameObject player;
public SpawnPoint current;

// Use this for initialization
void Start () {

   pointArr = new SpawnPoint[ transform.childCount ];
   //Because of this, don't make anything but spawnpoints children

   int count = 0;
   //Make sure we get through full list

   //this will create an instance 
     current = child.GetComponent<SpawnPoint>();


   foreach( Transform child in transform ){

     //The important part 

   

    //This will assign the spawnpoint

     pointArr[count] = current.ReturnSpawnPoint();
     count += 1;
   }

   SetActive ( pointArr[0] );
   Debug.Log ( "Spawning Player at: " + pointArr[0].pos.x );
   Spawn( player );
}