Duck Shooter dengan Unity part-7

Halo,

Masih dengan saya, dan masih melanjutkan kembali “duck shooter”, dan untuk tutorial hari ini adalah melakukan reload, sebelum memulainya, apakah kalian sudah berhasil menyelesaikan quest kemarin ? Jika belum saatnya untuk pembahasan quest yang kemarin. Karena hal ini berkaitan dengan tutorial hari ini.

Oke sekarang kita buat Gameobject kosong beri nama “peluru” dan masukan 6 child didalamnya peluru1~peluru6, serta masukan sprite render untuk menampilkan gambar

pengaturan-peluru

Setelah itu selesai, kita akan membuat script dengan nama “PeluruUI.cs”.

using UnityEngine;
using System.Collections;

public class PeluruUI : MonoBehaviour {

	public Camera mainCamera;
	public Sprite spritePeluruIsi;
	public Sprite spritePeluruKosong;
	public GameObject[] objectPeluru;

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

	// Update is called once per frame
	void Update () {
		//mengatur tembakan setiap tembakan yang keluar akan mengurangi amunsi
		if(Input.GetMouseButtonDown (0)){
			GlobalVariable.amunisi -= 1;

			//code di bawah ini kita buat untuk mengetahui saat mouse menyentuh gameobject "reload" maka akan memanggil fungsi reload
			Vector2 worldPoint = mainCamera.ScreenToWorldPoint (Input.mousePosition);
			RaycastHit2D hit = Physics2D.Raycast (worldPoint, Vector2.zero);
			if(hit.collider != null){ // dilakukan pengecheckan apakah raycast bersentuhan dengan object collider
				if(hit.collider.name == "reload"){
					ReloadPeluru ();
				}
			}
			if(GlobalVariable.amunisi < 0)return;
			if(GlobalVariable.amunisi<6){
				objectPeluru [GlobalVariable.amunisi].GetComponent <SpriteRenderer> ().sprite = spritePeluruKosong;
			}

		}
	}

	void ReloadPeluru(){
		GlobalVariable.amunisi = 6;
		//Debug.Log ("isi");
		foreach(GameObject gambarPeluru in objectPeluru){
			gambarPeluru.GetComponent <SpriteRenderer>().sprite = spritePeluruIsi;
		}
	}
}

Okey kita lanjut dengan masukan script kedalam gameobject “peluru” dan sekaligus mengisi seluruh object dari script tersebut

setting-perluru

Jika sudah saatnya kita membuat button baru untuk melakukan reload. Pertama kita buat object baru dengan nama “reload” (hal ini berkaitan dengan script yang sudah kita buat), dan berikan sprite reload, selain itu masukan juga box collider. Kalian bisa membuat sprite tersebut ataupun mendownloadnya disini.

gambar-reload

Setelah selesai, dilanjutkan dengan membuat script “Reload.cs” untuk mengatur posisi.

using UnityEngine;
using System.Collections;

public class Reload : MonoBehaviour {

	public Camera mainCamera;

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

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

	}
}

Okeh akhirnya selesai juga tutorial hari ini, dan pada tutorial hari ini kalian bisa mempelajari

“Mengetahui bagaimana caranya sebuah titik bisa mengenai object lain dengan raycasthit”

Bisa di ibaratkan klo raycast adalah senter laser yang di tembakan dari titik tertentu menuju target, dan raycasthit adalah object yang tersentuh dengan laser tersebut saat laser ditembakan.

Sebelum saya tutup pada tutorial kemarin, saya melakukan kesalahan yaitu lupa mengembalikan posisi bebek agar kembali seperti semua(posisi berputar). Sekarang kalian “DuckBehaviour.cs” dan tambahkan script dibawah ini

void randomizeGambarBebek(){
	int rand = Random.Range (0, gambarBebek.Length);
	childObject.GetComponent <SpriteRenderer>().sprite = gambarBebek[rand];
	//tambahkan script yang ini
	childObject.transform.localScale = new Vector3 (1, 1, 1);
}

Untuk next tutorial kita akan membuat batasan waktu (jadi permainan hanya berlangsung sebentar) dan membuat pause.

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)

Leave a Reply

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