Pengenalan Konsep

Pada bagian pertama ini kita akan membahas konsep konsep dasar dari Unity seperti tatap muka, scene, game object, dan hal lain yang menyangkut konsep pembuatan game menggunakan Unity itu sendiri. Untuk informasi, detail dari penggunaan Unity sebenarnya sudah tersedia secara lengkap pada Unity Manual. Walaupun begitu, pada modul ini kami akan menjelaskan secara ringkas disertai dengan informasi lanjut pada setiap bagian yang bisa diakses pada Unity Manual.

Tatap Muka

Secara umum, terdapat enam tatap muka utama yang akan sering digunakan selama pembuatan game menggunakan Unity. detail dari keenam tatap muka tersebut adalah sebagai berikut:

Tatap Muka Utama **Unity**

  1. Project Window. Merupakan tatap muka yang menampilkan file dan asset yang digunakan pada suatu project.
  2. Scene View. Merupakan tatap muka yang menunjukan tampilan keseluruhan scene.
  3. Game View. Merupakan tatap muka yang menunjukan tampilan ketika game sedang berlangsung.
  4. Hierarchy Window. Merupakan tatap muka yang menampilkan daftar object yang ada pada suatu scene.
  5. Inspector Window. Merupakan tatap muka yang menampilkan detail dari suatu object pada suatu scene maupun file dan asset pada suatu project.
  6. Toolbar. Merupakan tatap muka yang berisi berbagai macam tool yang bisa digunakan selama pembuatan game pada Unity.

Informasi lebih lanjut mengenai tatap muka utama pada Unity bisa dilihat disini.

Sekadar informasi, selain keenam tatap muka utama tersebut juga ada tatap muka lain yang umumnya digunakan untuk keperluan yang lebih spesifik seperti Sprite Editor, Animation Editor, Audio Mixer, dan lain sebagainya.

Scene

Scene merupakan hal yang merujuk pada keseluruhan lingkungan pada game yang bisa berupa menu, world, gameplay, maupun hal lain. Bagian utama dari game yang dibuat menggunakan Unity terletak di scene-nya, dimana scene sendiri akan berisi berbagai macam object yang saling berinteraksi di dalamnya. Ketika game berlangsung hanya ada satu scene yang bisa aktif dan agar bisa menggunakan scene yang lain maka diperlukan adanya perpindahan dari satu scene ke scene yang lain yang nantinya akan dibahas lebih lanjut pada bagian Navigasi dan Scene di modul ini.

Informasi lebih lanjut mengenai scene pada Unity bisa dilihat disini.

Membuat Scene Baru

Game Object

Game object merupakan hal yang merujuk pada objek-objek seperti player, musuh, bangunan, partikel, button, dan sebagainya yang ada pada suatu scene di game. Secara default, scene yang baru dibuat memiliki game object Main Camera yang digunakan untuk menunjukan viewport ketika game sedang berlangsung.

Informasi lebih lanjut mengenai game object pada Unity bisa dilihat disini.

Membuat Game Object Baru

Transformasi Game Object

Setiap game object memiliki component Transform yang digunakan untuk merepresentasikan transformasi (posisi, rotasi, dan skala) dari game object pada suatu scene. Terdapat dua cara untuk mengubah transformasi suatu game object, yakni sebagai berikut:

  1. Mengubah langsung pada Scene View menggunakan tools yang tersedia pada toolbar (sebelah kiri atas), seperti Move Tool, Rotate Tool, Scale Tool, dan lain sebagainya.
  2. Mengubah nilai dari component Transform secara langsung pada Inspector Window. (sebelumnya klik game object pada Scene View atau Hierarchy Window untuk menampilkan detail component dari game object)

Informasi lebih lanjut mengenai Transformasi game object pada Unity bisa dilihat disini.

Sebagai contoh kita bisa mengubah transformasi dari game object yang sebelumnya dibuat dengan mengubah nilai Position menjadi (0, 0, 0) dan Scale menjadi (5, 5, 5) pada Inspector Window. Hasilnya akan didapatkan objek persegi besar yang berada tepat di tengah-tengah scene.

Mengubah transformasi _game object_

Component

Component merupakan bagian kecil yang menyusun suatu game object pada scene. Sesuai dengan prinsip pada component based architecture, setiap hal kecil dari program akan dibentuk menjadi komponen sehingga memudahkan prototyping untuk objek baru tanpa membuat ulang keseluruhan isi dari objek tersebut. Sebagai contoh, Transform merupakan salah satu component yang merepresentasikan transformasi dari game object seperti yang dijelaskan sebelumnya, selain itu ada juga component Camera yang digunakan untuk mengatur view ketika game berlangsung seperti ukuran view, jenis projection, dan lain sebagainya.

