lawang code

lawang Code


Tanyakan kode disini

Cara sederhana untuk implementasi jump di 2D platformer Unity

oleh Mario Prawirosudiro 4 tahun yang lalu

Makin lama dukungan 2D di Unity makin bagus. Kalau dulu kita harus menggunakan rigidbody 3D untuk physics, sekarang kita bisa memakai versi 2Dnya.

Siapkan game object lengkap dengan sprite (atau animasi, kalau punya), lalu tambahkan Rigidbody2D dan BoxCollider2D ke game object tersebut. Kita sebut game object ini "player".

Selanjutnya buat script baru. Unity memberikan 3 pilihan bahasa, UnityScript, Boo, dan C#. Saya akan menggunakan C#. Konsepnya di sini adalah, ketika kita menekan spacebar, player akan meloncat sekali, lalu mendarat. Tapi, player tidak boleh meloncat ketika belum mendarat.

public Vector2 speed;

bool isJumping = true;

// Use this for initialization
void Start () {
    speed = new Vector2(5f, 5f);
}

void OnCollisionEnter2D(Collision2D other) {
    isJumping = false;
}

Variable isJumping akan bernilai true setiap kali kita tidak menyentuh tanah, atau object lain. Dengan kata lain, apabila player tidak sedang bersentuhan dengan apapun (keadaan melayang), player dianggap sedang melompat. Sebaliknya, ketika player ersentuhan dengan object lain, event OnCollisionEnter2D akan dipanggil, dan isJumping menjadi false.

void Update() {
    if(Input.GetKey(KeyCode.Space) && !isJumping) {
        gameObject.rigidbody2D.AddForce(
            new Vector2(0, speed.y), ForceMode2D.Impulse);
    }
}

Dalam kasus ini, saya menggunakan impulse, ketimbang force biasa. Bagi yang ingin menggunakan force biasa silahkan, tapi harus dipertimbangkan besar gravitasi dan massa object itu sendiri.

Harap diperhatikan, ini hanyalah contoh sederhana. Sebisa mungkin kita tidak menaruh controller code di sini, Seharusnya ada script terpisah yang mendeteksi key yang kita input, dan meneruskannya ke character controller. Tapi berhubung ini tutorial sederhana, saya lebih menitikberatkan pada konsep jumping itu sendiri.

Semoga bermanfaat.

Unity C#
Anda harus login terlebih dahulu untuk memberikan komentar

Recent Tag

X 4
X 6
X 1
X 21
X 3
X 1
X 43
X 1
X 2

Bantuan

Help

Feedback

Help