Unity 2D Platformda Zıplama Butonu, Jump Button

Unity de Android için mobil kontroller yazım: Unity3D Mobil Kontroller Yönlendirme - 1
Proje
Unity 3D programını açtığımızda projemize zıplama butonu deneme adı veriyoruz ve 2D platformunu seçerek işe başlıyoruz.

Başlangıç
Projemize devam etmek için kendimize bir adet zemin ve zıplatma eylemini üstünde uygulayacağımız bir karakter gerekiyor. Mesela zemin spriteımız, aslında küçük bir minecraft duvar kağıdı olan resmi yükleyebiliriz. Karakter olarakta, yine Google' dan bulduğumuz bir Poke Ball resmini kullanabiliriz.
Unity 2D Zıplama Buton Jump Button
Unity 2D Zıplama Buton Jump Button

Karakterler
Şimdi gerekenleri bulduğumuza göre bunları sahnemize yerleştirmemiz gerkiyor. Bunun için zemin ve karakter resimlerimizi Project paneline yine sürükleyip attıktan sonra, sahnemize yerleştireceğiz. Karakter ve zemin spritelarımıza isimlerini koyup onlara varlıklarını koyacağız. Bundan önce karakterimizin yani topumuzun boyutunu düşürmek için karakterimiz basılı haldeyken Inspector panelindeki Transform sekmesinde Scale X ve Y yi 0.5 yapacağız.
Unity 2D Zıplama Buton Jump Button
Yerleştirmemizi ve boyutlandırmamızı yaptıktan sonra zeminimize 2D Collider bileşinini, karakterimize ise hem 2D Collider bileşinini hem de Rigidbody 2D bileşenini eklememiz gerekiyor.
Zeminimiz kare şeklinde olduğundan, o seçiliyken Inspector panelinden Add Component butonuna bastıktan sonra Box Collider 2D yi veya Physics 2D sekmesine tıklayarak oradaki Box Collider 2D yi seçiyoruz.
Unity 2D Zıplama Buton Jump Button

Daha sonra karakterimiz seçili iken Inspector panelinden, şekli yuvarlak olduğundan ötürü, Add Component butonuna tıkladıktan arama kutusuna Circle Collider 2D yi seçiyoruz veya Physics 2D sekmesinden Circle Collider 2D yi seçerek bileşeni ekliyoruz. Ayrıca ona hareket ve yerçekimi gibi özellikleri eklemek için yine Inspector panelinden Add Component butonunun arama kutusuna Rigidbody 2D yazarak veya Physics 2D sekmesinden Rigidbody 2D yi seçerek ekliyoruz.
Unity 2D Zıplama Buton Jump Button
Kodlama
Boşluk tuşuna bastığımızda topumuzun zıplaması için Project panelindeki Create butonundan C# Script i seçerek, kodumuza kontroller ismini vererek, onu oluşturuyoruz.
Kodlar:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class kontroller : MonoBehaviour {
 Rigidbody2D rb;
 bool yereDegiyor = false;
 public float ziplamaKuvvet;
 
 void Start () {
  rb = this.gameObject.GetComponent ();
 }
 
 void Update () {
  if (Input.GetKey (KeyCode.Space)) {
   if (yereDegiyor) {
    rb.velocity = new Vector2 (rb.velocity.x, ziplamaKuvvet);
   }
  }
 }
 void OnCollisionEnter2D(Collision2D col){
  if (col.gameObject.tag == "zemin") {
   yereDegiyor = true;
  }
 }
 void OnCollisionStay2D(Collision2D col){
  if (col.gameObject.tag == "zemin") {
   yereDegiyor = true;
  }
 }
 void OnCollisionExit2D(Collision2D col){
  if (col.gameObject.tag == "zemin") {
   yereDegiyor = false;
  }
 }
}
Bu kodu uygulamamız için karakterimiz seçili iken Inspector panelinden Add Component butonuna bastıktan sonra arama kutusuna kontroller yazarak veya Script sekmesinden kontroller scriptini karakterinizine ekleyebilirsiniz. Fakat önce bu kodun doğru çalışması için zemin objelerimizin ikisine de ayrı ayrı "zemin" etiketini eklememiz gerekiyor. Bunun için zemin objelerimiz seçili iken Inspector panelinin üstünde yer alan Tag kısmına tıklayın ve Add Tag.. butonuna basın.
Unity 2D Zıplama Buton Jump Button
Zemin objelerimizin etiketini "zemin" olarak değiştirdikten sonra, eğer karakterimizin Inspector panelinde eklediğimiz kontroller scriptinden Ziplama Kuvvetini ayarladıysanız, oyuna başlayıp boşluk tuşuna basarsanız topumuz zıplar. Zıplama butonumuz çalışır durumdadır.
Unity 2D Zıplama Buton Jump Button

Yorum Gönder

1 Yorumlar

  1. rb = this.gameObject.GetComponent ();

    yanlış

    rb = this.gameObject.GetComponent ();

    Dogru

    YanıtlaSil