Duck Shooter dengan Unity part-9

Halo-halo,

Saatnya melanjutkan kembali duck-shooter kita, dan hari ini kita akan membuat sistem Pause. Okeh, yang pertama kamu lakukan adalah men-download assets yang sudah saya siapkan, kamu bisa download disini. (Tapi jika kamu punya assets yang lain kamu boleh menggunakanya)

Setelah selesai, letakan file tersebut kedalam folder assets/image kita. setelah itu buat gameobject baru dan beri nama pause, dan isi dengan sprite renderer, tapi jangan lupa posisi “order in layer”-nya di ubah. Setelah itu buat juga “PausePopup” dimana “PausePopup” akan tampil saat kita menekan tombol pause.

pauseButon

pause-box

Sekarang kita code dan masukan code ke dalam tombol pause.

using UnityEngine;
using System.Collections;

public class Pause : MonoBehaviour {

	public Camera mainCamera;
	public GameObject pauseObject;

	// Use this for initialization
	void Start () {
		//mengatur posisi screen space dan mengubahnya ke world space
		int widt = mainCamera.pixelWidth;
		int tinggi = mainCamera.pixelHeight;
		Vector3 posisiBaru = this.transform.position;
		posisiBaru = mainCamera.ScreenToWorldPoint (new Vector3 (widt-40, tinggi - 30, 10));
		this.transform.position = posisiBaru;
	}

	void OnMouseDown() {
		if (GlobalVariable.stateMachine != "play")return; // jika state machine bukan play, maka kode dibawah tidak dijalankan
		GlobalVariable.stateMachine = "pause";
		pauseObject.transform.position = new Vector3(-1.1f, 0.7f, 0); //menurunkan code posisi dari pausePopup
	}

	// Update is called once per frame
	void Update () {

	}
}


Jika sudah selesai masukan object2 tersebut. Kalian bisa mencoba untuk memastikan code itu berhasil.

Selanjutnya kita akan membuat code untuk button play, dimana saat StateMachine “pause”, dan kita klik button play, maka pemainan akan dilanjutkan kembali.

using UnityEngine;
using System.Collections;

public class PlayBtn : MonoBehaviour {

	public GameObject pauseObject;

	void OnMouseDown() {
		if (GlobalVariable.stateMachine != "pause")return;
		GlobalVariable.stateMachine = "play";
		pauseObject.transform.position = new Vector3(-1.1f, 10.7f, 0);
	}
}

Masukan code di atas di posisi pada gameobject button play. Jika sudah selesai semuanya, kita akan membuat New Scene untuk level main menu kita. Klik File > New Scene. Buatlah tampilan Main Menu sesuai dengan keingin kalian, tapi di pastikan ada button play dimana kita akan menampilkan game-area kita.

main-menu

Setelah itu kita akan membuat code untuk button play sehingga pada saat button play di klik, maka akan pindah ke scene game-area.

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement; // memangil Library SceneManager

public class playMainmenu : MonoBehaviour {

	void OnMouseDown() {
		SceneManager.LoadScene ("game-area"); //kamu tidak bisa menggunakan fungsi ini, sebelum kamu dipanggil pada line 3
	}
}

Selanjutnya kita buat code tambahan untuk pindah ke main menu, yang nantinya akan kita letakan pada button home yang ada di “PausePopup”

using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;

public class HomeBtn : MonoBehaviour {

	void OnMouseDown() {
		SceneManager.LoadScene ("main-menu");
	}
}

Oke jangan lupa masukan kodenya ke dalam HomeBtn yang ada di “PausePopup”, dan jangan lupa untuk menambahkan Scene tersebut pada “Build Settings”, setelah itu mencoba semuanya dari Main-Menu.

build-settings

Okey, kita sudahkan tutorial unutk hari ini, tapi kemaren saya memberikan quest untuk kalian.. apakah ada yang sudah bisa melakukannya ? Kalian bisa cek kode dibawah untuk penjelasanya

	public Sprite[] spriteNumber ; //array sprite untuk meletakan semua sprite angka 0 ~ 9
	public GameObject[] timerObject; // array Gameobject untuk meletakan satuan dan puluhan
	public float setTimer ;
	public GameObject timeOut;

	// Use this for initialization
	void Start () {

		checkWaktu (); // fungsi ini di panggil untuk mengecek waktu yang pertama kali di set
	}

	// Update is called once per frame
	void Update () {
		//... CODE yang sebelumnya

		checkWaktu (); //saya akan melakukan cekWaktu untuk memastikan waktu sprite tesebut selalu update
	}

	//fungsi cek waktu
	void checkWaktu(){
		int timing = (int)Mathf.Floor(setTimer); //membulatkan waktu dan mengubahnya menjadi int
		string stTiming = timing.ToString (); // int timing yang di atas di ubah menjadi string
		for (int i = 0; i < timerObject.Length; i++) {
			if (stTiming.Length < 2) { // mengecek string dari stTiming apakah kurang dari 2 (berarti satuan)
				if (timerObject [0].activeSelf) // jika timerobject pada posisi [0] aktif, maka lakukan perintah yang bawah
					timerObject [0].SetActive (false); // matikan timerobject array ke 0
				int nil = int.Parse (stTiming); // mengubah string menjadi int
				timerObject [1].GetComponent <SpriteRenderer> ().sprite = spriteNumber [nil]; // mengambil object pada array ke 1 dan mengubah spritenya menjadi sesuai dengan int tersebut
			} else if (setTimer > 0) { //jika waktu masih lebih besar dari 0
				string oneS = stTiming [i].ToString ();  //mengubah string dari posisi i 
				if (!timerObject [i].activeSelf) // jika timerObject ke i "tidak aktif", maka lakukan perintah yang dibawah
					timerObject [i].SetActive (true); //aktifkan object ke i
				int nil = int.Parse (oneS); //mengambil string dari oneS
				timerObject [i].GetComponent <SpriteRenderer> ().sprite = spriteNumber [nil]; //mengambil obeject pada array ke i dan mengubah spritenya menjadi sesuai dengan int tersebut
			}
		}
	}

selanjutnya saya menambahkan gameobject baru pada “Time” dan diberi nama “puuluhanTime” dan “satuanTime”, dan mengaturnya dalam inspectator.

settings-timer

Yup sudah selesai, okey sekarang saatnya menutup tutorial ini. Next saya akan membahas tentang sound dan itu adalah tutorial terakhir untuk duck shooter. Jika kalian ada pertanyaan atau masih bingung kalian bisa menanyakanya di kolom komentar di bawah.

see yaaa, and cheers

😀

 

NB : Ini adalah bagian dari tutorial Duck Shooter, jika kalian ada terlewat dari tutorial ini, silahkan klik part dibawah ini :
1. Part 1 (Membuat 2D game Duck Shooter dengan Unity)
2. Part 2 (Duck Shooter dengan Unity-part2)
3. Part 3 (Duck Shooter dengan Unity-part3)
4. Part 4 (Duck Shooter dengan Unity-part4)
5. Part 5 (Duck Shooter dengan Unity-part5)
6. Part 6 (Duck Shooter dengan Unity-part6)
7. Part 7 (Duck Shooter dengan Unity-part7)
8. Part 8 (Duck Shooter dengan Unity-part8)

Leave a Reply

Your email address will not be published. Required fields are marked *