Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

(Solucionado) Compartir vida entre escenas

Iniciado por TheZombrex, Agosto 22, 2017, 07:04:45 PM

Tema anterior - Siguiente tema
Agosto 22, 2017, 07:04:45 PM Ultima modificación: Agosto 23, 2017, 01:05:26 PM por TheZombrex
El problema que tengo es que al pasar de escena se borra el transform y me gustaría que lo buscara sin que tenga que poner el player dentro.
 
Solo necesito quitar ese transform y hacer que busque al player, me da igual si es por tag, el resto bien, la vida se mantiene en todos los niveles y se reduce con las caídas.
 

#pragma strict
var lastPositionY : float = 0f;
var fallDistance : float = 0f;
var player : Transform;
var vis : GameObject;
private var controller : CharacterController;
var currentHealth : float = 10.0f;
function Start()
{
    controller = GameObject.Find("Player").GetComponent(CharacterController);
}
     
function Update ()
{    
    if(lastPositionY > player.transform.position.y)
    {
        fallDistance += lastPositionY - player.transform.position.y;
    }
    
    lastPositionY = player.transform.position.y;
    
    if(fallDistance >= 5 && controller.isGrounded)
    {
        currentHealth -= 5;
        vis.SetActive (true);
        ApplyNormal();
    }
     
    if(fallDistance <= 5 && controller.isGrounded)
    {
        ApplyNormal();
    }
    
    if(currentHealth < 5)
     {
      Application.LoadLevel("perdido");
      }
    
}
function ApplyNormal()
{
        fallDistance = ;
        lastPositionY = ;
        yield WaitForSeconds (1);
        vis.SetActive (false);
}
function OnGUI()
{
    GUI.Box(Rect(10, 20, 50, 20),"" + currentHealth);
}
function Awake(){
DontDestroyOnLoad (transform.gameObject);
}

 
 

Aqui dejo la solucion para los nuevos usuarios
 

#pragma strict
var lastPositionY : float = 0f;
var fallDistance : float = 0f;
var player : Transform;
var continueLoop : boolean = true;
var skin:GUISkin;
var style: GUIStyle = new GUIStyle();
private var controller : CharacterController;
var currentHealth : int = 10.0f;
function Start()
{
controller = GameObject.Find("Player").GetComponent(CharacterController);
style.alignment = TextAnchor.MiddleCenter;
    StartCoroutine(MyCoroutine());
    }
   
    function MyCoroutine()
 {
     while(continueLoop)
     {  yield WaitForSeconds (1);
         player = GameObject.FindWithTag ("Player").transform;
         controller = GameObject.Find("Player").GetComponent(CharacterController);
         
}
}
     
function Update ()
{
    if(lastPositionY > player.transform.position.y)
    {
       fallDistance += lastPositionY - player.transform.position.y;
    }
   
    lastPositionY = player.transform.position.y;
   
    if(fallDistance >= 5 && controller.isGrounded)
    {
       currentHealth -= 5;
    ApplyNormal();
    }
     
    if(fallDistance <= 5 && controller.isGrounded)
    {
       ApplyNormal();
    }
   
    if(currentHealth < 5)
     {
      Application.LoadLevel(Application.loadedLevel);
      currentHealth += 96;
      }
   
}
function ApplyNormal()
{
       fallDistance = ;
        lastPositionY = ;
}
function OnGUI()
{   GUI.skin = skin;
GUI.Box(Rect(50, 20, 500, 30),"" + currentHealth);

}
function Awake(){
DontDestroyOnLoad (transform.gameObject);
}

 
 

Etiquetas: