public void Init(RESPAWN_TYPE respawnType) { var pos = Vector3.zero; switch (respawnType) { case RESPAWN_TYPE.UP: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.down; break; case RESPAWN_TYPE.RIGHT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.left; break; case RESPAWN_TYPE.DOWN: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.up; break; case RESPAWN_TYPE.LEFT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.right; break; } transform.localPosition = pos; }
// 敵の移動の方向を決める関数 public Vector2 MoveSlanting(Vector2 position, RESPAWN_TYPE respawnType) { Vector2 direction = Vector2.zero; switch (respawnType) { // 出現位置が上だった時 case RESPAWN_TYPE.UP: // 中心より右側か左側か if (position.x < 0) { direction = new Vector2(Random.Range(0.0f, 1.0f), -1.0f); } else { direction = new Vector2(Random.Range(-1.0f, 0.0f), -1.0f); } break; // 出現位置が右だった時 case RESPAWN_TYPE.RIGHT: if (position.y < 0) { direction = new Vector2(-1.0f, Random.Range(0.0f, 1.0f)); } else { direction = new Vector2(-1.0f, Random.Range(-1.0f, 0.0f)); } break; case RESPAWN_TYPE.DOWN: // 中心より右側か左側か if (position.x < 0) { direction = new Vector2(Random.Range(0.0f, 1.0f), 1.0f); } else { direction = new Vector2(Random.Range(-1.0f, 0.0f), 1.0f); } break; case RESPAWN_TYPE.LEFT: if (position.y < 0) { direction = new Vector2(1.0f, Random.Range(0.0f, 1.0f)); } else { direction = new Vector2(1.0f, Random.Range(-1.0f, 0.0f)); } break; } return(direction); }
// 敵が出現する時に初期化する関数 public void Init(RESPAWN_TYPE respawnType) { var pos = Vector3.zero; // 指定された出現位置の種類に応じて、 // 出現位置と進行方向を決定する switch (respawnType) { // 出現位置が上の場合 case RESPAWN_TYPE.UP: transform.Rotate(new Vector3(0, 0, 90)); pos.x = Random.Range( -m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.down; break; // 出現位置が右の場合 case RESPAWN_TYPE.RIGHT: transform.Rotate(new Vector3(0, 0, 0)); pos.x = m_respawnPosOutside.x; pos.y = Random.Range( -m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.left; break; // 出現位置が下の場合 case RESPAWN_TYPE.DOWN: transform.Rotate(new Vector3(0, 0, -90)); pos.x = Random.Range( -m_respawnPosInside.x, m_respawnPosInside.x); pos.y = -m_respawnPosOutside.y; m_direction = Vector2.up; break; // 出現位置が左の場合 case RESPAWN_TYPE.LEFT: transform.Rotate(new Vector3(0, 0, 180)); pos.x = -m_respawnPosOutside.x; pos.y = Random.Range( -m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.right; break; } // 位置を反映する transform.localPosition = pos; }
// 敵が出現する時に初期化する関数 public void Init(RESPAWN_TYPE respawnType) { var pos = Vector3.zero; // 指定された出現位置の種類に応じて、 // 出現位置と進行方向を決定する switch (respawnType) { // 出現位置が上の場合 case RESPAWN_TYPE.UP: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.down; break; // 出現位置が右の場合 case RESPAWN_TYPE.RIGHT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.left; break; // 出現位置が下の場合 case RESPAWN_TYPE.DOWN: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = -m_respawnPosOutside.y; m_direction = Vector2.up; break; // 出現位置が左の場合 case RESPAWN_TYPE.LEFT: pos.x = -m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.right; break; } // 位置を反映する transform.localPosition = pos; // プレイヤーを追尾しない敵の場合 if (!m_isFollow) { // 10 秒後には画面外に出ていると予想して、 // 10 秒後に削除する Destroy(gameObject, 10); } }
// 敵が出現する時に初期化する関数 public void Init(RESPAWN_TYPE respawnType) { Vector2 pos = Vector3.zero; // 指定された出現位置の種類に応じて、出現位置と進行方向を決定する switch (respawnType) { // 出現位置が上の場合 case RESPAWN_TYPE.UP: pos.x = Random.Range( -m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; break; // 出現位置が右の場合 case RESPAWN_TYPE.RIGHT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range( -m_respawnPosInside.y, m_respawnPosInside.y); break; // 出現位置が下の場合 case RESPAWN_TYPE.DOWN: pos.x = Random.Range( -m_respawnPosInside.x, m_respawnPosInside.x); pos.y = -m_respawnPosOutside.y; break; // 出現位置が左の場合 case RESPAWN_TYPE.LEFT: pos.x = -m_respawnPosOutside.x; pos.y = Random.Range( -m_respawnPosInside.y, m_respawnPosInside.y); break; } m_direction = MoveSlanting(pos, respawnType); // 位置を反映する transform.localPosition = pos; }
// 敵が出現する時に初期化する関数 public void Init(RESPAWN_TYPE respawnType) { var pos = Vector3.zero; // 指定された出現位置の種類に応じて、出現位置と進行方向を決定 switch (respawnType) { // 上 case RESPAWN_TYPE.UP: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.down; break; // 右 case RESPAWN_TYPE.RIGHT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.left; break; // 下 case RESPAWN_TYPE.DOWN: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = -m_respawnPosOutside.y; m_direction = Vector2.up; break; // 左 case RESPAWN_TYPE.LEFT: pos.x = -m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.right; break; } // 位置を反映する transform.localPosition = pos; }
public void Init(RESPAWN_TYPE respawnType) { var pos = Vector3.zero; switch (respawnType) { case RESPAWN_TYPE.UP: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = m_respawnPosOutside.y; m_direction = Vector2.down; break; case RESPAWN_TYPE.RIGHT: pos.x = m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.left; break; case RESPAWN_TYPE.DOWN: pos.x = Random.Range(-m_respawnPosInside.x, m_respawnPosInside.x); pos.y = -m_respawnPosOutside.y; m_direction = Vector2.up; break; case RESPAWN_TYPE.LEFT: pos.x = -m_respawnPosOutside.x; pos.y = Random.Range(-m_respawnPosInside.y, m_respawnPosInside.y); m_direction = Vector2.right; break; case RESPAWN_TYPE.SIZEOF: break; default: throw new ArgumentOutOfRangeException(nameof(respawnType), respawnType, null); } transform.localPosition = pos; }