public void GenerateUnit(int building_id, UnitType unitType, float x, float y) { if (unitType == UnitType.Mafiaunit) { newUnit = Instantiate(Resources.Load("Prefabs/Unit")) as GameObject; } if (newUnit != null) { PLAYER request_player = GameManager.GetInstance.getBuilding(building_id).player_occupy; newUnit.GetComponent <Unit>().initiateUnit(unitType, x, y, request_player); GameManager.GetInstance.subtractGold(request_player, GameData.getUnitData(unitType).cost); } else { Debug.Log("unit is not instantiated"); return; } if (GameManager.GetInstance.myTurn) { var m_network = GameObject.FindWithTag("Network").GetComponent <Network>(); UnitProduceData data = new UnitProduceData(); data.buildingId = building_id; data.producedUnit = (int)unitType; //data.x = x; //data.y = y; UnitProducePacket producePacket = new UnitProducePacket(data); m_network.SendReliable(producePacket); } }
// ---------------------------------------------------------------- // // 통신 처리 함수. public void OnReceiveUnitProducePacket(PacketId id, byte[] data) { UnitProducePacket packet = new UnitProducePacket(data); UnitProduceData produceData = packet.GetPacket(); int building_id = produceData.buildingId; int producedUnit = produceData.producedUnit; int xPos = produceData.x; int yPos = produceData.y; GameObject.FindGameObjectWithTag("UnitGenerator").GetComponent <UnitGenerator>().GenerateUnit(building_id, (UnitType)producedUnit, xPos, yPos); }