Noticias

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

Temas recientes

como hacer un interruptor?

Iniciado por Lucky-chan, Marzo 16, 2019, 08:01:40 PM

Tema anterior - Siguiente tema
Marzo 16, 2019, 08:01:40 PM Ultima modificación: Marzo 16, 2019, 08:45:03 PM por Lucky-chan
hola a todos, me preguntaba como hacer un interruptor, me refiero que al presionar un botón se encienda la antorcha,y al presionarlo de nuevo apagarla pero la bool  "TorchAble" esta hecha para que solo se pueda usar cuando un objeto especifico con la 2da script que puse, este en la escena, funciona bien pero la antorcha no se apaga cuando vuelvo a presionar el botón. 
 

              public bool TorchAble;
      if (Input.GetKeyDown(KeyCode.F) && TorchAble == true)
            {
                gameObject.SetActive(true);
            }
                                 


//referencia a lo de arriba
public class TorchAble : MonoBehaviour
{
    public Player player; //referencia a la script "player"
    // Start is called before the first frame update
    void Start()
    {
        player.TorchAble = true;
       
    }
}

 
 
 
 

Si simplemente vas a activar y desactivar un gameObject puede hacer lo siguiente.
 

[SerializeField]
private Transform m_torchObject = null;
public bool TorcAble = true;
private void Update()
{
  if (Input.GetKeyDown(KeyCode.F) && TorchAble)
  {
      m_torchObject.gameObject.SetActive(!m_torchObject.gameObject.activeInHierarchy);
  }
}

 
Lo que está haciendo este código es tomar el valor actual de Active Hierarchy del GameObject (m_torchObject) y lo asigna con el valor booleano negativo al actual.
 
Cuando comparas variables booleanas deberias de hacerlo de la siguiente manera.
 

private bool MyBool = false;
private void Update(){
  //Comprobar si es verdadero
  if(MyBool){}
  //Comprobar si es falso
  if(!MyBool){}
}

 
Por esta razón si tienes un valor true y le agregas este signo al inicio (!) obtendrás el valor opuesto.
 
 
 
Saludos.. el hombre de LAS scripts... 

Marzo 17, 2019, 02:13:57 PM #2 Ultima modificación: Marzo 17, 2019, 04:10:34 PM por Lucky-chan
gracias xD
 
ya lo entiendo mejor, de hecho esto funciona de maravilla n_n

Etiquetas: