1. เตรียมโปรเจ็กส์
2. กดปุ่ม R แล้วโหลด Scene อื่น
3. เมื่อลูกบาศก์ตกพื้น ให้โหลด Scene อื่น
4. การโหลดซีนสลับกันไปมา
1. เตรียมโปรเจ็กส์
สร้างโปรเจ็กส์
- สร้างโปรเจ็กส์ชื่อ Load Scene
สร้างโฟลเดอร์
- สร้างโฟลเดอร์ชื่อ Scene
- สร้างโฟลเดอร์ชื่อ Material
- สร้างโฟลเดอร์ชื่อ Script
สร้าง Scene
- ที่โฟลเดอร์ Scene ให้สร้าง Scene ขึ้นมา 2 Scene ชื่อ Scene1 และ Scene2
2. กดปุ่ม R แล้วโหลด Scene อื่น
ไอเดีย
- มี Scene อยู่ 2 Scene ชื่อ Scene1 และ Scene2
- ที่ Scene1 กำหนดให้มี
- พื้นสีเขียวชื่อ Plane1
- เมื่อกดปุ่ม R บนคีย์บอร์ดจะโหลด Scene2 ขึ้นมา
- ที่ Scene2 กำหนดให้มี
- พื้นสีแดงชื่อ Plane2
ที่ Scene1 ให้สร้าง Plane1
- Create > 3D Object > Plane
- Rename to Plane1
- Reset Transfrom
- ที่ โฟลเดอร์ Material สร้าง Material ชื่อ Plane1
- ที่ Material > Plane1 กำหนดให้ Color = 120, 180, 60
- ผูก Material > Plane1 กับ Plane1
ที่ Scene1 > Main Camera ให้ปรับมุมกล้อง
- ที่ Main Camera ให้
- Position = 0, 10, -10
- Rotation = 40, 0, 0
- Projection = Perspective
ที่ Scene2 ให้สร้าง Plane2
- Create > 3D Object > Plane
- Rename to Plane2
- Reset Transfrom
- ที่ โฟลเดอร์ Material สร้าง Material ชื่อ Plane2
- ที่ Material > Plane2 กำหนดให้ Color = 170, 30, 30
- ผูก Material > Plane2 กับ Plane2
ที่ Scene2 > Main Camera ให้ปรับมุมกล้อง
- ที่ Main Camera ให้
- Position = 0, 10, -10
- Rotation = 40, 0, 0
- Projection = Perspective
ที่ Scene1 สร้าง GameController
- Create > Empty
- Rename to GameController
- ให้ Tag = GameController
- Add Component > New Script ชื่อ GameController
- ลาก GameController ไปไว้ในโฟลเดอร์ Script
- แก้ไขโค๊ด GameController
สคริป GameController
using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; public class GameController : MonoBehaviour { void Update() { if (Input.GetKey(KeyCode.R)) { SceneManager.LoadScene(1); //SceneManager.LoadScene( // SceneManager.GetActiveScene().buildIndex); //SceneManager.LoadScene("Jack"); } } }
- ถ้ารันแล้วกดปุ่ม R จะยังไม่เห็นการเปลี่ยน Scene
- ต้องไปที่ File > Build Settings…
- แล้วเลือก Scene1 และ Scene2 เข้ามาใน Scenes In Build
- สังเกตเลข 0 ที่ท้าย Scene1 และเลข 1 ที่ท้าย Scene2
- นี่คือหมายเลข Scene ที่เราอ้างในสคริป
- ลองรันอีกครั้ง คราวนี้เมื่อกดปุ่ม R ก็จะเปลี่ยน Scene ละ
- สังเกตได้จากสีของพื้นที่เปลี่ยนไป
3. เมื่อลูกบาศก์ตกพื้น ให้โหลด Scene อื่น
ไอเดีย
- มี Scene อยู่ 2 Scene ชื่อ Scene1 และ Scene2
- ที่ Scene1 กำหนดให้มี
- พื้นสีเขียวชื่อ Plane1
- ลูกบาศก์ชื่อ Cube1
- เมื่อ Cube1 ตกลงมากระทบพื้นสีเขียวจะโหลด Scene2 ขึ้นมา
- ที่ Scene2 กำหนดให้มี
- พื้นสีแดงชื่อ Plane2
ที่ Scene1 ให้สร้าง Cube1
- Create > 3D Object > Cube
- Rename to Cube1
- Position = 0, 4, 0
- ที่ Box Collider ให้เลือก Is Trigger
- Add Component Physic > Rigidbody
ที่ Scene1 > Cube1 สร้างสคริป LoadScene
- Add Component > New Script ชื่อ LoadScene
- ย้าย LoadScene ไปไว้ที่ โฟลเดอร์ Script
- แก้ไขสคริป LoadScene
สคริป LoadScene
using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; public class LoadScene : MonoBehaviour { void OnTriggerEnter(Collider other) { SceneManager.LoadScene(1); } }
- ลองรันเมื่อลูกบาศก์ตกลงพื้น ก็จะเปลี่ยน Scene ละ
- สังเกตได้จากสีของพื้นที่เปลี่ยนไป
4. การโหลดซีนสลับกันไปมา
ที่ Scene2 ให้สร้าง Cube2
- Create > 3D Object > Cube
- Rename to Cube2
- Position = 0, 4, 0
- ที่ Box Collider ให้เลือก Is Trigger
- Add Component Physic > Rigidbody
- ใส่สคริป LoadScene
- แก้ไขสคริป LoadScene
สคริป LoadScene
using UnityEngine; using UnityEngine.SceneManagement; using System.Collections; public class LoadScene : MonoBehaviour { void OnTriggerEnter(Collider other) { if (SceneManager.GetActiveScene().buildIndex == 0) { SceneManager.LoadScene(1); } else { SceneManager.LoadScene(0); } //Debug.Log("OK"); } }
- ลองรันดู จะเห็นว่าเมื่อลูกบาศก์ตกลงพื้น ก็จะเปลี่ยน Scene สลับกันไปมาระหว่าง Scene1 และ Scene2
- สังเกตได้จากสีของพื้นที่เปลี่ยนไป