PACMAN 3D MENGGUNAKAN UNITY 5.0
Tujuan :- Mahasiswa mengerti kiat pembuatan pacman 3D menggunakan Unity 5.0
- Mahasiswa mampu membuat pacman 3D menggunakan Unity 5.0
1. Pertama-tama buat arena bermain dalam Pacman, dalam project ini saya gunakan terrain yang merupakan aset bawaan dari Unity, jangan lupa berikan directional light dan texturing

2. Setelah terrain jadi, saya bake menggunakan unity navigation untuk keperluan AI pathfinding
3. Mulai pembuatan karakter, saya buat karakter Pacman hanya dengan menggunakan asset sphere dari Unity, dan tambahkan material untuk warna karakter. Pada objek karakter diberikan collider dan rigidbody.

4. saya berikan script berikut untuk pergerakan karakter Pacman
public class CharacterControl : MonoBehaviour {Penjelasan:
public int speed = 3;
void Update () {
transform.Translate ( new Vector3 ((Input.GetAxis ("Horizontal")*speed*Time.deltaTime), 0,
(Input.GetAxis ("Vertical")*speed*Time.deltaTime)));
}
}
- int speed dibuat public agar dapat diedit dalam unity
- translasi menggunakan input axis horizontal dan vertikal agar selain bisa dikontrol dengan keyboard dapat juga dikontrol dengan stick controller
5. Dilanjutkan dengan pembuatan karakter musuh yang mirip dengan karakter Pacman, dibedakan warna material. Kemudian di duplicate menjadi 4 dan disebar dibanyak tempat pada terrain.
6. Berikut script musuh yang saya tanamkan pada musuh
using UnityEngine;Penjelasan :
using System.Collections;
public class AIScript : MonoBehaviour {
public NavMeshAgent NavComponent; //agent pathfinding
[SerializeField] Transform target; //tempat tujuan pathfinding
[SerializeField] int sped = 5; //kecepatan gerak
// Use this for initialization
void Start () {
NavComponent = this.transform.GetComponent<NavMeshAgent> ();
}
// Update is called once per frame
void Update () {
this.transform.eulerAngles = new Vector3 (45, 0);
if (target) {
NavComponent.SetDestination (target.position);
NavComponent.speed = sped;
} else
NavComponent.Stop ();
}
void OnCollisionEnter(Collision col){
if (col.transform.name == "Player") {
Application.LoadLevel("LoseScene");
}
}
}
- Pathfinding menggunakan navmesh agent yang telah disediakan oleh unity
- Jika AI menabrak pemain maka akan kalah dengan ditandai berpindahnya scene ke LoseScene
7. Setelah itu saya buat collectible yang merupakan tujuan kemenangan game, asset berupa cube dan saya beri material berwarna hijau
8. Berikut script yang ditanamkan dalam object collectible
using UnityEngine;Penjelasan :
using System.Collections;
public class Collectable : MonoBehaviour {
public GameManager GM;
void Start () {
GameObject gmobject = GameObject.FindGameObjectWithTag ("MainCamera").gameObject;
GM = gmobject.GetComponent<GameManager> ();
GM.scores+=1;
}
void Update () {
transform.Rotate (new Vector3 (3, 2));
}
void OnTriggerEnter(Collider col){
if (col.transform.name == "Player") {
GM.scores--;
Destroy(this.gameObject);
}
}
}
- script GameManager (yang akan dijelaskan di langkah 10) saya letakkan di object Main Camera maka dari itu diperlukan parameter Main Camera pada fungsi start
- pada Update dibuat rotasi terus menerus agar interaktif dan menarik
- Jika ditrigger oleh player maka komunikasi dengan GameManager untuk mengurangi jumlah collectible yang harus didapatkan
9. Buat Scene untuk menang dan kalah
10. Buat GameManager untuk mendapatkan informasi sisa collectible yang harus diambil, berikut scriptnya:
using UnityEngine;Penjelasan :
using System.Collections;
public class GameManager : MonoBehaviour {
public int scores;
void Update () {
if (scores == 0) {
Application.LoadLevel("WinScene");
}
}
}
- scores dibuat public agar dapat diakses oleh script lain
- Update mengecek jika scores telah 0 maka menang dan ditandai dengan berpindah scene ke WinScene
Analisis
- Unity telah menyediakan AI pathfinding sederhana menggunakan navmesh agent
- Pathfinding navmesh agent menggunakan navigation yang telah dibake sebelumnya untuk mencari jalan menuju tujuan
- pathfinding navmesh agent selain diperintahkan untuk mencari jalan menuju tujuan juga dapat diperintahkan untuk berhenti menuju tujuan
Kesimpulan
Membuat game tidak membutuhkan keahlian yang sangat tinggi, bahkan menggunakan aset dan fitur dasar yang telah ada di unity kita sudah dapat membuat game Pacman 3D sederhana, yang lebih dimudahkan lagi dengan adanya pathfinding menggunakan fitur dari unity yakni navmesh agent.







Tidak ada komentar:
Posting Komentar