Exemplo n.º 1
0
        public async UniTask SpawnPlayer(PlayerShipComponent playerPrefab)
        {
            GameObject go = await _multiplePrefabMemoryPool.SpawnObject(playerPrefab.gameObject);

            go.transform.position = Vector3.zero;

            _bookKeepingInGameData.PlayerShipComponent = go.GetComponent <PlayerShipComponent>();
            _bookKeepingInGameData.PlayerShipComponent.Init();

            _gameSignals.PlayerSpawnedSignal.Fire(_bookKeepingInGameData.PlayerShipComponent);
        }
Exemplo n.º 2
0
        public async UniTask SpawnAsteroid(AsteroidData asteroidData, Vector2 moveDirection, Vector2 spawnPos)
        {
            GameObject asteroidGO = await _multiplePrefabMemoryPool.SpawnObject(GetRandomAsteroidPrefab(asteroidData).gameObject, spawnPos);

            var asteroid = asteroidGO.GetComponent <AsteroidComponent>();

            asteroid.Init(moveDirection, asteroidData);

            _spawnedAsteroids.Add(asteroid);

            _gameSignals.AsteroidSpawnedSignal.Fire(asteroid);
        }
Exemplo n.º 3
0
        public async UniTask <BulletComponent> SpawnBullet(GameObject prefab, Transform spawnPoint)
        {
            GameObject bulletGO = await _multiplePrefabMemoryPool.SpawnObject(prefab);

            bulletGO.transform.position = spawnPoint.position;
            bulletGO.transform.rotation = spawnPoint.rotation;

            BulletComponent bullet = bulletGO.GetComponent <BulletComponent>();

            _gameSignals.BulletSpawnedSignal.Fire(bullet);
            return(bullet);
        }
Exemplo n.º 4
0
        public async UniTask <EnemyComponent> SpawnEnemy(EnemyData enemyData, Vector2 spawnPosition)
        {
            GameObject newEnemyGO = await _multiplePrefabMemoryPool.SpawnObject(enemyData.EnemyPrefab.gameObject, spawnPosition);

            EnemyComponent newEnemy = newEnemyGO.GetComponent <EnemyComponent>();

            newEnemy.Init();
            newEnemy.SetData(enemyData);
            spawnedEnemies.Add(newEnemy);

            _gameSignals.EnemySpawnedSignal.Fire(newEnemy);

            return(newEnemy);
        }