Script Execution Order Question

Hello everyone, I’ve got a question about the execution of a script I made that deals with when values applied from the inspector are executed.

The problem:
I made a script that requires that that bools be checked for the script to spawn certain prefabs in the scene. The script (in Awake) then adds prefabs based on the selections into a List. However, reguardless of the bool status, all prefabs are added into the list (and debug statements show that the script considers all bools to be true even if none actually are).

This is solved by moving the script into Start, but I was wondering what the logic behind the scenes was.

The script in question:

	void Awake ()
	{
		prefabNumberArray = new List<GameObject>();
		if (useRockPrefab1 == true)
		{
			Debug.Log ("adding rock1Prefab" + useRockPrefab1);
			prefabNumberArray.Add (rock1Prefab);
		}

		if (useRockPrefab2 == true)
		{
			Debug.Log ("adding rock2Prefab" + useRockPrefab2);
			prefabNumberArray.Add (rock2Prefab);
		}

		if (useRockPrefab3 == true)
		{
			Debug.Log ("adding rock3Prefab" + useRockPrefab3);
			prefabNumberArray.Add (rock3Prefab);
		}

		if (useRockPrefab4 == true)
		{
			Debug.Log ("adding rock4Prefab" + useRockPrefab4);
			prefabNumberArray.Add (rock4Prefab);
		}
	}

Question solved according to comments, please summarize your solution as an answer for future reference. Adding this answer to remove it from the Unanswered view and give more relevance to other questions requiring attention. Thanks for your comprehension, Unity Support.