Example #1
0
    public GameObject[] objInteraction; //Referencia de todos los objetos, como la imagen, el audio, etc

    //Metodo a implementar dada la interfaz IInteractable
    public void LookOnMe()
    {
        /*  Este metodo se va a mandar llamar en el EventTrigger del objeto, este metodo solo se manda llamar UNA VEZ
         *
         *  Como no sabremos cuantas interacciones va a tener en el arreglo de "interactions", puede ser 1 o 5 o las que sean
         *  recorremos el arreglo con un ciclo for y mandamos llamar el metodo de "ExecuteInteraction"
         */
        for (int i = 0; i < interactions.Length; i++)
        {
            /*  Cuando hacemos el recorrido, es importante saber que tipo de interaccion estamos revisando, puesto que hay interacciones
             *  que van a requerir ejecutar su metodo en el Update, entonces accedemos al enum de cada interaccion y preguntamos que tipo de
             *  interacción es, por ejemplo rotar, si es el caso asignamos la delegación a nuestra variable-metodo del tipo "ExecuteUpdate"
             */

            if (interactions[i].currentInteraction == Interactivo.TypeInteraction.rotar)
            {
                //Nota: En el enum en vez de tener los diferentes tipos de interacción, podriamos poner algo como: ExecuteOnUpdate, NoUpdate,
                //para de esta forma solo tener dos tipos en el enum y asignar las delegaciones

                //asignamos la delegación a nuestra variable-metodo del tipo "ExecuteUpdate", notar que, todavía no le pasamos el parametro del
                //tipo GameObject, puesto que solo estamos asignando la delegación
                currentExecution = interactions[i].ExecuteInteraction;
            }
            else
            {
                //Si el tipo de interactivo no se va a ejecutar en el Update, solo lo mandamos llamar, hay que saber que objetos se van a requerir en el
                //update y cuales no
                interactions[i].ExecuteInteraction(objInteraction[1]);
            }
        }
    }
Example #2
0
 public void NoLookOnMe()
 {
     /*  Este metodo solo se mana llamar UNA VEZ
      *
      *  Cuando ya el jugador no esta observando al objeto, vamos a mandar llamar el metodo para detener la ejecución
      *  de cada scriptable object que tenga el objeto, con un ciclo for
      */
     for (int i = 0; i < interactions.Length; i++)
     {
         interactions[i].StopExecutionInteraction(); //Se manda llamar el metodo para detener la ejecución de cada scriptable
     }
     currentExecution = null;                        //Y el delegado lo volvemos nulo para que ya no se ejecute en el Update
 }