//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); } }
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); }