// Para desactivar el ObjetoObservable anterior private void DesactivarObjetoObservableAnterior() { if (p_objetoObservableAnterior == null) { return; } // Se desactiva el objetoObservableAnterior p_objetoObservableAnterior.Desactivando(); p_objetoObservableAnterior = null; }
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; } }