La estructura de un juego para móvil

1

Desarrollo de Juegos Móviles con Unity 2D: Clon de Candy Crush

2

Diseño Rápido de Juegos Móviles con Unity

3

Lo siento, no puedo ayudar con eso.

4

Creación de videojuegos 2D con Unity: Proyecto práctico

Sprite Atlas y Generación de Caramelos

5

División de Sprites en Unity para Fondos de Videojuegos

6

Corte y Configuración de Sprites en Unity para Videojuegos

7

Programación de scripts C# para caramelos en Unity

8

Configuración de un Singleton en C# para Unity

9

Matrices 2D en C#: Inicialización y Llenado Eficiente

10

Recorte de sprites en Unity: optimización para móviles

11

Creación de un Board Manager en Unity para Videojuegos de Puzzle

12

Cambio de Cuadrados por Caramelos Aleatorios en Unity

Diseño de Game Play

13

Evitando Tripletes en Juegos de Emparejamiento

14

Interacción táctil en Unity: Selección de objetos con onMouseDown

15

Programación de Intercambio de Sprites en Unity

16

Física de colisiones en Unity: detección de vecinos y movimiento

17

Programación de una lógica de coincidencias en Candy Crush

18

Programación de Algoritmos Optimización en Juegos Móviles

19

Movimientos en Cascada para Juegos de Puzzle en Unity

20

Relleno de Huecos en Videojuegos: Algoritmo de Nuevos Elementos

21

Gestión de Matrices y Optimización en Desarrollo de Videojuegos

Retos finales

22

Diseño de Interfaces Gráficas para Videojuegos en Unity

23

Programación de Interfaces Gráficas en Unity con C#

24

Programación de Singleton en Juegos Móviles con Ejemplo Práctico

25

Corrutinas en Unity: Transición Suave al Game Over

26

Probabilidades y Puntuación en Juegos de Puzle

27

Gestión de Audio en Videojuegos con C-Sharp

28

Animación de Caramelos en Videojuegos: Prefabs y Código en C#

29

Pantalla de Inicio: Diseño e Implementación en Videojuegos

Cierre del curso

30

Configuración y exportación de juegos en Unity para iOS y Android

31

Implementación de juegos móviles con Unity y Android Studio

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Interacción táctil en Unity: Selección de objetos con onMouseDown

14/31
Recursos

Vamos a programar la interacción de nuestros usuarios con la aplicación.

Debemos detectar los toques de los usuarios a la pantalla, así que, vamos a utilizar el método OnMouseDown que nos va a ayudar a detectar los contactos de nuestros dedos con la pantalla.

Recuerda que Unity nos permite programar un mismo juego para todas las plataformas disponibles y, a pesar de que, el método que vamos a utilizar tenga el nombre de “Mouse”, Unity lo va a traducir por nosotros para detectar cualquier toque a la pantalla, sea con los dedos o el mouse.

Aportes 9

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para detectar los clicks del mouse o los toques y movimientos de nuestros dedos en la pantalla debemos usar el método OnMouseDown de Unity.

También existen otros métodos como OnMouseUp, OnMouseDrag, OnMouseEnter, OnMouseExit, OnMouseOver, y OnMouseUpAsButton:

La logica para lograr seleccionar y deseleccionar caramelos es curiosa:

private void OnMouseDown()
    {
        if (spriteRenderer.sprite == null ||
            BoardManager.sharedInstance.isShifting)
        {
            return;
        }
        if (isSelected)
        {
            DeselectCandy();
        }
        else
        {
            if (previousSelected == null)
            {
                SelectCandy();
            }
            else
            {
                previousSelected.DeselectCandy();
                SelectCandy();
            }
        }
    }
  1. En caso de que hayamos tocado cualquir otra parte del juego o ya se estén animando los aramelos (por ejemplo cuando hay un match) pues entones nos quedamos haciendo nada

  2. Si el caramelo tocado estaba seleccionado, ahora lo deseleccionamos

  3. En caso de que no estuviera seleccionado antes, mira a ver si es el primero en el que tocamos y lo seleccionamos, si no si ya había uno seleccionado vamos a de forma sencilla deseleccionar el previo y seleccionar el actual

Tengo un problema con el método OnMouseDown, no me reconoce este método y no se activa cuando hago click en el candy

Si a alguien le paso (como a mi) que no entendian como cada instancia del componente Candy puede reconocer cual es el previousSelected de otro caramelo, recordemos que esta variable es static, lo cual significa que mantiene el mismo valor a travez de todas las instancias.

Genial

También para entenderlo aún más rápido, vemos la definición de **onMouseDown: ** Se llama a OnMouseDown cuando el usuario ha presionado el botón del mouse mientras estaba sobre el Collider .
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html

He comprendido como funciona sin embargo habrá que echarle otra repasada para que quede bien grabado.

Continuamos! 😄

me saltan esos errores no entiendo a que de deba…

este es mi codigo :

private void Awake()
{
    spriteRenderer = GetComponent<SpriteRenderer>();
   
}

private void SelectCandy()
{
    isSelected = true;
    spriteRenderer.color = selectedColor;
    previousSelect = gameObject.GetComponent<Candy>();
}

private void DeselectCandy()
{
    isSelected = false;
    spriteRenderer.color = Color.white;
    previousSelect = null;
}

private void OnMouseDown()
{
    if (spriteRenderer.sprite == null || BoardManager.sharedInstance.isShifting)
    {
        return;
    }
    if (isSelected)
    {
        DeselectCandy();
    }
    else
    {
        if (previousSelect == null)
        {
            SelectCandy();
        }
        else
        {
            previousSelect.DeselectCandy();
            SelectCandy();
        }
    }
}

buenas, tengo un problema con los collider en este proyecto. Tengo el mismo código que muestra el profesor, con un pequeño cambio. En lugar de utilizar Sprite estoy usando prefab y al correr el programa se visualiza de forma correcta, pero al hacer click sobre las imágenes el programa no reacciona.
Lo primero que valide fue que todos los prefab tuviesen su collider. Luego de esto, agregue en la escena de forma manual cada uno de lo prefab y todos funcionaron de forma correcta. Por ultimo lo que se me ocurrió fue resetear en tiempo de ejecución cada uno de los prefab, lo que para mi sorpresa si funciono.
Alguno tiene una sugerencia?.

Para validar que no fuera problemas los prefab, cambie todo mi proyecto, para que este igual que el de las clases y tuve el mismo error