Example #1
0
    public static TowerBase spawnTower(string prefabId, int playerId, Vector3Int tileIndex, Vector3 spawnPos)
    {
        object[] spawnData = new object[2];
        spawnData[0] = playerId;
        spawnData[1] = tileIndex;

        GameObject towerObj = PhotonNetwork.Instantiate(prefabId, spawnPos, Quaternion.identity, 0, spawnData);

        if (!towerObj)
        {
            return(null);
        }

        TowerBase tower = towerObj.GetComponent <TowerBase>();

        Assert.IsNotNull(tower);

        PlayerController controller = PlayerController.getController(playerId);

        if (controller)
        {
            controller.onTowerBuilt(tower);
        }

        // This only gets called once per server
        AnalyticsHelpers.reportTowerPlaced(tower, tileIndex);

        return(tower);
    }