สร้างเกม - scene to scene (Unity3D Thailand)

           สอน Unity3D จัดให้ 2 วิธี การส่งค่าข้ามซีน  - สำหรับบทความนี้มาดูการส่งค่าข้ามซีน ซึ้งผมก็นำตัวอย่างมาไว้ให้ดูกัน 2 วิธีเลยนะครับ ซึ้งวิธีแรกคือการใช้คำสั่ง PlayerPrefs ในการกำหนดค่าโดยใช้ Set และวิธีการเรียกใช้โดยใช้ Get ครับ

 
คลิปไม่ขึ้นไปตามลิ้งครับ >> http://youtu.be/bDbCGNeVERA

คำสั่งใน scene ที่ 1 
          ในซีนแรกจะเห็นว่าผมใช้ PlayerPrefs.SetString("myName","david");  ในการกำหนดค่า
ก่อนที่จะทำการเปลี่ยนซีนไปยังซีนที่ระบุไว้

คำสั่งใน scene ที่ 2
          จากนั้นในฟังชั่น Start() ของซีนที่สอง ให้ Debug เพื่อที่จะดูค่า myName โดยใช้คำสั่ง
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 ที่เราระบุด้วยครับ

ก็หวังอย่างยิ่งว่าบทความนี้จะประโยชน์กับทุกท่านครับ




สามารถอ่านบทความที่เกี่ยวข้องของเราที่นี่  >> รวมลิ้งค์บทความ สร้างเกมด้วย Unity

ไม่มีความคิดเห็น

ขับเคลื่อนโดย Blogger.