Beispiel #1
0
    // Para desactivar el ObjetoObservable anterior
    private void DesactivarObjetoObservableAnterior()
    {
        if (p_objetoObservableAnterior == null)
        {
            return;
        }

        // Se desactiva el objetoObservableAnterior
        p_objetoObservableAnterior.Desactivando();
        p_objetoObservableAnterior = null;
    }
Beispiel #2
0
    private void LanzaRayos()
    {
        // Define un rayo frontal a la visión de la cámara
        Ray rayo = new Ray(Camera.main.transform.position, Camera.main.transform.forward);

        // Almacena información sobre el choque del rayo con el ObjetoObservable
        RaycastHit choque;

        // Lanza el rayo en la dirección de rayo
        if (Physics.Raycast(rayo, out choque, longitudRayo))
        {
            ObjetoObservable observable = choque.collider.GetComponent <ObjetoObservable>();
            p_objetoObservableActual = observable;

            // Si se ha chocado con un ObjetoObservable y es distinto del anterior
            if (observable && observable != p_objetoObservableAnterior)
            {
                // Se activa el objetoObservable
                observable.Activando();
            }

            // Se desactiva el ObjetoObservable anterior
            if (observable != p_objetoObservableAnterior)
            {
                DesactivarObjetoObservableAnterior();
            }

            p_objetoObservableAnterior = observable;
        }

        // No se ha chocado con nada
        else
        {
            // Se desactiva el objetoObservableAnterior
            DesactivarObjetoObservableAnterior();
            p_objetoObservableActual = null;
        }
    }