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!");

    }

Tutorial Unity #1 – Graphics



Pemberian Texture dan Lighting pada Objek 3D

  1. Buat objek 3D terlebih dahulu, untuk kali ini kubus (Cube).
  2. Pada tab Project bagian Assets, tekan Create atau klik kanan pada bagian kosong pilih Create > Material.
  3. Beri nama Material yang baru dibuat. Material inilah yang digunakan untuk memberi texture pada objek. Agar lebih mudah dalam mengaturnya untuk nanti, usahakan beri nama dengan yang berkaitan dengan objek yang akan diberi Material tersebut. Seperti “CubeMat”.
  4. Drag & Drop Material tadi (CubeMat) pada objek yang telah dibuat (Cube) atau pada nama objek yang ada pada bagian Hierarchy. Jika berhasil maka Default-Material akan berubah menjadi Material tadi.
  5. Drag & Drop gambar yang ingin ditempelkan pada objek pada bagian Assets.
  6. Pilih Material (CubeMat), lalu Drag & Drop gambar yang sudah ada di Assets ke tab Inspector bagian kotak yang berada di bawah Main Maps. Albedo digunakan untuk menempelkan gambar dengan normal. Tampilan objek dan Material pada Assets akan berubah seperti di bawah ini.


  7. Anda juga bisa menempelkan gambar dengan memilih Metallic. Metallic digunakan untuk menempelkan gambar dengan efek seperti logam (memantulkan gambar yang ada di sekitar objek).
  8. Untuk metode lainnya, perlu mengubah tipe gambar. Pilih gambar yang ada di Assets tadi lalu ganti Texture Type dengan Normal map. Jika gambar bukan grayscale (hitam putih), pastikan Create from Grayscale tidak tercentang. Klik Apply.
  9. Taruh gambar tadi pada Albedo atau Normal Map dan Height Map. Dengan cara ini, objek akan tampak seperti ada tonjolan. Anda dapat mengatur tonjolan ini dengan mengubah nilai pada Height Map.

  10. Sekarang buat objek bola (Sphere). Dekatkan bola dengan kubus tadi.
  11. Buat Material bola dan tempelkan Material tersebut pada bola tadi. Anda bisa mewarnai bola tersebut dengan menekan kotak putih sebelah Albedo jika Anda mau.
  12. Pilih objek bola lalu pada tab Inspector bagian paling bawah, klik Add Component.
  13. Pilih Rendering kemudian Light.
  14. Objek bola akan tampak seperti di bawah ini. Pada gambar, cahaya yang dipancarkan oleh bola tidak terlalu tampak.
  15. Agar cahaya pada bola terlihat, kita perlu meredupkan cahaya pada “langit”, Buat Material, beri nama “SkyboxMat”.

  16. Pilih SkyboxMat. Pada tab Inspector - Shader, ganti Standard dengan Skybox > Procedural.

  17. Setelah itu, drag & drop SkyboxMat pada daerah kosong Scene. Atur Atmosphere Thickness dengan nilai yang Anda inginkan.


  18. Pada nilai 1.6 maka akan tampak seperti di bawah ini. Cahaya dari bola terlihat lebih tampak daripada yang tadi karena cahaya dari “langit” atau Skybox agak redup.

Sekian. Semoga Bermanfaat.