Skip to content

Latest commit

 

History

History
225 lines (145 loc) · 14 KB

File metadata and controls

225 lines (145 loc) · 14 KB

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

  • Pembuatan scene baru pada Unity dilakukan melalui tatap muka Project Window.

    Secara umum, asset yang berbentuk scene diletakkan pada folder bernama Scenes. jadi pastikan Project Window sudah berada pada folder tersebut.

  • Terdapat dua cara untuk menambahkan scene baru, yakni dengan menekan tombol + pada bagian kiri atas lalu pilih Scene atau dengan klik kanan, lalu Create, dan pilih Scene.

    Membuat scene baru dengan klik kanan

  • Beri nama scene yang dibuat dengan nama Game.

  • Buka scene baru yang telah dibuat dengan cara double klik.

    Pada tahap ini Scene View, Game View, dan Hierarchy Window akan berganti sesuai dengan isi dari scene yang dibuka.

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

  • Pembuatan game object baru pada Unity dilakukan melalui tatap muka Hierarchy Window.

  • Sama seperti pembuatan scene baru, terdapat dua cara untuk menambahkan game object baru, yakni dengan menekan tombol + pada bagian kiri atas lalu pilih jenis game object yang diinginkan atau dengan klik kanan lalu pilih jenis game object yang diinginkan.

  • Untuk percobaan kali ini, kita akan membuat game object dengan jenis 3D Object -> Cube. Setelah itu akan muncul objek persegi pada Scene View maupun Game View.

    Membuat game object baru dengan menekan tombol +

    Walaupun yang dibuat adalah game jenis 2D, Unity tetap memperlakukan game tersebut sebagai game 3D dengan perspektif kamera 2D. Hal ini bisa dilihat dengan mematikan toggle 2D pada Scene View.

  • Beri nama game object yang baru dibuat dengan nama Player.

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

  • Pembuatan component baru dengan C# script dilakukan melalui tatap muka Project Window.

    Secara umum, asset yang berbentuk C# script diletakkan pada folder bernama Scripts. jadi pastikan Project Window sudah berada pada folder tersebut.

  • Terdapat dua cara untuk menambahkan C# script, yakni dengan menekan tombol + pada bagian kiri atas lalu pilih C# Script atau dengan klik kanan, lalu Create, dan pilih C# Script.

    Membuat C# script baru dengan klik kanan

  • Beri nama component yang baru dibuat dengan nama RandomStart.

    Untuk percobaan kali ini, kita akan membuat component dengan nama Random Start yang akan digunakan untuk membuat posisi game object terletak secara acak di awal.

  • Buka C# script yang telah dibuat dengan cara double klik.

    Pada tahap ini Unity akan membuka text editor yang menampilkan C# script dari component Random Start. Jika Visual Studio tidak terinstall, maka bisa menggunakan text editor apapun seperti Notepad.

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

  • Buka scene Game yang sebelumnya sudah dibuat.

  • Klik objek Player dan Pada Inspector Window, klik Add Component.

  • Cari component yang bernama Random Start, dan kemudian tambahkan.

    Menambahkan component Random Start pada game object

  • Setelah component ditambahkan, klik tombol Play pada Toolbar untuk melihat hasilnya.

    Pada tahap ini, tampilan akan terfokuskan pada Game View, dan objek Player akan secara otomatis berpindah tempat pada posisi yang berbeda saat game sedang berlangsung.

    Sebagai tambahan, jika di-play berulang kali, posisi awal dari objek Player akan berbeda dengan posisi yang didapatkan pada game yang berlangsung sebelumnya. Hal ini terjadi karena fungsi Random.Range() akan memilih angka acak sesuai dengan parameter yang diberikan.

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

  • Buka scene Game yang sebelumnya sudah dibuat.

  • Tambahkan component Up Movement pada objek Player.

  • Klik tombol Play untuk melihat hasilnya.

    Pada tahap ini, objek Player akan bergerak ke atas. Hal ini bisa terjadi karena pada fungsi Update(), transformasi dari objek akan dilakukan translasi secara terus menerus di setiap frame sehingga menimbulkan kesan seolah-olah sedang bergerak ke atas.

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