สอน Unity3D C# ตอน 6 วิธีเปลี่ยน scene ด้วย SceneManager

สอน Unity3D C# ตอน 6 วิธีเปลี่ยน scene ด้วย SceneManager



สอน Unity3D C# ตอน 6 วิธีเปลี่ยน scene ด้วย SceneManager
ในการเริ่มต้นทำแอพพลิเคชั่น อีกหนึ่ง action ที่จำเป็นและสำคัญมาก ๆ คือการเปลี่ยนหน้าของแอพพลิเคชั่น จากหน้าหนึ่งไปยังอีกหน้าหนึ่ง สำหรับการเขียนโปรแกรมด้วยโปรแกรม Unity3d ภาษา C# เราจะเรียกแต่ละหน้าว่า scene



ในการจัดการกับแต่ละ scene เราจะใช้คลาสของ unity3d ที่มีให้ใช้งานอยู่แล้วชื่อว่า SceneManager การเปลี่ยนซีนหรือการเปลี่ยนหน้าเพจของแอพพลิเคชั่นนั้นเป็น action พื้นฐานที่สำคัญ ที่ทุกแอพพลิเคชั่นจำเป็นจะต้องมี ลองมาดูกันครับว่าสำหรับ Unity3D แล้วจะมีระบบจัดการกับการเปลี่ยนหน้าอย่างไร

สร้าง Home Scene สำหรับคลิกแล้วไปที่ About Scene

  • สร้าง scene ตั้งชื่อว่า “home” ภายใน scene ให้มี UI Button ตั้งชื่อว่า btnAbout สำหรับคลิกไปเพื่อเปลี่ยนซีน
  • สร้าง Empty Object ตั้งชื่อว่า HomeController สำหรับจัดการกับ home scene
  • สร้างไฟล์ C# Script ตั้งชื่อว่า HomeController.cs ลากไฟล์ไปวางไว้ใน HomController และเขียนคำสั่งดังนี้
  • HomeController.cs ใน home scene

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI; 
    using UnityEngine.SceneManagement;
    
    public class HomeController : MonoBehaviour {
    
    	public Button btnAbout;
    
    	void Start () {
    		btnAbout.onClick.AddListener (delegate() {
    			SceneManager.LoadScene("about"); // คลิกแล้วเปลี่ยนไปหน้า about
    		});
    	}
    	void Update () {
    		
    	}
    }
  • จากนั้นให้ไปที่ unity3d workspace ลากปุ่ม btnAbout มาวางไว้ในช่อง inspector ของ HomeController.cs


สร้าง About Scene สำหรับคลิกแล้วไปที่ Home Scene

  • สร้าง scene ตั้งชื่อว่า “about” ภายใน scene ให้มี UI Button ตั้งชื่อว่า btnHome สำหรับคลิกไปเพื่อเปลี่ยนซีน
  • สร้าง Empty Object ตั้งชื่อว่า AboutController สำหรับจัดการกับ about scene
  • สร้างไฟล์ C# Script ตั้งชื่อว่า AboutController.cs ลากไฟล์ไปวางไว้ใน AboutController และเขียนคำสั่งดังนี้
  • AboutController.cs ใน about scene

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI; 
    using UnityEngine.SceneManagement;
    
    public class AboutController : MonoBehaviour {
    
    	public Button btnHome;
    
    	void Start () {
    		btnHome.onClick.AddListener (delegate() {
    			SceneManager.LoadScene("home"); // คลิกแล้วเปลี่ยนไปหน้า home
    		});
    	}
    	void Update () {
    		
    	}
    }
  • จากนั้นให้ไปที่ unity3d workspace ลากปุ่ม btnHome มาวางไว้ในช่อง inspector ของ AboutController.cs


เริ่มต้นตนทดสอบการเปลี่ยน scene

  • ไปที่เมนู File -> Build Setting จากนั้นลากทั้ง 2 ซีน คือ home และ about มาวางไว้ในหน้า “Scene in build” กดปุ่ม Play เพื่อทดสอบการทำงาน


  • สอน unity3d วิธีเปลี่ยน scene