Senin, 12 Oktober 2015

Tutorial Unity #2 – Input Handling dan Collision Detection



Simulasi Tabrakan

  1. Siapkan objek yang akan digerakkan (seperti kubus) dan objek yang akan ditabrak. Untuk kali ini objek yang akan digerakkan adalah truk dan objek yang akan akan ditabrak adalah tembok.
  2. Pada tab Project bagian Assets, klik kanan > Create > C# Sript.
  3. Beri nama “TruckController”. Drag & drop script pada truk (objek yang akan digerakkan).

  4. Buka script dengan mengeklik dua kali. Ini adalah tampilan awal script.
  5. Masukkan kode berikut dalam script. Untuk mendapatkan input keyboard dari user, kita bisa menggunakan Input.GetKey() untuk menangkap tombol keyboard yang ditekan, Input.GetKeyDown() untuk menangkap tombol keyboard yang ditekan lalu ditahan, dan Input.GetKeyUp() untuk menangkap tombol keyboard yang telah dilepas. transform.position digunakan untuk mengubah posisi objek. Karena arah depan dan belakang dari truk berada pada sumbu x, maka yang kita ubah adalah posisi objek pada sumbu x.

    using UnityEngine;

    using System.Collections;



    public class TruckController : MonoBehaviour {

         public float spd, v;

         void Start () {

               this.spd = 5f;

         }

         void Update () {

               this.v = this.spd * Time.deltaTime;

               if(Input.GetKey (KeyCode.UpArrow)) {

                    transform.position = new Vector3(

                         transform.position.x + this.v,

                         transform.position.y,

                         transform.position.z);

               }

               if(Input.GetKey (KeyCode.DownArrow)) {

                    transform.position = new Vector3(

                         transform.position.x - this.v,

                         transform.position.y,

                         transform.position.z);

               }

         }

    }
  6. Tambahkan juga kode di bawah ini untuk tabrakannya. Taruh di bawah void Update(){}. OnCollisionEnter() dijalankan pada saat akan menabrak, OnCollisionStay() dijalankan pada saat menabrak, OnCollisionExit() dijalankan saat setelah menabrak.


    void OnCollisionEnter(Collision collision) {

         print ("Warning! Danger Ahead...");

    }



    void OnCollisionStay(Collision collision) {

         print ("Crashed!!");

    }



    void OnCollisionExit(Collision collision) {

         print ("Runaway!");

    }
  7.  Klik truk (objek yang digerakkan). Pada tab Inspector bagian paling bawah, klik Add Component > Physics > Rigidbody.
  8. Untuk kali ini, hilangkan centang pada Use Gravity.
  9. Jalankan Scene dengan mengeklik tombol Play di atas Scene.
  10. Tekan tombol atas untuk melaju ke depan dan tombol bawah untuk melaju ke belakang.
  11. Objek (truk) sudah berhasil menabrak tembok dan terpental.
Sekian. Semoga bermanfaat.

Tidak ada komentar:

Posting Komentar