Пример #1
0
    //unity 폴더 Resources/Units folder에 UnitType과 똑같은 이름으로 png 또는 jpg file로 존재해야 sprite불러올 수 있음
    public void initiateUnit(UnitType ut, float _x, float _y, PLAYER player)
    {
        if (transform.tag == "Agit")
        {
            control_player = player;
            unitID         = GameManager.GetInstance.giveID();
            if (control_player == PLAYER.PLAYER1)
            {
                GameManager.GetInstance.player1.unitList.Add(this);
                Debug.Log("iniated unit list added");
            }
            else if (control_player == PLAYER.PLAYER2)
            {
                GameManager.GetInstance.player2.unitList.Add(this);
            }
            AgitHP = 300;
            m_unitAttack.InitiateUnitAttack(unitID);
        }
        else
        {
            control_player = player;
            unitType       = ut;
            m_unitData     = GameData.getUnitData(ut);
            GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Units/" + m_unitData.unitType.ToString());
            this.name = m_unitData.unitType.ToString();
            unitID    = GameManager.GetInstance.giveID();
            GameObject sightRange = transform.Find("SightRange").gameObject;
            Vector3    tempSize   = sightRange.GetComponent <BoxCollider2D>().size;
            sightRange.GetComponent <BoxCollider2D>().size = new Vector3(tempSize.x * unitData.sight * unitData.sight, tempSize.y, 0f);
            if (control_player == PLAYER.PLAYER1)
            {
                GameManager.GetInstance.player1.unitList.Add(this);
                Debug.Log("iniated unit list added");
            }
            else if (control_player == PLAYER.PLAYER2)
            {
                GameManager.GetInstance.player2.unitList.Add(this);
            }
            curHP = unitData.hp;
            m_unitAttack.InitiateUnitAttack(unitID);
            mindamage = unitData.min_atk;
            maxdamage = unitData.max_atk;
            switch (player)
            {
            case PLAYER.PLAYER1:
                break;

            case PLAYER.PLAYER2:
                break;

            case PLAYER.NONE:
                break;

            default:
                break;
            }
            setPos(_x, _y);
        }
    }
Пример #2
0
    public void OnReceiveUnitAttackPacket(PacketId id, byte[] data)
    {
        UnitAttackPacket packet = new UnitAttackPacket(data);
        UnitAttackData   attack = packet.GetPacket();
        int attack_id           = attack.unitId;
        int defener_id          = attack.targetUnidId;

        unitAttack.InitiateUnitAttack(attack_id);
        unitAttack.DoAttack(defener_id);
    }