วิธีโหลดรูปทั้งหมดจากโฟลเดอร์แบบไดนามิคขณะรันใน Unity by

30
Jun
0

ในการจะโหลดรูปทั้งโฟลเดอร์มาใส่ไว้ตัวแปร Sprite ใน Unity C# นั้น มีวิธีง่ายๆดังนี้ครับ

  • ขั้นแรก ห้ามพลาด รูปทั้งหมดถ้าจะใช้คำสั่ง Resources.Load หรือ Resources.LoadAll รูปทั้งหมดต้องอยู่ภายใต้โฟลเดอร์ Assets > Resources

Assets > Resources

  • จากนั้นที่ Start() เราก็จะทำการโหลดรูปทั้งหมดมาใส่ Array ที่จะเก็บ Sprite (ในตัวอย่างจะใช้ Resources.LoadAll ซึ่งจะใช้ Resources.Load วนลูปชื่อไฟล์ทั้งหมดก็ได้)

public string race;
public string job;
public int form = 0;
public string gender;
private SpriteRenderer sr;
private Sprite[] sprites;
private string[] names;
void Start ()
{
sr = gameObject.GetComponent(); //เรียก GameObject คือตัวมันเอง
string assetPath = "unit_assets/"+race+job+((gender=="M"||gender=="F")?"_"+gender.ToLower():"")+((form>0)?"_"+form:"")+"/"; //ตั้งค่าโฟลเดอร์ที่มีรูปทั้งหมดที่ต้องการโหลดโดยต่อสตริงจากตัวแปรที่ได้มา (นับ Path จาก Resources ลงมา)
sprites = Resources.LoadAll(assetPath); //โหลดรูปทั้งหมดจากโฟลเดอร์มาใส่ Array ของ Sprite
names = new string[sprites.Length]; //นับจำนวนรูปทั้งหมดในโฟลเดอร์
for(int i = 0; i < names.Length; i++)
names[i] = sprites[i].name; //วนลูปเพื่อจำชื่อไฟล์ทำหมดไว้ในอีก Array
}

  • เท่านี้รูปทั้งหมดก็จะมาอยู่ใน Array ในโค้ดเพื่อใช้ในการรัน Animation ต่อไปแล้วครับ ดาวน์โหลดโค้ดตัวอย่างที่นี่ครับ Click

Array ของ Sprite ที่โหลดมาทั้งหมด

Array ชื่อของ Sprite ที่โหลดมาทั้งหมด

Enjoy this article?

Consider subscribing to our RSS feed!

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

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน