Duck Shooter dengan Unity-part4

Halo 🙂

Saya balik lagi, dan masih melanjutkan duck shooter sebelumnya, seperti yang saya janjikan kemarin. Hari ini saya akan membuat bebek itu bergerak. Sekarang yang pertama kita lakukan yaitu membuat script untuk menjalankan bebeknya. Untuk mudahnya mengingatnya kita beri nama “DuckBehaviour”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
using System.Collections;

public class DuckBehaviour : MonoBehaviour {

// Update is called once per frame
void Update () {
Vector3 moveDuck = this.transform.position; // buat holder variable untuk posisi perpindahan bebek
moveDuck.x += 1 * Time.deltaTime; // setiap 1 detik object akan bertambah kesisi X sebesar 1 point
if(this.transform.position.x > 10){// jika posisi bebek sudah di ujung kanan kita akan membuatnya kembali ke posisi kiri
moveDuck.x = -12;
}
this.transform.position = moveDuck;
}
}

Setelah itu masukan script tersebut kedalam prefebs “bebekobject”. dan kita testing untuk memastikan semuanya berjalan dengan lancar.

Sekarang semua bebek sudah berjalan dengan benar, selanjutnya supaya tidak membosankan kita akan membuat randomize tampilan bebek agar tidak hanya menampilkan bebek kuning saja, tapi kita juga bisa menampilkan bebek dengan warna yang berbeda. Buka kembali script “DuckBehaviour”, dan tambahkan beberapa line script, kita mulai dibawah line ke 6.

1
2
3
4
5
6
7
8
public Sprite[] gambarBebek;
public GameObject childObject;

// Use this for initialization
void Start () {
int rand = Random.Range (0, gambarBebek.Length);
childObject.GetComponent<SpriteRenderer>().sprite = gambarBebek[rand];
}

Setelah selesai kita, jangan lupa masukan gambar bebek tambahan yang ada, dan childObject dengan child dari prefebs “bebekObject” yaitu “bebek”.

randomImageAndmovement

Setelah selesai, kita coba kembali game kita apakah game tersebut bisa berjalan (memastikan script yang di buat tidak ada yang salah).

Sebelum saya tutup tutorial ini, apakah kalian kemaren telah berhasil menampilkan object bebek pada posisi bawah? jika belum berhasil tambahkan script dibawah ini pada “Allduck.cs”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Start () {
//... script yang lama
for(int i = 0; i<11; i++){
Vector3 firstPos = new Vector3 (-10f, -3.55f, 0);
firstPos.x = -10 + 2*i; // Angka 1.31 saya dapat dari experiment
GameObject duckArrage = Instantiate (duck);
duckArrage.transform.position = firstPos;
duckArrage.transform.parent = this.transform;
duckArrage.GetComponent <SpriteRenderer>().sortingOrder = 4;

Transform childDuck = duckArrage.transform.GetChild (0);
childDuck.GetComponent<SpriteRenderer>().sortingOrder = 5;
}
}

Script di atas memang tidak beda dengan script yang awalnya kita hanya mengubah posisi Y dan mengatur sortingOdrder Layer sehingga proses renderer bejalan sesuai dengan keinginan kita.

Yup mungkin hanya itu sampai pelajaran sampai hari ini. Dari script di atas saya harap kalian bisa sedikit memahami :

  1. bagaimana menjalankan sebuah object.
  2. bagaimana menampilkan randomize gambar, ataupun memangil randomize number.
  3. mengembalikan posisi jika posisi awal jika posisi bebek terlalu jauh dari layar render

Okey, next tutorial kita akan membuat bebek itu bisa di klik, dan pada saat tertembak, kita akan membuat bebek berputar. Anyway kali ini quest buat kalian adalah bisakah membuat para bebek yang di bawah bejalan berbeda? yang atas kekiri dan yang bawah kenanan ataupun sebaliknya?

See you 😀