Tutorial Unity - Movement Script - IMedia9 - Creative Networks

Breaking

Saturday 5 July 2014

Tutorial Unity - 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. Udah pada bisa kan? Belom? Buat yang belom baca dulu tutorial gue yang ini: [url=http://blogtutorial-unity.blogspot.com/2012/11/tutorial-unity-hello-world-01.html]http://blogtutorial-unity.blogspot.com/2012/11/tutorial-unity-hello-world-01.html[/url] sampai habis.

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: http://blogtutorial-unity.blogspot.com/2014/06/trouble-shooting-unity-cant-add-script.html


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. Dan jangan lupa mas-bro, LIKE FAN PAGE: http://www.facebook.com/kikysikancil

7 comments:

  1. mas script nya ttep error udh sama persis class nya udah sama, apa mungkin nabrak sama script objek bawaan yg lainnya ya? (seperti FPSInput Controller, character motor, n character controller)???? makasih :) mohon solusinyaa

    ReplyDelete
  2. teorinya sih ga bakalan nabrak, kan tutorial ini ga pake prefabnya bawaan unity. lagian setiap script biasanya fokus bekerja di gameobject tertentu, tergantung juga sih masangnya di mana.coba kirim screen shotnya ke fb saya, thanks

    ReplyDelete
  3. Hy pak/mas, Hy mohon maaf sebelumnya perkenalkan nama saya kadek budi dari bali.saya mintak tolong ajarin saya pakek unity ya pak.

    ReplyDelete
  4. Ini pin bbm saya DD527692
    Ini WA saya 087761698039
    Mohon bantuannya ya pak/mas

    ReplyDelete
  5. Saya tunggu kabarnya ya pak mohon bantuanya terima kasih

    ReplyDelete
  6. Saya tunggu kabarnya ya pak mohon bantuanya terima kasih

    ReplyDelete
  7. Ini pin bbm saya DD527692
    Ini WA saya 087761698039
    Mohon bantuannya ya pak/mas

    ReplyDelete