public virtual Character Spawn() { var t = this.transform; var character = this.blueprint.Instantiate(t.position, t.rotation); Broker.Global.Publish(CharacterSpawned.Get(character)); return(character); }
private void CreateCharacter(Slot slot, CharacterEnum type) { BaseCharacter newChar = slot.SpawnCharacter(type, houseSpawnedCounter >= 12); newChar.CharacterUpseted += OnCharacterUpseted; newChar.InterestReached += OnCharacterInterestReached; CharacterSpawned?.Invoke(this, new CharacterSpawnedArgs { Character = newChar }); Score += 5; }
protected override void TryRespawn() { if (!GameContext.GameController.CanSpawn(Team, ClientId, out var spawnPos)) { return; } Spawning = false; Character = Kernel.Get <BaseCharacter>(); Character.Init(this, spawnPos); Character.Died += CharacterOnDied; CharacterSpawned?.Invoke(this, Character); }
private void CreateCharacter(CharacterClasses characterClass) { var path = string.Format(Paths.Resources.Game.Characters, characterClass); var character = Resources.Load <GameObject>(path); if (character != null) { var position = character.transform.localPosition; spawnedCharacter = Instantiate(character, transform); spawnedCharacter.transform.localPosition = position; spawnedCharacter.transform.SetAsFirstSibling(); CharacterSpawned?.Invoke(); } }
/// <summary> /// Spawns a character with given parameters. /// </summary> /// <param name="spawnParameters">Parameters to spawn a character.</param> public void Spawn(CharacterSpawnParameters spawnParameters) { ushort playerId = spawnParameters.Id; bool isLocal = spawnParameters.IsLocal; if (_characters.ContainsKey(playerId) == false) { CharacterFacade characterFacade = null; if (isLocal) { // Player character characterFacade = _playerFactory.Create(spawnParameters); characterFacade.Id = _unityClient.ID; _cameraManager.SetCameraToPlayerCharacter(characterFacade); } else { // Networked character characterFacade = _networkFactory.Create(spawnParameters); characterFacade.Id = playerId; var animator = characterFacade.GetComponentInChildren <Animator>(); if (characterFacade.CharacterType == CharacterType.AICharacter) { animator.runtimeAnimatorController = (RuntimeAnimatorController)_controllers.Wasp; } else { animator.runtimeAnimatorController = (RuntimeAnimatorController)_controllers.Human; } } // Put the character on spawn position Transform transform = characterFacade.transform; transform.SetPositionAndRotation(new Vector3(spawnParameters.X, spawnParameters.Y, transform.position.z), transform.rotation); _characters.Add(playerId, characterFacade); CharacterSpawned?.Invoke(characterFacade); } }
public void OnCharacterSpawned(GameObject _char) { CharacterSpawned?.Invoke(_char); }