Tengo 2 gameobjects 2D en unidad. Quiero lograr lo siguiente, pero solo con Input.GetTouch para Android:
El problema es que no quiero reproducir sonido desde el primer caso si el objeto se arrastra. Ya probé algún código con couroutine pero no funciona:
if (Input.touchCount > 0) { touch = Input.GetTouch(0); touchPos = Camera.main.ScreenToWorldPoint(touch.position); RaycastHit2D hit = Physics2D.Raycast(touchPos, Camera.main.transform.forward); switch (touch.phase) { case TouchPhase.Began: samoKlik = true; if (samoKlik) { StartCoroutine(korotinaKlika()); } } case TouchPhase.Moved: isMoved = true; if (!samoKlik) { if (jedan) { break; case TouchPhase.Ended: isMoved = false; jedan = false; break; }Necesita escribir su caso de interruptor correctamente. Este código no se compilará. El syntac de caso de cambio adecuado sería algo así como el que se describe aquí :
switch (touch.phase) { case TouchPhase.Began: samoKlik = true; //if (samoKlik) { // This is not needed StartCoroutine(korotinaKlika()); //} break; case TouchPhase.Moved: isMoved = true; if (!samoKlik) { // samoKlik does not exist here if (jedan) { break; } } break; case TouchPhase.Ended: isMoved = false; jedan = false; break; } Dado que desea pasar de un condicional a otro, parece que la declaración de switch no es adecuada para usted.
Sugeriría probar lo siguiente:
bool samoKlik = false; bool isMoved = false; bool jedan = false;Puedo identificar uno para que te ayude a ir
if (touch.phase == touchPhase.Moved && !samoKlik && jedan)