public void SpawnPlayer() { if (_playerObject == null && _playerPrefab != null) { _playerObject = Instantiate(_playerPrefab, _spawnPoint.position, Quaternion.identity); OnPlayerSpawned.Invoke(_playerObject.transform); _playerObject.GetComponent <PlayerCharacteristics>().OnDeath.AddListener(DespawnPlayer); _playerObject.GetComponent <PlayerCharacteristics>().OnDeath.AddListener(() => { _canvasUdied.enabled = true; }); } }
private void OnGridCreated() { List <Transform> validSpawnPoints = possibleSpawnPoints .Where(possibleSpawnPoint => AStar.Instance.Grid.GetNodeFromWorldPoint(possibleSpawnPoint.position).IsWalkable) .ToList(); Vector3 spawnPosition = validSpawnPoints[Random.Range(0, validSpawnPoints.Count)].position; GameObject playerGameObject = Instantiate(ResourceManager.Instance.PlayerPrefab, spawnPosition, Quaternion.identity); Player = playerGameObject.GetComponent <Player>(); PlayerSpawnedEvent?.Invoke(Player); }
public void FirstSpawnPlayer() { // Does there already exist another player? var existing = FindObjectOfType <RaycastPlayer>(); if (existing != null) { Debug.LogWarning("There already exists a player in the game. A player won't be instantiated"); return; } var alive = Instantiate(player, spawnPoint.transform.position, Quaternion.identity); _camera.m_Follow = alive.transform; _camera.m_LookAt = alive.transform; PlayerSpawnedEvent?.Invoke(alive); }
internal void FirePlayerSpawnedEvent(CharacterStats timtam) { PlayerSpawnedEvent?.Invoke(timtam); }