สร้างเกม - scene to scene (Unity3D Thailand)
สอน Unity3D จัดให้ 2 วิธี การส่งค่าข้ามซีน - สำหรับบทความนี้มาดูการส่งค่าข้ามซีน ซึ้งผมก็นำตัวอย่างมาไว้ให้ดูกัน 2 วิธีเลยนะครับ ซึ้งวิธีแรกคือการใช้คำสั่ง PlayerPrefs ในการกำหนดค่าโดยใช้ Set และวิธีการเรียกใช้โดยใช้ Get ครับ
คลิปไม่ขึ้นไปตามลิ้งครับ >> http://youtu.be/bDbCGNeVERA
ในซีนแรกจะเห็นว่าผมใช้ PlayerPrefs.SetString("myName","david"); ในการกำหนดค่า
คำสั่งที่ใช้บ่อยๆของ PlayerPrefs มีดังนี้
- PlayerPrefs.DeleteAll();
- PlayerPrefs.DeleteKey("key");
- PlayerPrefs.SetFloat("key", 0.0f);
- PlayerPrefs.SetInt("key", 10);
- PlayerPrefs.SetString("key","value");
- PlayerPrefs.GetFloat("key");
- PlayerPrefs.GetInt("key");
- PlayerPrefs.GetString("key");
ส่วนวิธีที่สองในการส่งค่าข้ามซีน โดยใช้เทคนิค DontDestroyOnLoad ก็ทำตามคลิปได้เลย
ซึ้งต้องขอแนะนำให้ใช้วิธีในหน้าซีนแรก ที่เป็นซีนโหลดเกมก่อนที่จะไปหน้าเมนู หรือเป็นซีนที่โหลดทีเดียวครับ เพื่อหลีกเหลี่ยงการสร้าง Object นั้นซ้ำๆเวลากลับมาซีนของตัวเองครับ
ซึ้งวิธีนี้ก็เป็นเทคนิคการใช้คำสั่ง
GameObject.Find("name object").GetComponent<sciptObject>().myValiable
เพื่อเรียกใช้ค่าตัวแปรที่อยู่ ใน object ที่เราระบุ พร้อม script ที่เราระบุด้วยครับ
ก็หวังอย่างยิ่งว่าบทความนี้จะประโยชน์กับทุกท่านครับ
คลิปไม่ขึ้นไปตามลิ้งครับ >> http://youtu.be/bDbCGNeVERA
คำสั่งใน scene ที่ 1 |
ก่อนที่จะทำการเปลี่ยนซีนไปยังซีนที่ระบุไว้
จากนั้นในฟังชั่น Start() ของซีนที่สอง ให้ Debug เพื่อที่จะดูค่า myName โดยใช้คำสั่ง
คำสั่งใน scene ที่ 2 |
PlayerPrefs.GetString("myName");
จากนั้นก็ใช้คำสั่ง PlayerPrefs.DeleteKey("myName"); เพื่อลบความจำของ key นั้นทิ้งไป
คำสั่งที่ใช้บ่อยๆของ PlayerPrefs มีดังนี้
- PlayerPrefs.DeleteAll();
- PlayerPrefs.DeleteKey("key");
- PlayerPrefs.SetFloat("key", 0.0f);
- PlayerPrefs.SetInt("key", 10);
- PlayerPrefs.SetString("key","value");
- PlayerPrefs.GetFloat("key");
- PlayerPrefs.GetInt("key");
- PlayerPrefs.GetString("key");
ส่วนวิธีที่สองในการส่งค่าข้ามซีน โดยใช้เทคนิค DontDestroyOnLoad ก็ทำตามคลิปได้เลย
ซึ้งต้องขอแนะนำให้ใช้วิธีในหน้าซีนแรก ที่เป็นซีนโหลดเกมก่อนที่จะไปหน้าเมนู หรือเป็นซีนที่โหลดทีเดียวครับ เพื่อหลีกเหลี่ยงการสร้าง Object นั้นซ้ำๆเวลากลับมาซีนของตัวเองครับ
ซึ้งวิธีนี้ก็เป็นเทคนิคการใช้คำสั่ง
GameObject.Find("name object").GetComponent<sciptObject>().myValiable
เพื่อเรียกใช้ค่าตัวแปรที่อยู่ ใน object ที่เราระบุ พร้อม script ที่เราระบุด้วยครับ
ก็หวังอย่างยิ่งว่าบทความนี้จะประโยชน์กับทุกท่านครับ
Post a Comment