Wednesday 16 March 2016

Unity Tutorial Indonesia : Attribute - [RequireComponent]

Advertisement


Salam super, kali ini mimin mau membahas attribute yang ada pada c# unity. Ada banyak jenis attribute yang digunakan pada C#, yaitu :

A. Unity Attribute
- [AddComponentMenu]
- [ContextMenu]
- [ContextMenuItem]
- [MenuItem]
- [NetworkSettings]

B. Unity Class Attribute
- [DisallowMultipleComponent]
- [ExecuteInEditMode]
- [InitializeOnLoad]
[RequireComponent]
- [RuntimeInitializeOnLoad]

C. Unity Property Attribute
- [HideInInspector]
- [IntRangeAttribute]
- [Multiline]
[SerializeField]
- [TextArea]
- [Tooltip]
- [Header]
- [Range]
- [Space]


[RequireComponent]

Oke, langsung aja [RequireComponent] disingkat [RC] adalah sebuah attribute yang digunakan jika dalam sebuah script program membutuhkan sebuah component yang memang sangat penting dan harus ada dalam script tersebut, secara sederhana itu salah satu fungsi [RC].

Dan bisa berfungsi juga untuk menambahkan sebuah komponen ke sebuah objek dalam game. Kita mulai dengan contoh agar lebih mudah dipahami....



Tahap pertama coba tambahkan 1 objek, mimin menambahkan objek sphere, pada objek sphere di jendela inspektor belum ada komponen tambahan selain komponen yang sudah ada.

Buat C# Script baru beri nama "LatihanAttribute.cs" atau boleh bebas dan tambahkan listing program berikut ke LatihanAttribute.cs
using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody))]
public class LatihanAttribute : MonoBehaviour {


}
jika sudah, tambahkan script tadi ke objek sphere dan lihat pada jendela Inspektor.




Secara otomatis komponen Rigidbody akan ditambahkan setelah script tadi diberikan ke si sphere.

Untuk mencoba apa komponen tersebut berhasil ditambahkan dan bisa diedit melalui script program, mimin remake LatihanAttribute.cs menjadi 
using UnityEngine;
using System.Collections;

[RequireComponent(typeof(Rigidbody))]
public class LatihanAttribute : MonoBehaviour {

                Rigidbody rigidbody;
               
                void Awake(){
                                rigidbody = GetComponent<Rigidbody>();
                }
               
                void Start(){
                                rigidbody.useGravity = true;
                }


}
Remake script dan save kemudian kembali ke jendela inspektor.




Hapus ceklis pada Use Gravity, soalnya mimin mau coba ceklis bagian ini melalui script yang tadi.




Jalankan game dan lihat jendela inspektor, pada Use Gravity ceklis ditambahkan, ini artinya komponen sukses diberikan ke objek menggunakan [RequireComponent]

Ada satu lagi kelebih dari komponen yang ditambahkan menggunakan [RC], cek gambar di bawah




Mimin ingin mencoba menghapus komponen Rigidbody tadi dengan Remove Component.




Dan yang terjadi, komponen ngga bisa dihapus selama script tadi masih ada di objek sphere, untuk menghapusnya pertama hapus dulu script LatihanAttribute.cs kemudian komponennya.


selesai


EmoticonEmoticon