Beispiel #1
0
    public void CmdSpawn(string poolName)
    {
        PoolManagerBase pool = GameObject.Find(poolName).GetComponent <PoolManagerBase>();

        Debug.Log(poolName + " " + pool);
        GameObject o = pool.Pop();

        int side = _unitID.GetPlayerIndex();

        o.GetComponent <Unit_ID>().CmdSetPlayerIndex(side);

        o.transform.position = transform.position;

        NetworkServer.Spawn(o);
    }
Beispiel #2
0
    private void CmdSpawn()
    {
        if (!ISActive)
        {
            return;
        }

        GameObject minion = PoolManagerBase.FindPool(spawnedCharacter).Pop();

        Transform spawnPoint;

        switch (spawnedCharacter)
        {
        case MinionType.Ghost:
            spawnPoint = _spawnPointGhost;
            break;

        case MinionType.Warrior:
            spawnPoint = _spawnPointWarrior;
            break;

        case MinionType.Wizard:
            spawnPoint = _spawnPointWizard;
            break;

        default:
            spawnPoint = _spawnPointWizard;
            break;
        }

        minion.GetComponent <Unit_SyncPosition>().CmdSetPosRot(spawnPoint.position, spawnPoint.rotation);

        minion.GetComponent <Unit_ID>().CmdSetPlayerIndex(_unitId.GetPlayerIndex());

        NetworkServer.Spawn(minion);

        Invoke("CmdSpawn", spawnerInformations.spawnSpeedCurve.Evaluate((Time.time - beginTime) / spawnerInformations.maxTime));
    }