Anda di halaman 1dari 10

Tugas Kelompok Pemrograman Game

Anggota

: 1. ALLAN RENALDI S
2. SEPTIAN NUGRAHA

[K3513010]
[K3513000]

Video 6

1. membuat game objek kosong baru dengan perintah shift + command pada mac dan
shift+control+n pada windows.
2. membuat bentuk quad untuk menampilkan gambar yang nantinya dijadikan visual efek
seperti dalam pembuatan background dan rename menjadi vfx (jangan lupa reset
transform positionnya dan taro vfx ini di child dari bolt), agar the quad menghadap ke
pandangan kamera maka pada rotation x diberi nilai 90, untuk membuat material kali ini
tidak dengan cara mendrag text drawn ke quad melainkan dengan membuat dan
menetapkan material kita sendiri
3. Untuk menghilangkan background material, bisa dengan memilih mengatur properties
shader particle/add title bisa juga pengaturan yang lebih efesien dan ringan dengan
memilih mobile ->particle->additive hanya saja dengan pengaturan ini, maka pengaturan
tint colour kita akan hilang.
4. Shortcut buat liat documentation coding unity dengan (ctrl + )
5. Instantiate adalah cara yang digunakan untuk membuat clone dari objek game,cara
penulisan codenya adalah instantiate(gameobjek yang ingin diklone, vertical position,
quertination rotation)
6. gameobjek yang ingin diklone = memilih game objek yang akan dikloning
7. vertical position =menaruh posisi game objek
8. , quertination rotation = mengatur rotasi dari game objek
9. Selain itu dalam instantiate dapat ditambahkan transform parent agar memasukan
pengaturan transform parent keobjek baru
10. Dalam game ini vertical dan quertinationnya digantikan oleh shot spawn (sebelumnya
terlebih dahulu dibuat variable public transform dengan nama shotspawn
11. Rigidbody velocity=transform.Forward=speed
Maksud dari koding tersebut artinya object akan bergerak lurus maju.

Video 7
Meluncurkan objek (peluru) dari pesawat yang dikontrol oleh player

Menembakkan Tembakan (Shot)

Selanjutnya, setelah membuat shot atau tembakan, maka yang perlu dilakukan adalah
mengatur penembakan dari tembakan tersebut.
Instantiate adalah cara yang digunakan untuk membuat clone(kembaran) dari objek game
Cara penulisan coding: instantiate (game objek yang ingin diclone, vertical position,
quertination rotation)
Keterangan:
Game objek yang ingin diklone : memilih game objek yang akan dikloning
Vertical position: menaruh posisi game objek
Quertination rotation: mengatur rotasi game objek

Pada instantiate dapat ditambahkan transform parent agar kita dapat memasukan
pengaturan transform parent ke objek yang baru.
Buatlah variable public transform dengan nama shotspawn. Pada game ini vertical
position dan quertinationnya digantikan oleh shot spawn.
Script untuk mengatur Tembakan:

public GameObject shot;


public Transform shotSpawn;
public float fireRate;
private float nextFire;
void Update ()
{
if (Input.GetButton("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
}
}

Untuk menembakkan senjata dan membatasi tembakan menggunakan : Input.GetButton


input.GetButton("true") && Time.time (jarak tembakan selanjutnya)

Untuk waktu berapa lama kita harus menunggu antara tembakan satu dengan tembakan
berikutnya menggunakan: public float fireRate;
Dalam game kita bisa menembakkan tembakan selanjutnya menggunakan: nextFire

Membutuhkan as game object untuk mengingat bahwa kita sedang menginisiasi basic object
sederhana tanpa menggunkan kode

Video 8
Boundari
Fungsi -> menghapus objek ketika meninggalkan area game (untuk menghemat
memori)
Studi kasus space -> peluru yang di tembakkan
Objek yang digunakan -> box (cube ) Boundary
Langkah-langkah :
1. Buat objek cube , rename boundary (lokasi didalam pesawat)
2. Buat boundary cube menutupi seluruh area game , posisi kamera dari
atas supaya kelihatan areanya
3. Kasih box collider
4. Is triger di centang (v)
5. Mesh renderet tidak di centang
6. Membuat scrip destroy by boundary
7. Buka scripnya
Public class
{
Void OnTrianggerExit (Collider Other){
Destroy(Other.gameObject);
}
}
Jadi pesawat ada di dalam boundary , kalua pesawat menembak posisi peluru akan
ada di dalam boundary itu , kalua peluru sudah di tembakkan nanti objeknya di
destroy akan dihapus.

Video 9
Creating hazard (membuat bahaya atau rintangan meteor)
Fungsi -> untuk membuat game lebih menantang dengan menambahkan rintangan
berupa meteor
Objek yang digunakan -> meteor asset. (sudah ada di asset)
Langkah langkah :
1.
2.
3.
4.

Tambahkan meteor asset 1 drag ke history asteroid parend


Reset posisi
Select asteroid parent hierarchy
Pada rigidbody un centang use gravity (supaya tidak jatuh disaat di jalankan )

5. Add component capsul collider atur radius sesuai benda meteor tersebut
(shift + q = untuk menampilkan point line untuk memperbesar kecilkan
grenposisi collider ) supaya bisa diperbesar kecilkan pakai mouse
6. Capsul collider sudah selesai

Posisi hierarchy asteroid (parent) masih terselect


Membuat script random rotator supaya meteornya berotasi tetapi arahnya
random, berikut scripnya
Public clas random rotator
{

public fload tumble; (jungkirbalik, gulingguling)


Void start()
{

rigitbody.angularvelocity = Random.insideunnit sphere * tumble;

}
}
Set tumble ke 5
Set angular drag 0 -> supaya jalan terus tidak berhenti rotasinya
Membuat script destroy by contact . // untuk mengarah waktu pas nabrak objek
Script DestroyByContact
{

void OnTriggerEnter (collider other)


If (other.tag ==boundary)
{return
}
Destroy (other.gameObject); // menghapus yang menabrak
Destroy(gameObject); // untuk menghapus objek itu sendiri

}
Video 10
Exploision (ledakan)
Fungsi = untuk membuat efek ledakan ketika objek bertabrakan (peluru dengan
meteor maupun pesawat dengan meteor)
Buka script Destroy by countact // membuat ledakan di meteornya
{
Public game object explosion; // ledakan biasa

Public GameObject playerExplosion ; // ledakan + api (pesawat ketabrak meteor)


Void OnTriggerEnter(collider other)
{ if (other.tag == Boundary)
{ return;
}
Instantiase (explosion, transform,position,transform,rotation)
If(other.tag == player)
Instantiase (playerExposion,oher, transform.position,other.transform.rotation)
}
Destroy (other.gameObjeck);
Destroy (gameObject);
}
}
Drag prefabs ledakan (ada di asset prefab -> explosion di masing-masing field script
Destroy by Contact)
Buat asteroidnya bergerak kea rah pesaat (bawah)
-

Drag script mover ke arah asteroid

membuat asteroid menjadi prefabs


-

Select asteroid
Drag ke projerct -> prefebs

Dan selesa

Video 11
Space Shooter
Untuk membuat rintangan/musuh berputar dan muncul secara acak/random
Untuk langkah langkahnya sebagai berikut :
-

Membuat game object baru dan mengganti nama game menjadi game controller
Mengatur ulang transformasinya
game controller->tag game controller
add component->new script

public hazard
-void start: script paling awal yang dijalankan setelah program game dijalankan

panggil spawnwaves di dalam start


-void spawnwaves
-spawnwaves to instantiate our hazard
-instantiate memiliki 3 parameter(object,position,rotation)
-position memiliki 3 nilai, "new vector3"
-rotation memiliki nilai quaternion, "quaternion spawnrotation"
-hazard adalah public variabel kita bisa mengaturnya langsung di dalam inspector
-asteroid preferb drag to hazard variable component
-buat variabel spawnvalues untuk menentukan nilai x y z pada posisi dimana hazard
akandiletakkan
(tidak diletakkan langsung pada spawnposition karena kita nanti akan mengacak nilai x pada
object hazard atau asteroidnya)
-quaternion spawnrotation = quaternion_identity
Script lengkapnya sebagai berikut
Public GameObject hazard;
Public vector3 spawnvalues;
Void Start()
{
Spawnwaits();
}
Void Spawnwaits()
{
Vector3 spawnPosition = new vector3 (Random.Range(spawnvalues.x, spawnvalues.x), spawnvalues.y,
spawnvalues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate(hazard, spawnPosition, spawnRotaion);
}

Video 12.
make wave asteroid object

- Pada video ini membahas tentang memperbanyak Asteroid yang bergerak dengan posisi
acak.bukan berarti meng-copy kode untuk memunculkan objek menjadi banyak , itu cara yang
sangat buruk
-kita letakkan kode didalam loop, jadi kode akan dijalankan terus jika terjadi didalam loop
(perulangan)
-for loop
for loop terlihat seperti function yang dilengkapi dengan parameter, parameter dalam function
dipisahkan dengan koma
tapi for loop adalah statement yang dipisahkan dengan semikolon
dalam for loop kita perlu inisialisasi counter, show the condition or state how long you want to
stay in a loop, and then incremental counter
-buat variabel spawnwait untuk menentukan jarak waktu keluar asteroid dari asteroid yang
sebelumnya(agar tidak muncul bersamaan)
-setelah kita membuat variabel kita isikan kodenya di dalam loop, ini benar tapi tidak bekerja
pada koding berbahasa C#
untuk bahasa C# perlu 'coroutine'
-penulisan kode coroutine:

public float spawnWait;


public float startWait;
public float waveWait;

void Start ()
{
StartCoroutine (SpawnWaves ());
}

IEnumerator SpawnWaves ()
{

yield return new WaitForSeconds (startWait);


while (true)
{
for (int i = 0; i < hazardCount; i++)
{
Vector3 spawnPosition = new Vector3 (Random.Range (-spawnValues.x,
spawnValues.x), spawnValues.y, spawnValues.z);
Quaternion spawnRotation = Quaternion.identity;
Instantiate (hazard, spawnPosition, spawnRotation);
yield return new WaitForSeconds (spawnWait);
}
yield return new WaitForSeconds (waveWait);
}
}

-untuk membuat coroutine berjalan terus gunakan fungsi while loop, dan ini akan menjalankan
secara terus-menerus tak berbatas
-setelah asteroid hancur masih ada "explotion clone object" yang tak mau hilang
-ada 2 cara untuk menghilangkannya pertama jika object tersebut keluar dari boundary trigger
box dan kedua menggunakan context
disini kita akan membuat "explotion clone object" menghilang dengan batas waktu
-buat file script baru 'destroybytime'
-isi script destroybytime:

using UnityEngine;
using System.Collections;

public class DestroyByTime : MonoBehaviour

{
public float lifetime;

void Start ()
{
Destroy (gameObject, lifetime);
}
}

-pada preferb explotion object add component script destroybytime isikan lifetime '2'

Video 13
o
o
o

o
o
o

o
o

Pada video ini membahas tentang penambahan audio,efek suara dan musik latar belakang
pada permainan.
Untuk menambahkan efek suara pada explosion tertentu, maka :
Pilih Assets -> Prefabs -> Explosions -> Memilih Explosion (klik)
Drag file audio efek suara ke Inspector Explosion yang terpilih.
Supaya audio efek suara dapat dijalankan secara otomatis tanpa menulis script maka beri
tanda checklist pada Play On Awake (Inspector Objek Explosion yang terpilih -> Audio
Source).
Bisa juga dengan cara drag file audio ke objek yang berada di folder Prefabs secara
langsung.
Untuk menjalankan file audio pada saat keadaan tertentu, maka:
Drag file audio ke scene Hierarchy -> Player
Hilangkan tanda checklist pada Play On Awake (Inspector Player -> Audio Source -> Play
on Awake).
Menambahkan potongan script untuk menjalankan file audio pada saat keadaan tertentu ke
Script PlayerController dan meletakkan potongan script tersebut di bagian fungsi void
Update(), tepatnya di dalam If ketika pesawat mengeluarkan peluru. Isi potongan script
yang ditambahkan pada Script PlayerControllertersebut adalah audio.Play();
Untuk menambahkan musik latar belakang, maka:
Drag file musik latar belakang ke scene Hierarchy -> GameController.
Supaya musik latar belakang dapat dijalankan secara otomatis maka beri tanda checklist
pada Play On Awake (Inspector GameController -> Audio Source).

o Supaya musik latar belakang dapat dijalankan secara berulang-ulang, maka beri tanda
checklist pada Loop (Inspector GameController -> Audio Source).
- Supaya volume suara musik dan efek suara seimbang, maka mengatur properties volume
audio menjadi 0,5 baik pada file audio efek suara maupun musik latar belakang.

Video 14
Video 15
(Ending the Game)
- Menambahkan variabel gameover dan restart
- Menginisiasi gameover = false dan restart = false pada method start.
- Menambahkan method gameOver seperti dibawah ini :
public void GameOver()
{
gameOverText.text = Game Over;
gameOver = true;
}