People Innovation Excellence
 
Feature Image

Tutorial Penggunaan Coroutine Menggunakan Game Engine Unity

Sebuah function atau method digunakan untuk menjalankan sub module dari sebuah algoritma yang sedang dibuat. Pada pembuatan game, penggunaan function/method akan sangat membantu untuk pengelompokan karena pada game engine unity, setiap script akan berperan sebagai komponen dari sebuah GameObject.

Adapun contoh pembuatan sebuah function Fade sebagai berikut:

Pada contoh function diatas, fungsi fade digunakan untuk mengubah tingkat alpha / transparansi dari sebuah material, dimana fungsi tersebut akan melakukan perulangan dari tingkat alpha 0 menjadi 1. Dalam pembuatan game, sebuah fungsi akan berjalan dalam jeda waktu 1 frame. Artinya fungsi fade tersebut akan selesai dijalankan dalam waktu 1 frame. Hal ini tentunya tidak akan terlihat efek dari function tersebut. Jika kita ingin menginginkan adanya gradasi dari tingkat transparansi, maka cara yang bisa dilakukan adalah menggunakan Coroutine.

Coroutine merupakan pengganti dari sebuah function, dimana kegunaan dan cara penggunaannya akan mirip seperti function. Namun coroutine memiliki perbedaan dengan function, dimana isi dari coroutine dapat berjalan dengan selang waktu lebih dari 1 frame.

Contoh penggunaan coroutine untuk melakukan fade adalah sebagai berikut:

Coroutine memiliki tipe fungsi IEnumerator, serta harus mengembalikan value menggunakan keyword yield. Jenis yield yang bisa digunakan:

  1. Break: fungsi Coroutine akan langsung selesai. Break ini sama dengan fungsi return pada function
  2. Return null: Fungsi coroutine akan melakukan delay sebanyak 1 frame. Artinya fungsi coroutine ini akan berhenti berjalan selama 1 frame, kemudian akan melanjutkan statement selanjutnya. Selain null, pada bagian return dapat diisi dengan beberapa function seperti:
  • new WaitForSeconds(float) -> melakukan delay sebanyak waktu yang ditentukan pada parameter
  • new WaitForEndOfFrame() -> melakukan delay sampai akhir dari sebuah frame. Biasanya digunakan untuk melakukan pemrosesan sebuah game atau code pada akhir dari sebuah frame.
  • new WaitForFixedUpdate () -> melakukan delay sampai waktu berjalannya fungsi FixedUpdate. Fungsi FixedUpdate akan berjalan seiring dengan waktu pengecekan pada Physics di Unity.

Untuk menjalankan coroutine dapat menggunakan fungsi StartCoroutine(). Contoh code untuk menjalankan fungsi fade jika user menekan tombol ‘f’ pada keyboard :

Fungsi coroutine diatas dapat dikembangkan dengan mengganti pergantian setiap perulangan yang semula adalah 0.1f menjadi Time.deltaTime, dimana Time.deltaTime akan menghasilkan waktu yang dihabiskan untuk melakukan proses dalam 1 frame. Adapun update dari penggunaan coroutine Fade sebagai berikut:

Fungsi diatas akan menghasilkan proses fading dari transparansi 0 menjadi transparansi 1 dalam waktu 1 detik.

Dokumentasi lengkap penggunakan Coroutine dapat mengakses situs dokumentasi resmi dari unity: https://docs.unity3d.com/ScriptReference/Coroutine.html


Published at : Updated
Written By
David, S.Kom., M.T.I
Subject Content Coordinator – Game Programming | School of Computer Science

Periksa Browser Anda

Check Your Browser

Situs ini tidak lagi mendukung penggunaan browser dengan teknologi tertinggal.

Apabila Anda melihat pesan ini, berarti Anda masih menggunakan browser Internet Explorer seri 8 / 7 / 6 / ...

Sebagai informasi, browser yang anda gunakan ini tidaklah aman dan tidak dapat menampilkan teknologi CSS terakhir yang dapat membuat sebuah situs tampil lebih baik. Bahkan Microsoft sebagai pembuatnya, telah merekomendasikan agar menggunakan browser yang lebih modern.

Untuk tampilan yang lebih baik, gunakan salah satu browser berikut. Download dan Install, seluruhnya gratis untuk digunakan.

We're Moving Forward.

This Site Is No Longer Supporting Out-of Date Browser.

If you are viewing this message, it means that you are currently using Internet Explorer 8 / 7 / 6 / below to access this site. FYI, it is unsafe and unable to render the latest CSS improvements. Even Microsoft, its creator, wants you to install more modern browser.

Best viewed with one of these browser instead. It is totally free.

  1. Google Chrome
  2. Mozilla Firefox
  3. Opera
  4. Internet Explorer 9
Close