public IEnumerator attachCreature() { tempBack = mainHead.GetComponent <EnemyHead>().back; if (tempBack != null) { for (int i = 0; i < 50; i++) { if (tempBack.GetComponent <EnemyBack>().back != null) { if (tempBack.GetComponent <EnemyBack>().back.GetComponent <EnemyTail>() != null) { tempTail = tempBack.GetComponent <EnemyBack>().back; break; } tempBack = tempBack.GetComponent <EnemyBack>().back; } else { break; } } } attachingCreature = true; yield return(new WaitForSeconds(0.8f)); tempBack.GetComponent <EnemyBack>().back = back; back.GetComponent <EnemyBack>().front = tempBack; TailPool.goInPool(tempTail); HeadPool.goHeadInPool(gameObject); }
void Update() { speed = EnemyHead.speed / 10.0f; if (front != null) { transform.position = Vector3.Lerp(transform.position, front.transform.position, speed); moveDirection = front.transform.position - transform.position; if (moveDirection != Vector3.zero) { float angle = Mathf.Atan2(-moveDirection.x, moveDirection.y) * Mathf.Rad2Deg; transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); } } if (front == null || front.activeSelf == false) { TailPool.goInPool(gameObject); } }