본문 바로가기
게임개발/게임플랫폼 응용 프로그래밍

DropShip in BionicUnits

by pudding81 2024. 2. 28.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BionicUnit
{
   public enum UnitType
    {
        Marine, Medic
    }

    public UnitType type;
    public string name;

    public BionicUnit() { }

    public BionicUnit(UnitType type, string name)
    {
        this.type = type;
        this.name = name;
    }




}

 

using JetBrains.Annotations;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using static UnityEditor.Progress;

public class DropShip : MonoBehaviour
{
    List<DropShip> dropShips ;
    List<BionicUnit> units = new List<BionicUnit>();
    private const int CAPACITY = 8; //고정상수



    void Start()
    {       
       
      
        //마린, 메딕 생성하기

        BionicUnit marine1 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine1");
        BionicUnit marine2 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine2");
        BionicUnit marine3 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine3");
        BionicUnit marine4 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine4");
        BionicUnit marine5 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine5");
        BionicUnit marine6 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine6");
        BionicUnit marine7 = new BionicUnit(BionicUnit.UnitType.Marine, "Marine7");
        BionicUnit medic8 = new BionicUnit(BionicUnit.UnitType.Marine, "Medic8");
        BionicUnit medic9 = new BionicUnit(BionicUnit.UnitType.Marine, "Medic9");



        LoadUnit(marine1);
        LoadUnit(marine2);            
        LoadUnit(marine3);
        LoadUnit(marine4);            
        LoadUnit(marine5);
        LoadUnit(marine6);
        LoadUnit(marine7);
        LoadUnit(medic8);
        LoadUnit(medic9);


        UnLoadUnitAll(); 
        


    }

    private void UnLoadUnitAll()
    {
        foreach (var unit in units.ToList())
        {
            UnLoadUnit(unit);
        }
    }

    // 리스트에 추가하기
    public void LoadUnit(BionicUnit units)
    {
               
        // 8마리까지만 태우기 

        if (this.units.Count >= CAPACITY)
        {
            Debug.Log("더 태울 수 없습니다.");
            return; //
        }
        

        this.units.Add(units);
        Debug.LogFormat("{0}:{1}을 태웠습니다.", units.type, units.name);



    }

    //리스트에서 제거하기
    public void UnLoadUnit(BionicUnit units)
    {
        
        this.units.Remove(units);
        Debug.LogFormat("{0}:{1}이 내렸습니다.", units.type, units.name); // 유닛안의 내용이 출력됨

       
    }



}