// Start is called before the first frame update void Start() { Transform t = this.transform.parent; if (t) { //Debug.Log("Found parent"); _ws = t.GetComponentInChildren <bWorkerScript>(); if (_ws) { // Debug.Log("Found WS"); GameObject go = _ws.getOwner(); if (go) { _bo = go.GetComponent <BuildableObject>(); } else { // bWorker hasn't finished its start setup, need delay StartCoroutine(ReSetup()); // Debug.Log("ReSetup"); } FigureOutMode(); } else { //Debug.Log("Cant find ws in children so Resetup2"); StartCoroutine(ReSetup2()); } } }
IEnumerator ReSetup2() { yield return(new WaitForSeconds(1f)); Transform t = this.transform.parent; if (t) { // Debug.Log("Found parent"); _ws = t.GetComponentInChildren <bWorkerScript>(); if (_ws) { // Debug.Log("Found WS"); GameObject go = _ws.getOwner(); if (go) { _bo = go.GetComponent <BuildableObject>(); } else { // bWorker hasn't finished its start setup, need delay StartCoroutine(ReSetup()); //Debug.Log("ReSetup"); } FigureOutMode(); } } }
//if bo is never used, this is irrelevant.. private void FigureOutMode() { if (_ws) { if (_ws.getOwner() == null) { return; } if (_ws.getOwner().GetComponent <BuildableObject>()) { _onBuilding = true; } else if (_ws.getOwner().GetComponent <PlayerStats>()) { _onPlayer = true; } } }