Herkese merhaba bu yazıda istediğimiz objeleri tutup sürüklemek yardımıyla konumlarını değiştireceğiz. Bu tarz oynanışa sahip oyunlar oldukça fazla yapması ise oldukça basit hemen başlayalım. Benim bir objem var bunu mouse ile ekranda sürükleyeceğim, bildiğimiz üzere mouse yapabildiğimiz olayları dokunmatik cihazlarda da kullanabiliyoruz. Yani böyle bir uygulama yapıp android’de ios’da vs çıktı alırsak uygulama çalışacaktır.
Uygulamada mouse pozisyonunu kullanarak objemizi istediğimiz yere sürükleyeceğiz. Bunu yaparken OnMouseUp ve OnMouseDown fonksiyonlarını kullanacağız. OnMouseDown dediğimizde bizim sürükleme işlemimiz başlayak OnMouseUp yaptığımızda ise sürükleme işlemimiz bitmiş olacak. Burada kamera baz alınarak yapacağız işlemlerimizi, bundan dolayı kameramızın pojection özellipi orthograpic olmalı düzgün çalışması için aksi halde çalışmayacaktır. Şimdi hemen koda bakalım.
using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { bool mouseDrag = false;//ilk başta bir sürükleme olayı olmayacağı için void Update () { Vector2 konum = Camera.main.ScreenToWorldPoint(Input.mousePosition);//kameraya göre yapacağız taşıma işlemini if (mouseDrag == true)//sürükleme işlemi başladı mı kontrolü { transform.position = konum;//aktif olarak gameobjectin konumu değiştiriliyor } } void OnMouseDown()//gameobjecte basılmış mı { mouseDrag = true; } void OnMouseUp()//gameobjectten el çekilmiş mi { mouseDrag = false; } }
Burada internette ki örneklerin aksine kodu çok kısa tutmaya çalıştım oldukça basit kullanımı. Herkese iyi çalışmalar.