Unity C# Tutorial Indonesia : Basic 16 - GameObject dan GetComponent

GameObject biasa digunakan untuk mendeklarasikan objek yang ada di dalam game ke dalam script program. Alasan pendeklarasian adalah karena objek akan diedit atau disetting lewat script.

GetComponent digunakan untuk mengambil / mendeklarasikan komponen yang ada di dalam sebuah objek. Alasannya sama seperti GameObject karena komponen yang dideklarasikan akan diedit melalui script.

Kenapa GameObject dan GetComponent dibuat dalam satu tutorial, karena kedua perintah ini selalu berhubungan dalam sebuah script.




MULAI
Pada tutorial kali ini akan dicoba mendeklarasikan dan mengatur komponen Rigidbody yang sudah ditambahkan ke objek cube.


1. Kondisi A
Pada kondisi A, Rigidbody dan script ditambahkan ke Object Cube




Tahap pertama buat sebuah objek Cube dan tambahkan komponen Rigidbody, Component - Physics - Rigidbody.





Setelah itu buat C# Script dengan nama  "Latihan" dan berikan ke objek Cube. Buka script dan masukkan listing program berikut :

A. Latihan.cs
using UnityEngine;
using System.Collections;

public class Latihan : MonoBehaviour {
               
                Rigidbody rigidbody;
               
                void Awake () {
                                rigidbody = GetComponent<Rigidbody>();
                }
               
                void Update(){
                                rigidbody.AddForce(Vector3.forward * 10);
                                rigidbody.useGravity = false;
                }

}

Penjelasan :

Rigidbody rigidbody
Ini adalah pendeklarasian untuk komponen, "Rigidbody" adalah nama komponen dan "rigidbody" adalah nama variabel dari komponen, nantinya variabel ini akan mengambil komponen "Rigidbody".

rigidbody = GetComponent<Rigidbody>()
baris program dimana variabel rigidbody mengakses komponen.

rigidbody.AddForce();
Akan dipelajari pada tutorial berikutnya.

rigidbody.useGravity = false;
Digunakan untuk menghilangkan efek gravitasi pada objek.





Jalankan game dan cube akan berjalan lurus kedepan dan ceklis pada Rigidbody - Use Gravity menghilang.




2. Kondisi B
Pada Konsisi B, Rigidbody diberikan ke cube tetapi script diberikan ke object lain (Main Camera), ini artinya bagaimana cara untuk mendeklarasikan komponen yang berada pada objek lain.





1. Hapus terlebih dahulu script "Latihan" yang ada di objek cube.
2. Tambahkan script "Latihan" ke objek Main Camera.
3. Remake script "Latihan" dengan listing berikut :

B. Latihan.cs
using UnityEngine;
using System.Collections;

public class Latihan : MonoBehaviour {
               
                GameObject siKotak;
                Rigidbody rigidbody;
               
                void Awake () {
                                siKotak = GameObject.Find("Cube");
                                rigidbody = siKotak.GetComponent<Rigidbody>();
                }
               
                void Update(){
                                rigidbody.AddForce(Vector3.forward * 10);
                                rigidbody.useGravity = false;
                }

}

Penjelasan : 


GameObject siKotak
Adalah proses pendeklarasian objek di dalam game, dimana "GameObject" adalah perintah pendeklarasian dan "siKotak" nama variabel dari objek yang akan diakses.

siKotak = GameObject.Find("Cube");
Baris ini adalah proses variabel siKotak mengakses objek Cube di dalam game dengan perintah GameObject.Find("Nama Objek")


rigidbody = siKotak.GetComponent<>();

Baris ini adalah perbedaan utama dari Kondisi A. sebelum GetComponent ditulis sebelumnya ditulis terlebih dahulu variabel objek yang dimana objek ini memiliki komponen Rigidbody.






Jalankan game dan proses pendeklarasian objek + komponennya berhasil.




SELESAI



Tag : Basic
Back To Top