public void SpawnRock() { GameObject go = Instantiate(f_prefab, new Vector3(Random.Range(f_collider.bounds.min.x, f_collider.bounds.max.x), transform.position.y, 0), Quaternion.identity, transform); RhinoBoss rb = go.GetComponent <RhinoBoss>(); rb.SwitchState(true); rb.Velocity = 3 * Vector2.down; }
private IEnumerator StartFromDoor(Door door, RhinoBoss rhinoBoss) { List <RhinoBoss> spawned = new List <RhinoBoss>(); // if (Random.value < f_createPercentage) { // for (int i = 0; i < 100; ++i) { // yield return new WaitForFixedUpdate(); // } // for (int i = 0; i < 4; ++i) { // GameObject go = Instantiate(pre_little, f_doors[i].SpawnPoint.position, Quaternion.identity); // yield return new WaitForFixedUpdate(); // RhinoBoss rb = go.GetComponent<RhinoBoss>(); // rb.SwitchState(Random.value > 0.5f); // rb.Velocity = f_doors[i].StartDirection; // go.SetActive(true); // spawned.Add(rb); // rb.SetStartState(rb.ActiveState); // } // } int lastSpawn = f_lastSpawn[door]; int addedOffset = Mathf.Max(0, MIN_SPAWN_OFFSET - (GameManager.Instance.Frame - lastSpawn)); f_lastSpawn[door] = GameManager.Instance.Frame + addedOffset; for (int i = 0; i < addedOffset; ++i) { yield return(new WaitForFixedUpdate()); } for (int i = 0; i < DOOR_DELTA; ++i) { yield return(new WaitForFixedUpdate()); } // foreach (RhinoBoss rb in spawned) { // rb.GroundMovement.SetGroundMask(new string[] { "Default", "MonsterTransparent" }); // } // for (int i = 0; i < 75; ++i) { // yield return new WaitForFixedUpdate(); // } rhinoBoss.Velocity = door.StartDirection; rhinoBoss.Mirror.localScale = new Vector3(door.StartDirection.normalized.x, 1, 1); //rhinoBoss.SwitchState(Random.value > 0.5f); rhinoBoss.ToggleState(); rhinoBoss.Velocity = door.StartDirection; rhinoBoss.transform.position = door.SpawnPoint.position; rhinoBoss.gameObject.SetActive(true); }
public void SetNextStep(Door door, RhinoBoss rhinoBoss) { rhinoBoss.gameObject.SetActive(false); List <Door> freeDoors = new List <Door>(); foreach (Door d in f_doors) { //if (!d.ContainsPlayer()) { if (d == door) { continue; } freeDoors.Add(d); //} } int rand = Random.Range(0, freeDoors.Count); StartCoroutine(StartFromDoor(freeDoors[rand], rhinoBoss)); }