public void death() { //Calcolo la posizione di morte (che sarebbe quella attuale ma con la y modificata) ed effettuo il lerp deathposition = transform.position; deathposition.y -= 3f; gameObject.transform.position = Vector3.Lerp(transform.position, deathposition, Time.deltaTime * 20f); //Elimino script vitali per il player (per evitare comportamenti indesiderati da morto) Destroy(gameObject.GetComponent <Moving>()); Destroy(gameObject.GetComponent <flashlight>()); Destroy(gameObject.GetComponent <SwitchWeapon>()); //Disattivo le armi if (ascia_imp != null) { ascia_imp.SetActive(false); } if (pistola_imp != null) { pistola_imp.SetActive(false); } if (smg_imp != null) { smg_imp.SetActive(false); } Destroy(gameObject.GetComponent <PlayAnimation>()); //Normalizzo la rotazione del player (perchè potrebbe morire guardando in alto, per esempio, e l'animazione di morte sarebbe sbagliata) GameObject.FindGameObjectWithTag("Hands").transform.eulerAngles = new Vector3(-90f, transform.eulerAngles.y, 0f); GameObject.FindGameObjectWithTag("MainCamera").transform.eulerAngles = new Vector3(0f, transform.eulerAngles.y, 0f); //Attivo l'animazione di morte GetComponent <Animator>().SetTrigger("Death"); //Disattivo alcuni elementi dell'hud hud.deathScreenTrigger(); StartCoroutine(afterDeath()); }