Unity W A S D Ile Hareket Kontrolü
Bu konumuzda unity de bir topu ileri geri sağ sol gibi işlemler yapan kodu yazacağız
Öncelikle Kodumuzu yazayım daha sonra yorumlarım
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using System.Collections; using System.Collections.Generic; using UnityEngine; public class Kure : MonoBehaviour { [SerializeField] int Hiz=10; Rigidbody rb; // Use this for initialization void Start () { rb = GetComponent<Rigidbody>(); ///fiziksel özellikleri alınmış } // Update is called once per frame void Update () { float yatay = Input.GetAxis("Horizontal"); float dikey = Input.GetAxis("Vertical"); Vector3 hareket = new Vector3(yatay*Hiz, 0.0f, dikey*Hiz); rb.AddForce(hareket);//force güç ekle demek } } |
SerializeField Nedir?
Burada SerializeField yazma sebebimiz unity de sağ pencerede eklediğimiz şeyi gözükmesi için hız sağ tarafta çıkan Inspector menüsünde gözükecek ama istersek onun yerine degişkenlerin başına public koyup da kullanabilir SerializeField genel olarak public le aynı işi yapar
RigidBody
Öncelikle Inspector Menümüzde en altta Add Component ‘e tıklayıp Rigidbody’yi bulup ekliyoruz sonra ayarlarına girip
bu ayarları yapıyoruz.
Kod kısmına gelirsek
Class düzeyinde bir tane rigidbody oluşturuyoruz instance almıyoruz.
Start Metodu
start metodunda rigidbodynin instancesını alıyoruz.
sonra update metoduna giriyoruz ve yatay ve dikey özellikler alan horizontal ve vertical input hareketleri oluşturuyoruz.
Update Metodu
Vector3= hareket etmenizi sağlar
daha sonra bir vector3 oluşturuyoruz asıl hareket kısımları burada burda x y ve z kordinatlarını soruyor biz yatay yazıyoruz sebebi klavyeden girilen değeri yatay olarak algılıyor daha sonra hızla çarpıyoruz daha hızlı gitsin diye hız vermezsek de çalışır
en son rigidbodye vector3 deki degişkeni atıyoruz ve artık hareketlerimizi almış oluyor ve bu kodları topumuza sürüklüyoruz
artık oyunumuzda hareket işlemlerimizi yapabiliriz.