Merhaba oyun geliştiriciler,
Bugün size ekranı parmağımızla kaydırarak oyun yapacağız.(Tam olarak anlatamadım ama siz örnekte anlarsınız :))
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class OyunSwipe : MonoBehaviour { Vector2 DokunmayaBasladıgımızPozisyon; //SWiPE = KAYDıRMAK Vector2 ilkdokunma,swipeDelta; [SerializeField]float SwipeMinY; [SerializeField]float SwipeMinX; public Image arkaplan,resim; public Sprite sol,sag,üst,alt; public int sayi,yapılan,tiklamagecis1,tiklamagecis2; bool yukarıb,asagib,sagb,solb,dogru,yanlis; public bool zamanb; public float zaman,maxzaman; public GameObject digerkaydırma,zamanobje; void Start(){ } void Update () { zamanobje.transform.localScale = new Vector3 (1,zaman/maxzaman,1); if (Input.touchCount > 0) { Touch t = Input.touches [0]; if (t.phase == TouchPhase.Began) { DokunmayaBasladıgımızPozisyon = t.position; } else if(t.phase==TouchPhase.Ended){ float swipeVertical = (new Vector3 (0, t.position.y, 0) - new Vector3 (0, DokunmayaBasladıgımızPozisyon.y, 0)).magnitude; if (swipeVertical > SwipeMinY) { float u = Mathf.Sign (t.position.y - DokunmayaBasladıgımızPozisyon.y); if(u>0) { //Yukarı Kaydır yukarıb=true; } if (u < 0) { //Aşağı Kaydır asagib=true; } } float swipeHorizontal = (new Vector3 (t.position.x, 0, 0) - new Vector3 (DokunmayaBasladıgımızPozisyon.x, 0, 0)).magnitude; if (swipeHorizontal > SwipeMinX) { float u = Mathf.Sign (t.position.x - DokunmayaBasladıgımızPozisyon.x); if(u>0) { //Sağa Kaydır sagb=true; } if (u < 0) { //Sola Kaydır solb=true; } } } } if (yapılan == tiklamagecis1 && yapılan== tiklamagecis2) { DigerKaydırma (); } if (zaman < 0) { zamanb = false; yanlis = true; zaman = maxzaman; Reset (); yapılan += 1; } if (zaman < maxzaman) { zamanb = true; } if (sayi == 1) { //YaziyiYazdır ("Yukarı"); resim.sprite=üst; zaman-=1*Time.deltaTime; if(yukarıb && zamanb){ dogru=true; } if (solb || sagb || asagib) { yanlis = true; } } if (sayi == 2) { //YaziyiYazdır ("Aşağı"); resim.sprite=alt; zaman-=1*Time.deltaTime; if(asagib && zamanb){ dogru=true; } if (yukarıb || sagb || solb) { yanlis = true; } } if (sayi == 3) { //YaziyiYazdır ("Sol"); resim.sprite=sol; zaman-=1*Time.deltaTime; if(solb && zamanb){ dogru=true; } if (yukarıb || sagb || asagib) { yanlis = true; } } if (sayi == 4) { //YaziyiYazdır ("Sağ"); resim.sprite=sag; zaman-=1*Time.deltaTime; if(sagb && zamanb){ dogru=true; } if (yukarıb || solb || asagib) { yanlis = true; } } if(dogru){ arkaplan.color=Color.green; } if(yanlis){ arkaplan.color=Color.red; } } public void DigerKaydırma(){ gameObject.SetActive (false); digerkaydırma.SetActive (true); yapılan += 1; Reset (); } public void Reset(){ sayi = Random.Range (1, 5); asagib = sagb = solb = yukarıb = dogru = yanlis = false; zaman = maxzaman; zamanb = true; arkaplan.color = Color.white; DokunmayaBasladıgımızPozisyon = new Vector2(0,0); } }Evet arkadaşlar kod bu . Eğer biraz incelerseniz her şeyi anlayabilirsiniz. Sonraki derslerde bu "Touch" özelliğine değinmeyi düşünüyorum. Takipte kalın :) Yapamadığınız,hata aldığınız,anlayamadığınız yer varsa yorumlarda sizi bekliyorum :)
2 Yorumlar
çok yararlı teşekkürler
YanıtlaSilRica ederim
Sil