public void RemoveSupporter(PlayerSupporterCore core) { for (int i = 0; i < m_PlayerSupporteSlots.Count; i++) { if (m_PlayerSupporteSlots[i] == core) { RemoveSupporter(i); break; } } }
public void AddSupporter(PlayerSupporterCore core) { for (int i = 0; i < m_PlayerSupporteSlots.Count; i++) { if (m_PlayerSupporteSlots[i] == null) { m_PlayerSupporteSlots[i] = core; break; } } }
public void SpawnPlayerSupporter(PlayerSupporterType playerSupporterType) { switch (playerSupporterType) { case PlayerSupporterType.Missile: break; case PlayerSupporterType.Guider: { GunVulcan playerGun = m_PlayerManager.GetPlayerGun() as GunVulcan; if (playerGun.GetPlayerSupporterCount() >= playerGun.GetMaxPlayerSupporterCount()) { //HP 만땅같은거 넣어줘도 될뜻 아무 효과도 없으니.. return; } PlayerSupporterController controller = m_PlayerManager.GetPlayer().GetComponent <PlayerSupporterController>(); Transform[] playerSupporterStandardTransforms = controller.m_SupporterPositionTransforms; Vector3 spawnPosition; //float spawnRotation = playerGun.GetPlayerSupporterCount() == 0 ? -90.0f : 90.0f; float endRotationBy = playerGun.GetPlayerSupporterCount() == 0 ? -270.0f : 270.0f; if (m_PlayerManager.GetPlayer().transform.position.x < m_StageManager.GetScreenSize().Width / 2) { spawnPosition = m_EnemyManager.GetEnemySpawnPoints(Direction.Left)[Random.Range(0, 5)].position; } else { spawnPosition = m_EnemyManager.GetEnemySpawnPoints(Direction.Right)[Random.Range(0, 5)].position; } PlayerSupporterCore supporterCore = Instantiate(m_Guider, spawnPosition, Quaternion.Euler(0.0f, 0.0f, /*spawnRotation*/ 0.0f)).GetComponent <PlayerSupporterCore>(); supporterCore.SetHp(30); //DOTween.Sequence().Append(supporterCore.gameObject.transform.DOBlendableLocalRotateBy(new Vector3(0.0f, 0.0f, endRotationBy), 2.0f)); playerGun.AddSupporter(supporterCore); break; } case PlayerSupporterType.Vulcan: break; } }