PlayerPrefs() เป็นฟังขั่นอีกตัวนึงที่ Unity ทำเอาไว้ให้ใช้กัน ฟังขั่นตัวนี้จะทำหน้าที่เก็บค่าของข้อมูลเอาไว้ในเครื่อง อย่างใน windows PlayerPrefs จะถูเก็บเอาไว้ใน registry ซึ่งจะไม่หายไปเมื่อปิดเปิดเกมใหม่
จากลักษณะการเก็บข้อมูลทีค้างอยู่ในเครื่องไม่หายไปไหนเมื่อปิดเกม จึงเหมาะมากสำหรับการนำไปทำระบบเซฟเกมแบบออฟไลน์ เช่น เก็บข้อมูลการเล่นว่าผ่านด่านไหนไปบ้างเเล้ว ตอนนี้เลเวลเท่าไหร่ highscore เท่าไหร่ เวลาเปิดเกมก็ดึงค่าเหล่านี้มาอัพเดต ดึง highscore มาเช็คว่าคะแนนที่ทำใหม่มากกว่ารึเปล่าแล้วเซฟคะแนนใหม่ทีสูงกว่าเข้าไปแทนที่คะแนนเดิม
ลักษณะการเก็บข้อมูลจะคล้ายๆกับการเก็บตัวแปร ต่างกันแค่รูปแบบในการใส่ค่าและดึงค่า
PlayerPrefs ถูกแบ่งประเภทข้อมูลเป็น 3 แบบ
- Int - ตัวเลข
- Float - เลขทศนิยม
- String - ข้อความ
การใส่ค่าและดึงค่าจะต้องเรียกตามประเภทข้อมูล แต่ถ้าเราต้องการเก็บค่าเป็นชนิดอื่น อย่าง long หรือ date อาจต้องทำการแปลงเป็นข้อความแล้วเก็บเป็น String
การใส่ค่า
- PlayerPrefs.SetInt("ตั้งชื่อ",ค่าตัวเลข);
- PlayerPrefs.SetFloat("ตั้งชื่อ",ค่าทศนิยม);
- PlayerPrefs.SetString("ตั้งชื่อ","ข้อความ");
การเรียกค่ามาใช้
- PlayerPrefs.GetInt("ชื่อที่ตั้งไว้");
- PlayerPrefs.GetFloat("ชื่อที่ตั้งไว้");
- PlayerPrefs.GetString("ชื่อที่ตั้งไว้");
คำสั่งเรียกค่าสามารถเอาไปใส่แทนที่ส่วนที่เป็นค่าได้เลย ประมาณนี้int level = PlayerPrefs.GetInt("exp")/30;