FeaturedGame DevelopmentGame EngineUnity 3D

Workshop เขียนเกมแนว Temple Run ด้วย Unity 3D ตอนที่ 6

ตอนสุดท้ายของ Workshop การเขียนเกมบน Unity 3D แนวเกม Temple Run ซึ่งในบทเรียนนี้จะเป็นการเรียนรู้เกี่ยวกับการเปลี่ยน Scene และการใส่เสียง Audio ลงในเกมแบบ

บทเรียนก่อนหน้านี้ให้ศึกษาอย่างถี่ถ้วนก่อนจะจบบทเรียนนี้

ในบทเรียนนี้จะเป็นการพัฒนาต่อให้เกมนั้นเสร็จสมบูรณ์สำหรับ Game Play ทั้งหมด สิ่งที่ควรจะเพิ่มเติมนั่นคือเรื่องของ Audio หรือเสียงที่เราจะใช้สำหรับเกม เช่นเสียงกระโดด เสียงเอฟเฟคเมื่อเก็บเหรียญ เสียงเมื่อเราวิ่งชนศัตรู และ ดนตรีประกอบฉากครับ ดังนั้นให้เราไปหาเสียงมาใช้กันดีกว่า

เสียง Effect และดนตรีประกอบฉาก ผมหาจากเว็บไซต์เหล่านี้

เมื่อได้ไฟล์เสียงทั้งหมดมาแล้วให้เอาไปวางที่ Project Tab ส่วนของ Assets ได้เลยครับ

ไฟล์เสียงทั้งหมด
ไฟล์เสียงทั้งหมด

ให้เราไปที่ Hierarchy Tab สร้าง GameObject ใหม่ขึ้นมาเป็น Audio source ขึ้นมา 3 ตัวตั้งชื่อว่า COIN, JUMP, DAMAGE

unity-sound-2

ให้เราทำการเพิ่ม Param บน Game Object ทั้ง COIN, JUMP และ DAMAGE ให้ดูที่ Inspector ทีละตัว ลากไฟล์เสียงไปใส่บน Source ของ GameObject เหล่านั้นให้เรียบร้อย

public GameLogic control;

	CharacterController controller;
	bool isGrounded= false;
	public float PlayerSpeed = 6.0f;
	public float PlayerJumpSpeed = 8.0f;
	public float gravity = 20.0f;
	private Vector3 PlayerMoveDirection = Vector3.zero;

//เพิ่มตรงนี้
	public AudioSource getitemSound;
	public AudioSource jumpingSound;
	public AudioSource enemySound;

เลือก Play on Awake ออกครับ ทำทั้งหมดทั้ง COIN, JUMP และ DAMAGE ต่อจากนั้นกลับไปแก้ไข Player.cs โดยการคลิกตัวละครให้ใส่ Code ใหม่ตามนี้

โดยเรียกใช้ฟังก์ชันตอนกระโดดให้แทรคำสั่ง Play(); ส่วนนี้

if (Input.GetButton ("Jump")) { 
	animation.Stop("run");
	animation.Play("Attack");
	PlayerMoveDirection.y = PlayerJumpSpeed;  
         	//เพิ่ม
        jumpingSound.Play();
}

เรียกฟังก์ชัน เมื่อได้รับ Item แล้วมีเสียงดังนี้

if(other.gameObject.name == "Items(Clone)")
		{
			//Items
			control.GetItems();
			getitemSound.Play();
		}

เช่นกันเมื่อชนศัตรู

else if(other.gameObject.name == "Monster(Clone)")
		{
			//Monster
			control.CrashMonster();
			animation.Stop("run");
			animation.Play("Dead");
			enemySound.Play ();
		}

กลับไปที่ Inspector Window เราจะเห็นช่องให้ใส่ Parameter ดังนี้

unity-sound-4
ให้ทำการลาก GameObject ที่เป็น Audio Source ที่เราสร้างไว้ทั้งไปหมดไปใส่ครับ

ลากไปใส่
ลากไปใส่

ต่อมาคือ BG Music หรือเพลงประกอบฉาก ให้ไปที่ Main Camera ก่อนแล้วไปที่ Tool Bar เลือก Component -> Audio -> Audio Source

unity-sound-6

หลังจากนั้นลากเพลงไปวางที่ Audio Source เลยครับ และเลือก Play on Awake และ Loop ทันที

unity-sound-7

ทดสอบเกมก็จะเห็นว่าเราเล่นเกมได้ ปรกติพร้อม Music BG และ Sound Effect แล้ว

ต่อมาเราจะทำหน้า Title ของเกมครับ ให้ไปที่ File แล้ว Create New Scene ขึ้นมาชื่อว่า “start”

สร้าง Scene ใหม่
สร้าง Scene ใหม่

จัดตัวละคร และ Terrain สำหรับฉากของเราให้ลงตัว ปรับ Camera ให้เป็นการส่องไปข้างหน้าให้ดีครับ

unity-sound-9

หลังจากนั้นก็สร้าง GameObject ขึ้นมาใหม่

unity-sound-10

สร้าง Script CS ขึ้นมาว่า ClickStart เขียนคำสั่งดังนี้

public class ClickStart : MonoBehaviour {
	public GUISkin NormalSkin;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {

	}
	void OnGUI()
	{
		GUI.skin=NormalSkin;
		//Restart Game
		if (GUI.Button(new Rect(Screen.width/4+10, 
		                        Screen.height/4+Screen.height/10+50, 
		                        Screen.width/2-20, Screen.height/10), 
		               "START GAME")){
			Application.LoadLevel("game");
		}
		
		//Create List Menu
		if (GUI.Button(new Rect(Screen.width/4+10, 
		                        Screen.height/4+2*Screen.height/10+60, 
		                        Screen.width/2-20, Screen.height/10), 
		               "CREDIT")){
			//Application.LoadLevel(1);
		}
		
		//Exit
		if (GUI.Button(new Rect(Screen.width/4+10, 
			                        Screen.height/4+3*Screen.height/10+90, 
			                        Screen.width/2-20, Screen.height/10), 
			    "EXIT GAME")){
				Application.Quit();
		}
	}
}

จะเห็นว่าเป็น GUI ซะส่วนใหญ่ แต่จะมี คำสั่งการเปลี่ยน Scene อยู่นั่นคือ

Application.LoadLevel("game");

ให้ลองเอาไปใช้กับ Scene ของเกมนะครับ สุดท้ายก็ Main Camera ของ Scene Start ที่สร้างมาให้เราลองสร้าง Audio Source ไว้เป็นการเล่นเพลงของฉาก Title  เกมครับ

ทดลอง Run เกมดู เรียบร้อย

coverfg

ถือว่าบทความนี้เป็นการจบ Workshop เต็มรูปแบบจริงๆ ครับ สามารถเข้าไปเล่นกันได้ที่

https://www.daydev.com/demo/unity/

หรือดาวน์โหลด Project Source Code ได้ที่นี่ครับhttps://drive.google.com/folderview?id=0B1kwQ1abTIRrZTBMaS1CY2xVQWc&usp=sharing (58Mb)

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน