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

Post on 16-Jul-2020

16 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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.

• Drag semua objek sehingga menjadi child GameSceneController.

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

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 :

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.

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

Klik mode Play. Diupdate/muncul tiap detik.

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

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:

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

Tambahkan sebelum function Start

Di function Update• Comment baris program yang mengeset

enemyObject muncul di posisi yang sama.

• Tambahkan:

// untuk mengotomatiskan perubahan

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.

• 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

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

Membuat Enemy mengejar Player

• Tambahkan di skrip EnemyController:

• Tambahkan di skrip GameSceneController di bawah setting posisi enemyObject:

• normalized: agar panjangnya menjadi 1.

Tambahkan di skrip EnemyController: di function Update:

• Klik mode Play.

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:

Klik mode Play

• Tercetak ketika FPS menabrak Enemy.

• Tercetak ketika Bullet menabrak Enemy.

Mendestroy Enemy & Bullet ketika bertabrakan

Tambahkan di bawah Debug.Log:

Klik mode Play.

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.

Membuat skor bertambah 100 ketika Enemy

• Di skrip GameSceneController, tambahkan:

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

Di skrip EnemyController:

• Tambahkan

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

Di skrip GameSceneController:

• Tambahkan:

• Di bawah baris program yang mengakses variabelchaseDirection, tambahkan:

Klik mode Play. Cek

ini tampil ketika Bullet mengenai Enemy.

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

Cek di mode Play:

top related