Пример #1
0
    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);
        }
    }
Пример #2
0
    // ---------------------------------------------------------------- //
    // 통신 처리 함수.

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