pertemuan 12 first person character sederhana (lanjutan)pertemuan 12 first person character...

23
Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi Multi Media Yogyakarta Tri Anggraeni, S.Kom., M.Sc. Referensi: mammothinteractive.com

Upload: others

Post on 16-Jul-2020

16 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Pertemuan 12First Person Character Sederhana (Lanjutan)

Mata Kuliah Logika GameProgram Studi Teknologi PermainanSekolah Tinggi Multi Media YogyakartaTri Anggraeni, S.Kom., M.Sc.

Referensi: mammothinteractive.com

Page 2: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Membuat enemy

• Tambahkan cube, rename jadi Enemy. Set:

• Tambahkan material, rename jadi EnemyMaterial. Ubah warnanya jadi merah. Drag ke cube Enemy.

• Klik objek Enemy, Add New Script, beri nama EnemyController.

• Buat objek Enemy menjadi prefab (drag ke panel Assets).

• Delete objek Enemy di Hierarchy.• Create Empty GameObject, rename jadi

GameSceneController.

Page 3: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

• Drag semua objek sehingga menjadi child GameSceneController.

• Klik objek GameSceneController, Add New Script, beri nama GameSceneController.

Page 4: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Skrip GameSceneController

• Buat akses ke prefab enemy dengan membuat objek:

• Buka Unity, tunggu sampai field Enemy Prefab muncul. Drag prefab Enemy dari panel Assets ke field Enemy Prefab sehingga :

Page 5: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Tambahi skrip GameSceneController sehingga prefab Enemy muncul ketika game mulaidijalankan Di function Start:

Klik Play mode. Tekan keyboard s agar FPS berjalan mundur & cube Enemy terlihat.

Page 6: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Membuat timer yang akan berjalan ke nol & kalau sudah nol: enemy muncul lagi

Klik mode Play. Diupdate/muncul tiap detik.

Page 7: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Pindahkan semua baris program di function Start untuk mengganti Debug.Log & memunculkan prefab Enemy setiap 1 detik

Page 8: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Hanya terlihat 1 Enemy.Karena posisinya masih diset sama:

enemyObject.transform.position =new Vector3(3, 1, 0);

Prefab Enemy muncul setiap detik.• Tekan keyboard s agar FPS berjalan

mundur & cube Enemy terlihat.

Klik mode Play.Cek panel Hierarchy:

Page 9: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Mengeset posisi enemyObject agar muncul diposisi yang berubah-ubah dengan jarak tertentu dari Player

Tambahkan sebelum function Start

Page 10: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Di function Update• Comment baris program yang mengeset

enemyObject muncul di posisi yang sama.

• Tambahkan:

// untuk mengotomatiskan perubahan

Page 11: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Klik mode Play

Prefab Enemy bermunculan di posisi yang berbeda-beda.

Klik Scene, klik 2x objek GameSceneController. Zoom in sampai terlihat seperti di samping.Prefab enemy muncul di

jarak 15 titik dari Player.

Page 12: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

• Posisi awal hero (FPS): (0, 1, 0).• Misal spawnAngle = 90 : cos 90 = 0; sin 90 = 1:

enemyObject.transform.position = new Vector3(hero.transform.position.x + Mathf.Cos(spawnAngle) * enemySpawnDistance,hero.transform.position.y,hero.transform.position.z + Mathf.Sin(spawnAngle) * enemySpawnDistance);

0 + Mathf.Cos(90) * 15,1,0 + Mathf.Sin(90) * 15

0 + 0 * 15,1,0 + 1 * 15

0,1,15

Page 13: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

enemyObject.transform.position =new Vector3(0, 1, 15 );Prefab Enemy yang posisinya mendekati (0, 1, 15):

Page 14: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Membuat Enemy mengejar Player

• Tambahkan di skrip EnemyController:

• Tambahkan di skrip GameSceneController di bawah setting posisi enemyObject:

• normalized: agar panjangnya menjadi 1.

Page 15: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Tambahkan di skrip EnemyController: di function Update:

• Klik mode Play.

Page 16: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Menabrak enemy

• Klik prefab Bullet. Add Component Rigidbody.• Centang Is Kinematic-nya.

• Klik prefab Enemy. Centang Is Trigger di component Box Colider-nya.

• Tambahkan di skrip EnemyController:

Page 17: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Klik mode Play

• Tercetak ketika FPS menabrak Enemy.

• Tercetak ketika Bullet menabrak Enemy.

Page 18: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Mendestroy Enemy & Bullet ketika bertabrakan

Tambahkan di bawah Debug.Log:

Klik mode Play.

Page 19: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Menampilkan skor• Tambahkan UI Text. Pastikan Canvas

berada di luar objek GameSceneController.

• Klik Text. Geser Text sehingga berada di kiri atas Canvas:

• Di Inspector: ubah warna Text menjadi putih.

• Skor muncul di kiri atas panel Game.

Page 20: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Membuat skor bertambah 100 ketika Enemy

• Di skrip GameSceneController, tambahkan:

• Di Unity: tunggu sampai field Info Text tampil.• Drag Text ke field Info Text:

Page 21: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Di skrip EnemyController:

• Tambahkan

• Di bawah GameObject.Destroy (col.gameObject);tambahkan:

Page 22: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Di skrip GameSceneController:

• Tambahkan:

• Di bawah baris program yang mengakses variabelchaseDirection, tambahkan:

Klik mode Play. Cek

ini tampil ketika Bullet mengenai Enemy.

Page 23: Pertemuan 12 First Person Character Sederhana (Lanjutan)Pertemuan 12 First Person Character Sederhana (Lanjutan) Mata Kuliah Logika Game Program Studi Teknologi Permainan Sekolah Tinggi

Lengkapi definisi function onDestroyed agar skor bertambah 100 ketika Bullet mengenai Enemy:

Cek di mode Play: