void Controlar() { if (Input.touchCount > 0 && gObj == null) //controles touch, no hace nada si no detecta al menos un dedo { if (Input.GetTouch(0).phase == TouchPhase.Began) //Cuando detecta el dedo lanza un ray { RaycastHit2D hit2D = GenerarRay(); if (hit2D && hit2D.transform.tag == "Player" && hit2D.transform.gameObject.GetComponent <Personajes>().mago.turno) //Si el objeto es un personaje jugable { gObj = hit2D.transform.gameObject; //se guarda el objeto con el que el ray choco gObjParent = hit2D.transform.parent.transform.gameObject; //Guardamos al Jugador gObj.GetComponent <Personajes>().Tocado(); MoverButt.SetActive(true); CancelarButt.SetActive(true); MostarAEbut.SetActive(false); } } } if (Input.touchCount > 0 && gObj != null) { RaycastHit2D hit = GenerarRay(); if (Input.GetTouch(0).phase == TouchPhase.Began && hit.collider != null && hit.transform.tag == "Posibles" && hit.transform.tag != "Obstacle") { Mover(); } else if (Input.GetTouch(0).phase == TouchPhase.Moved && hit.collider != null && gObj != null && hit.transform.tag == "Posibles" && hit.transform.tag != "Obstacle")//Cuando el dedo se empieza a mover sobre la pantalla { Mover(); } } }
public void NoAtacar() { NoataqueBut.SetActive(false); AtaqueBut.SetActive(false); Camera.main.orthographicSize = camaraHeight; Camera.main.transform.position = camPos; var script = gObj.GetComponent <Personajes>(); script.enemigos.Clear(); script.Lista.Clear(); script.mago.turno = false; gObj = null; MostarAEbut.SetActive(true); atacando = false; }
public void MoverBut() { /* para evitar error, no se puedde acceder a su funcionalidad no hay un personaje seleccionado * se mueve el padre del fantasma, es decir al personaje bien iluminado a la posicion del fantasma, * y para no mover tambien al fantasma se reinicia su transform, asi estara justo donde este el personaje * y la variable de los pasos se reinicia. */ if (gObj != null) { Vector3 moverPos = gObj.transform.position; moverPos.z = -1; gObjParent.transform.position = moverPos; gObj.transform.localPosition = new Vector3(); GameObject posibles = GameObject.Find("Posibles"); for (int i = 0; i < posibles.transform.childCount; i++) { Destroy(posibles.transform.GetChild(i).gameObject); } var script = gObj.GetComponent <Personajes>(); script.Lista.Clear(); atacando = script.ChecarR(); if (atacando) { camaraHeight = Camera.main.orthographicSize; camPos = Camera.main.transform.position; Camera.main.orthographicSize = 3; Camera.main.transform.position = new Vector3(gObj.transform.position.x, gObj.transform.position.y, Camera.main.transform.position.z); NoataqueBut.SetActive(true); } else { script.enemigos.Clear(); script.Lista.Clear(); script.mago.turno = false; gObj = null; MostarAEbut.SetActive(true); } } CancelarButt.SetActive(false); MoverButt.SetActive(false); var enemigos = FindObjectsOfType <Enemigo>(); foreach (Enemigo enemigo in enemigos) { enemigo.QuitarAtacZone(); } }
public void CancelarBut() { if (gObj != null) { var script = gObj.GetComponent <Personajes>(); script.Lista.Clear(); gObj.transform.localPosition = new Vector3(); gObj = null; GameObject posibles = GameObject.Find("Posibles"); for (int i = 0; i < posibles.transform.childCount; i++) { Destroy(posibles.transform.GetChild(i).gameObject); } } MostarAEbut.SetActive(true); MoverButt.SetActive(false); CancelarButt.SetActive(false); }
public void Atacar() { var script = gObj.GetComponent <Personajes>(); print(script.enemigos.Count); if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began) { RaycastHit2D hit2D = GenerarRay(); if (script.enemigos.Contains(hit2D.collider.gameObject)) { Destroy(hit2D.collider.gameObject.transform.parent.gameObject); atacando = false; NoataqueBut.SetActive(false); Camera.main.orthographicSize = camaraHeight; Camera.main.transform.position = camPos; script.enemigos.Clear(); script.Lista.Clear(); script.mago.turno = false; gObj = null; MostarAEbut.SetActive(true); } } }