Informasi lebih lanjut mengenai component pada Unity bisa dilihat disini.

Membuat Component Baru dengan C# Script

Mem-Program Component Random Start

Secara default, isi dari C# script yang baru dibuat adalah sebagai berikut:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RandomStart : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }
}

Inti dari component yang dibuat menggunakan C# script terletak pada fungsi Start() dan Update(). Sesuai dengan penjelasan pada comment line (baris program dengan awalan // yang berfungsi sebagai keterangan), fungsi Start() akan digunakan untuk melakukan eksekusi pertama di awal, sedangkan fungsi Update() akan digunakan untuk melakukan eksekusi yang dipanggil secara terus menerus di setiap frame. Pada percobaan kali ini, kita akan fokus pada fungsi Start() saja karena proses untuk membuat game object berada di tengah cukup dilakukan sekali pada eksekusi pertama di awal.

Ubah isi dari fungsi Start() sebagai berikut:

void Start()
{
    Vector3 position = transform.position;
    position.x = Random.Range(-10, 10);

    transform.position = position;
}

Penjelasan singkat dari baris program diatas, program akan menyimpan nilai transform.position ke variabel sementara position yang berupa Vector3. Vector3 sendiri merepresentasikan posisi 3D yang terdiri dari x, y, dan z, seperti pada nilai Position pada component Transform di Inspector Window. Kemudian program akan mengubah nilai x dari position dengan angka acak dari kisaran -10 hingga 10 dan menge-_set_-nya kembali ke variabel transform.position.

Sebagai catatan, transform merupakan member variable yang memiliki tipe data class Transform. Dalam sisi pemrograman, class Transform merupakan class yang merepresentasikan isi dan fungsi dari component Transform yang ada pada game object. Informasi lebih lanjut mengenai class Transform bisa dilihat disini.

Setelah selesai, simpan baris program tersebut.

Menggunakan Component RandomStart

Order of Execution

Order of execution merupakan istilah yang merujuk pada urutan dari pemanggilan event pada sistem Unity. Salah satu dari event tersebut nantinya akan memanggil fungsi yang ada pada component seperti Start() dan Update() yang sudah dijelaskan sebelumnya. Pada bagian ini kita akan membahas lebih lanjut mengenai bagaimana pengaruh order of execution ini terhadap looping dari suatu game, sehingga alur dari sistem bisa bekerja sesuai dengan yang diinginkan.

Informasi lebih lanjut mengenai order of execution pada Unity bisa dilihat disini.

Component Up Movement

Pada percobaan kali ini, kita akan membuat component baru yang akan digunakan untuk membuat objek bergerak ke atas selama game sedang berlangsung Untuk itu, pertama, buat C# script baru dan beri nama Up Movement.

Buka C# script tersebut dan ubah isi dari fungsi Update() sebagai berikut:

void Update()
{
    Vector3 translation = new Vector3(0, 5, 0);
    transform.Translate(translation * Time.deltaTime);
}

Penjelasan singkat dari baris program diatas, program akan membuat variabel Vector3 baru dengan nilai 0, 5, 0. Kemudian program akan memanggil fungsi Translate() dari transform dengan parameter yang berupa variabel yang sudah dibuat sebelumnya dikalikan dengan Time.deltaTime. Maksud dari fungsi Translate() sendiri adalah untuk mentranslasi (menggerakkan) objek ke arah vektor yang sudah dibuat sebelumnya.

Sebagai catatan, Time.deltaTime merupakan nilai selisih waktu antara frame sebelum dan frame sekarang. Perkalian dengan Time.deltaTime pada Unity umumnya digunakan untuk menghindari adanya gerakan yang patah patah ketika game sedang berlangsung. Informasi lebih lanjut mengenai perlunya Time.deltaTime bisa dilihat disini.

Setelah selesai, simpan baris program tersebut.

Menggunakan Component Up Movement

Kesimpulan

Dari bagian pertama ini kita telah mengenal konsep dasar pembuatan game menggunakan Unity. Dari sini kita bisa membuat game yang terdiri dari scene dengan berbagai isi objek sesuai keinginan, serta mengatur setiap objek yang ada dengan component yang bisa kita buat sendiri.

Pada bagian selanjutnya kita akan membahas lebih lanjut mengenai manipulasi objek menggunakan component yang dibuat sendiri, terutama soal mengatur gerakan dari game object serta mengatur interaksi antara pemain dengan game yang akan dibuat.

Lanjut Bagian Kedua, Input dan Gerakan