I am making an idle 2d game, and my code stop working in the part whem i try to add a GameObject on a list.
Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowersDB : MonoBehaviour {
public Manager main;
public List<GameObject> followers;
public GameObject followerPrefab;
public int army;
public bool load=false;
int i=0;
public float[,] data = new float[6, 4];
public int idlle;
public bool active=false;
public Transform thisObj;
// Use this for initialization
void Start () {
followers=new List<GameObject>();
if (followers == null) {
Debug.Log ("HA");
}
thisObj = GameObject.FindWithTag ("CharTab").transform;
main = GameObject.FindWithTag ("manager").GetComponent<Manager> ();
LS (2);
foreach (GameObject obb in followers) {
if (obb.GetComponent<Follower> ().lv != 0) {
idlle = idlle + obb.GetComponent<Follower> ().DMG;
} else {
idlle = idlle + 0;
}
}
main.idle = idlle;
idlle = 0;
}
// Update is called once per frame
void Update () {
foreach (GameObject obb in followers) {
if (obb.GetComponent<Follower> ().lv != 0) {
idlle = idlle + obb.GetComponent<Follower> ().DMG;
} else {
idlle = idlle + 0;
}
}
main.idle = idlle;
idlle = 0;
data [0, 0] = followers [0].GetComponent<Follower> ().DMG;
data [0, 1] = followers [0].GetComponent<Follower> ().lv;
data [0, 2] = followers [0].GetComponent<Follower> ().mult;
data [0, 3] = followers [0].GetComponent<Follower> ().lvCost;
data [1, 0] = followers [1].GetComponent<Follower> ().DMG;
data [1, 1] = followers [1].GetComponent<Follower> ().lv;
data [1, 2] = followers [1].GetComponent<Follower> ().mult;
data [1, 3] = followers [1].GetComponent<Follower> ().lvCost;
data [2, 0] = followers [2].GetComponent<Follower> ().DMG;
data [2, 1] = followers [2].GetComponent<Follower> ().lv;
data [2, 2] = followers [2].GetComponent<Follower> ().mult;
data [2, 3] = followers [2].GetComponent<Follower> ().lvCost;
data [3, 0] = followers [3].GetComponent<Follower> ().DMG;
data [3, 1] = followers [3].GetComponent<Follower> ().lv;
data [3, 2] = followers [3].GetComponent<Follower> ().mult;
data [3, 3] = followers [3].GetComponent<Follower> ().lvCost;
data [4, 0] = followers [4].GetComponent<Follower> ().DMG;
data [4, 1] = followers [4].GetComponent<Follower> ().lv;
data [4, 2] = followers [4].GetComponent<Follower> ().mult;
data [4, 3] = followers [4].GetComponent<Follower> ().lvCost;
data [5, 0] = followers [5].GetComponent<Follower> ().DMG;
data [5, 1] = followers [5].GetComponent<Follower> ().lv;
data [5, 2] = followers [5].GetComponent<Follower> ().mult;
data [5, 3] = followers [5].GetComponent<Follower> ().lvCost;
if (active == true) {
thisObj.localPosition = new Vector3 (0, 0, 0);
} else {
thisObj.localPosition = new Vector3 (1000, 1000, 0);
}
}
public void LS(int opt){
SaveLoad sl = GameObject.FindWithTag("manager").GetComponent<SaveLoad>();
if (opt == 1) {
sl.Save ();
Debug.Log (data[0,0]);
opt = 0;
} else if (opt == 2) {
sl.Load ();
if (load == true) {
Debug.Log ("loaded");
GameObject o = Instantiate (followerPrefab, new Vector3 (0, 286f, 0), Quaternion.identity)as GameObject;
Follower f0 = o.AddComponent<Follower> ();
f0.Name = "Ajudante 1";
f0.DMG = (int)data [0, 0];
f0.lv = data [0, 1];
f0.mult = data [0, 2];
f0.lvCost = data [0, 3];
followers.Add (o);//NullReferenceException: Object reference not set to an instance of an object
GameObject o1 = Instantiate (followerPrefab, new Vector3 (0, 50f, 0), Quaternion.identity)as GameObject;
Follower f1 = o1.AddComponent<Follower> ();
f1.Name = "Ajudante 2";
f1.DMG = (int)data [1, 0];
f1.lv = data [1, 1];
f1.mult = data [1, 2];
f1.lvCost = data [1, 3];
followers.Add (o1);//NullReferenceException: Object reference not set to an instance of an object
GameObject o2 = Instantiate (followerPrefab, new Vector3 (0,-186f, 0), Quaternion.identity)as GameObject;
Follower f2 = o2.AddComponent<Follower> ();
f2.Name = "Ajudante 3";
f2.DMG = (int)data [2, 0];
f2.lv = data [2, 1];
f2.mult = data [2, 2];
f2.lvCost = data [2, 3];
followers.Add (o2);//NullReferenceException: Object reference not set to an instance of an object
load = false;
} else if(load==false){
followers = null;
GameObject o = Instantiate (followerPrefab, new Vector3 (0, 154.55f, 0), Quaternion.identity)as GameObject;
Follower f0 = o.AddComponent<Follower> ();
f0.Name = "Ajudante 1";
f0.DMG = 2;
f0.lv = 0;
f0.mult = 1.5f;
f0.lvCost = 10;
Debug.Log ("Adding");
followers.Add (o);//NullReferenceException: Object reference not set to an instance of an object
GameObject o1 = Instantiate (followerPrefab, new Vector3 (0, 0, 0), Quaternion.identity)as GameObject;
Follower f1 = o1.AddComponent<Follower> ();
f1.Name = "Ajudante 2";
f1.DMG = 4;
f1.lv = 0;
f1.mult = 1.5f;
f1.lvCost = 100;
followers.Add (o1);//NullReferenceException: Object reference not set to an instance of an object
GameObject o2 = Instantiate (followerPrefab, new Vector3 (0, -154.55f, 0), Quaternion.identity)as GameObject;
Follower f2 = o2.AddComponent<Follower> ();
f2.Name = "Ajudante 3";
f2.DMG = 10;
f2.lv = 0;
f2.mult = 1.5f;
f2.lvCost = 500;
followers.Add (o2);//NullReferenceException: Object reference not set to an instance of an object
GameObject o3 = Instantiate (followerPrefab, new Vector3 (0, -154.55f, 0), Quaternion.identity)as GameObject;
Follower f3 = o3.AddComponent<Follower> ();
f3.Name = "Ajudante 4";
f3.DMG = 200;
f3.lv = 0;
f3.mult = 1.5f;
f3.lvCost = 500;
followers.Add (o3);//NullReferenceException: Object reference not set to an instance of an object
GameObject o4 = Instantiate (followerPrefab, new Vector3 (0, -154.55f, 0), Quaternion.identity)as GameObject;
Follower f4 = o4.AddComponent<Follower> ();
f4.Name = "Ajudante 5";
f4.DMG = 1000;
f4.lv = 0;
f4.mult = 1.5f;
f4.lvCost = 500;
followers.Add (o4);//NullReferenceException: Object reference not set to an instance of an object
GameObject o5 = Instantiate (followerPrefab, new Vector3 (0, -154.55f, 0), Quaternion.identity)as GameObject;
Follower f5 = o5.AddComponent<Follower> ();
f5.Name = "Ajudante 6";
f5.DMG = 10000;
f5.lv = 0;
f5.mult = 1.5f;
f5.lvCost = 500;
followers.Add (o5);//NullReferenceException: Object reference not set to an instance of an object
}
if (followers != null) {
foreach (GameObject obj in followers) {
obj.transform.SetParent (GameObject.FindWithTag ("followerPan").transform, false);
}
}
opt = 0;
}
}
public void CharMenu(){
if (active == true) {
active = false;
} else {
active = true;
}
}
}