private void Awake() { if (!GameManager.GetSingleton) { Debug.LogError("Désactiver la trash !"); } GameManager.GetSingleton.AddPlayerController(this, IdPlayer); playerBody = GetComponent <Rigidbody>(); lifeBehavior = GetComponent <LifeBehavior>(); weaponHandle = GetComponent <WeaponHandler>(); pickupHandle = GetComponent <PickupHandler>(); animPlayer.GetComponent <SpriteRenderer>().color = colorPlayer; for (int i = 0; i < 4; i++) { GameObject animator = transform.GetChild(1).GetChild(i).gameObject; if (i == idPlayer) // desactive tous les animatirs sauf celui du joueur actuel { animPlayer = animator; } else { animator.SetActive(false); } } //animPick = transform.GetChild(3).GetComponent<Animator>(); //weapons = new List<Weapons>(); //SetupListWeapons(); //setup la lsit des weapons }
public void IsGameOver() { if (StateManager.GetSingleton.State == StateManager.GameState.Play) { int countDeadPlayer = 0; foreach (var player in spawnPlayer) { if (player.PlayerController) { LifeBehavior life = player.PlayerController.GetComponent <LifeBehavior>(); if (!life || life.CurrentLife <= 0) { countDeadPlayer++; } } else { countDeadPlayer++; } } if (countDeadPlayer >= spawnPlayer.Count) { GameOver(); } } }
void Start() { lb = GameObject.Find("Player").GetComponent <LifeBehavior>(); player = GameObject.Find("Player").GetComponent <Player>(); GM = GameObject.Find("GameManager").GetComponent <GameManager>(); ads = GameObject.Find("Ads").GetComponent <DeathAds>(); gameTimer = GameObject.Find("GameTimer").GetComponent <GameTimer>(); GM.Mute(); CheckMuteIcon(); }
/// <summary> /// test la collision avec l'objet /// </summary> private void CollisionBehavior(Collider col) { LifeBehavior life = col.gameObject.GetComponent <LifeBehavior>(); if (life && !currentlyIntoTrigger) { bool damageable = isDamagingThis(life.EntityType); if (damageable) { counterCollision++; int score = life.TakeDamages(damages, oneShot); if (score != 0) { if (PlayerController) // NB si un ennemi fait des degats, il ne gagne pas de points et ne devrait pas avoir de playerController { Vector3 scorePosition = life.CurrentLife <= 0 ? life.transform.position : life.transform.position + life.transform.up * 1.5f; CreateScorePrefab(scorePosition, life.CurrentLife <= 0, score); PlayerController.ScorePlayer += score; SoundManager.GetSingularity.PlayImpactSound(PlayerController.IdPlayer); } } else { // Si on kill la target pas besoin de désactiver la source de dommage // Important car TriggerExit jamais appelé donc currentlyIntoTrigger reste à true currentlyIntoTrigger = true; } if (collisionBeforeKilling >= 0 && counterCollision >= collisionBeforeKilling) { isSourceEnabled = false; //desactiver l'origine des dégât si souhaité IKillable killable = gameObject.GetComponent <IKillable>(); if (killable != null) { killable.Kill(); } } } } }
private LifeBehavior playerLife; //reference a playerLife #endregion #region Initialization private void Start() { //init le player if (player && animSpawn) //si tout est ok dans les references { spawnedOnce = false; playerController = player.GetComponent <PlayerController>(); //get la reference du playerCOntroller playerController.IdPlayer = transform.GetSiblingIndex(); //set son id selon la position du spawnPlayer dans la hiérarchie playerController.ScorePlayer = GameManager.GetSingleton.ScoreManager.Data.scorePlayer[playerController.IdPlayer]; //set son score playerLife = player.GetComponent <LifeBehavior>(); //get reference de la vie player.transform.SetParent(GameManager.GetSingleton.ObjectDynamiclyCreated); //set son emplacement dans la hiérarchie player.transform.position = transform.position; //change sa position animSpawn.SpawnPlayer = this; //set la reference à l'animation animSpawn.gameObject.SetActive(false); //desactive l'animation si elle est activé (on est en initialisation, on active pas encore... SpriteRenderer renderer = animSpawn.GetComponent <SpriteRenderer>(); if (renderer) { renderer.color = playerController.ColorPlayer; } } }