Cara Membuat Movement Script - IMedia9 - Connecting Inspiration

Breaking

Tuesday, July 1, 2014

Cara Membuat Movement Script


Halo sobat Unity, apa kabar? Pasti pada sehat-sehat semuanya kan? Hari ini gua bakalan ngasih sebuah tutorial singkat soal movement alias pergerakan dengan keyboard. Lo tahu FPS Controller? Pasti tahu dong. Kalau lo sempat ngitung, lo cuma butuh waktu kurang dari 5 menit untuk bikin sebuah prototipe game FPS lengkap dengan kamernya bener nggak? Tinggal tarik tuh si prefab FPS dan thats it! Selesai. Masalahnya, lo ga pernah tahu gimana sih ceritanya, asal mulanya, sampai si prefab FPS itu bisa jadi kayak begitu? Mengetahui dasar dari si "Capsule" ajaib itu sangat penting. Dan gua bakalan bongkar sedikit rahasianya, sekarang. Oke, langsung aja sekarang lo lakukan langkah-langkah berikut:

1. Bikin project baru di Unity
2. Import Terrain Asset, kasih Terrain dan kasih texture
3. Import Skyboxes Asset, kasih langit
4. Kasih matahari alias Directional Lightning


Itu adalah 4 langkah standar untuk project baru. Bagi yang belum paham dipersilahkan membaca kumpulan artikel pemula dulu di sini. Nah , selanjutnya adalah lo tambahin sebuah kotak alias Cube. Cara nambahin Cube dengan klik menu GameObject -> Create Other -> Cube.


Lo tempatin deh itu MainCamera dan Cube di tengah-tengah Terrain. Bisa lo tarik-tarik pake mouse, atau atur aja langsung posisinya lewat panel Transform.

Habis itu lo masukin tuh si Cube jadi childnya si MainCamera. Cara ngejadiin Cube jadi Child, lo tarik aja (drag maksudnya), si Cube ke dalam MainCamera di tab Hierarchy

Atur posisi cube lewat panel Transform menjadi (0,0,0). Nah, ini penting bro. SEKALI sebuah GAMEOBJECT jadi CHILD di GAMEOBJECT lain, maka yang berlaku baginya adalah posisi local terhadap PARENT nya. Ngerti nggak lo? Nggak ngerti ya?


Posisi Vector3 (0,0,0) defaultnya itu di ujung kiri bawah Terrain, tapi berhubung si Cube udah jadi Childnya si MainCamera pas posisinya di kasih (0,0,0) dia akan berada tepat di tengah-tengah MainCamera. Dengan begini posisi kamera udah persis kayak si Capsule (FPS Controller). Tapi berhubung gue orangnya suka beda dengan yang lain, coba deh lo ganti posisi kameranya rada ke belakang, biar kaya 3rd Person Cube Controller, hehehe.



Habis itu lo bikin sebuah Script baru, caranya klik kanan di Panel Asstes -> Create -> C# Script DAN KASIH NAMA CUBECONTROLLER.CS. Beberapa orang yang baca blog gue selalu error di bagian masang script gara-gara hal ini. Buat lebih jelas silahkan lo cek artikel gue yang ini: Cara Memperbaiki Error Cant Add Script


Terus habis itu lo ketik deh scriptnya:

1:  using UnityEngine;  
2:  using System.Collections;  
3:  public class CubeController : MonoBehaviour {  
4:   float Speed = 2;  
5:   // Use this for initialization  
6:   void Start () {  
7:   }  
8:   // Update is called once per frame  
9:   void Update () {  
10:   if (Input.GetKey(KeyCode.W)){  
11:    transform.Translate(Vector3.forward * Speed *Time.deltaTime);  
12:   }  
13:   if (Input.GetKey(KeyCode.S)){  
14:    transform.Translate(Vector3.back * Speed * Time.deltaTime);  
15:   }  
16:   if (Input.GetKey(KeyCode.LeftShift) && Input.GetKey(KeyCode.A)){  
17:    transform.Translate(Vector3.left * Speed * Time.deltaTime);  
18:   } else  
19:   if (Input.GetKey(KeyCode.A)){  
20:    transform.Rotate(0,-1,0);  
21:   }  
22:   if (Input.GetKey(KeyCode.LeftShift) && Input.GetKey(KeyCode.D)){  
23:    transform.Translate(Vector3.right * Speed * Time.deltaTime);  
24:   } else  
25:   if (Input.GetKey(KeyCode.D)){  
26:    transform.Rotate(0,1,0);  
27:   }  
28:   }  
29:  }  

Keterangan:
Gue coba bikin script "sesimple" mungkin. Sebagian dari lo (yang pernah ngeliat isi script si FPS Controller), pasti pada heran karena nggak pernah nemuin perintah soal penekanan keyboard A, W, S dan D. Kenapa? Karena perintah itu di singkat jadi Input.GetKey("Horizontal") dan Input.GetKey("Vertical"). Secara jumlah baris, perintah itu memang super singkat sih, tapi bikin para newbie jadi bingung. Gue aja butuh waktu 3 bulan untuk menyadari kalau 2 perintah itu adalah perintah untuk mendeteksi inputan user yang isi parameternya di atur di menu Unity: Edit -> Project Setting -> Input.

Habis itu lo tarik deh script tadi ke si Cube dan jalanin dengan cara klik Play. Gimana? Jalan nggak? Itulah dasar dari pergerakan object di Unity. Sampai ketemu lagi di artikel gue selanjutnya.

No comments:

Post a Comment