์œ ๋‹ˆํ‹ฐ ํŠœํ† ๋ฆฌ์–ผ์—์„  ์•„์ดํ…œ ๋ฆฌ์ŠคํŠธ์— ํ•˜๋‚˜ํ•˜๋‚˜ ํ”„๋ฆฌํŽฉ ๋“ฑ๋ก์„ ํ•˜๋”๋ผ๊ณ 


๊ทผ๋ฐ ๋‚˜๋Š” ๊ทธ๋Ÿฐ๊ฒŒ ๋„ˆ๋ฌด ๊ท€์ฐฎ์•„์„œ ๊ทธ๋ƒฅ ํด๋”์— SO ํ•˜๋‚˜ํ•˜๋‚˜์— ์•„์ดํ…œ์„ ์ €์žฅํ•ด๋‘ 


๊ทธ๋ž˜์„œ ๊ทธ SO๋ฅผ ํด๋”์งธ๋กœ ๋ฆฌ์ŠคํŠธ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์‹œํ‚ด


๊ทผ๋ฐ ์ด๋Ÿฌ๋‹ˆ๊นŒ ์•„์˜ˆ ๊ฒŒ์ž„ ์ž์ฒด๊ฐ€ ์‹คํ–‰์ด ์•ˆ๋จ. ๋””๋ฒ„๊น…์„ ํ•˜๊ณ  ์‹ถ์€๋ฐ ๊ฑ ๊ฒŒ์ž„ ์œ ๋‹ˆํ‹ฐ์—์„œ ์ปดํŒŒ์ผํ• ๋•Œ ์ž์ฒด๊ฐ€ ๋ฉˆ์ถฐ์„œ ๋””๋ฒ„๊น… ์ž์ฒด๊ฐ€ ์•ˆ๋จ


๊ทธ๋ž˜์„œ ์•„์˜ˆ ๊ทธ๋ถ€๋ถ„ ์‚ญ์ œํ•˜๋‹ˆ ๋‹ค์‹œ ์›ํ™œํ•˜๊ฒŒ ๋Œ์•„๊ฐ.


์•„์˜ˆ ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ์—์„œ ์ง๋ ฌํ™”์‹œ์ผœ์„œ ํ”„๋ฆฌํŽฉ ํ•˜๋‚˜ํ•˜๋‚˜ ๋“ฑ๋กํ•˜๋‹ˆ๊นŒ ์ด๊ฑด ์ž˜๋จ.


๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ณผ์ •์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š”๊ฑด๋ฐ


SO๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐํ•ด์„œ ๊ทธ๋Ÿฐ๊ฑด๊ฐ€? ์•„๋‹ˆ๋ฉด ๋‚ด๊ฐ€ ๋ญ๋ฅผ ์ž˜๋ชป์“ฐ๊ณ  ์žˆ๋Š”๊ฑธ๊นŒ?


๋ณดํ†ต RPG๊ฒŒ์ž„์—์„œ ์•„์ดํ…œ ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ฌ๋•Œ ์–ด๋–ป๊ฒŒ ๋ถˆ๋Ÿฌ์˜ด?



[SerializeField] private string itemDataFolderName = "ItemData"; // Resources ํด๋” ๋‚ด์— ์žˆ๋Š” Scriptable Object๋“ค์ด ์ €์žฅ๋œ ํด๋” ์ด๋ฆ„


[SerializeField] public List<Item> itemList = new List<Item>();// ๋ชจ๋“  ์•„์ดํ…œ์„ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ



private void LoadItems()

{

// Resources ํด๋”์—์„œ ๋ชจ๋“  Scriptable Object ๋กœ๋“œ

ItemData[] itemDataArray = Resources.LoadAll<ItemData>(itemDataFolderName);

itemDataList.AddRange(itemDataArray);


// ๋กœ๋“œํ•œ Scriptable Object๋“ค์„ ์ด์šฉํ•˜์—ฌ itemList๋ฅผ ์ฑ„์›€

foreach (var itemData in itemDataList)

{

itemList.Add(CreateItemFromData(itemData));

}

}


์ด ๋ถ€๋ถ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ์‹ค์ˆ˜๋ฅผ ์•ˆํ•œ๊ฑฐ ๊ฐ™์€๋ฐ

๋ญ๊ฐ€ ๋ฌธ์ ค๊นŒ