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