public interface IItem{
void Use(GameObject target);
}
์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ณ useํจ์๋ฅผ ๋ง๋ค์์ด.
public class Ammo Pack : MonoBehavior, IItem{
public int ammo =30;
public void Use(GameObject target){
Debug.Log("ํ์์ด ์ฆ๊ฐํ๋ค");
}
}
public class healthpack : MonoBehavior, IItem{
public float health = 50;
public void Use(GameObject target){
Debug.Log("์ฒด๋ ฅ์ด ์ฆ๊ฐํ๋ค");
}
}
์ด๋ ๊ฒ ๊ฐ ํด๋์ค์ IItem์ ์์ํด์ฃผ๋๊ฑฐ ๊น์ง๋ ์ดํด๊ฐ ๊ฐ.ย
void OntriggerEnter(Collider other){
IItem item = other.GetComponent<IItem>();
if(item != null){
item.use();
}
}
์ด๋ถ๋ถ์ด ์ดํด๊ฐ ์๋๋๋ฐ...
์ถฉ๋์ ํด์ ๋ค๋ฅธ ์ค๋ธ์ ํธ์ย Iitem ์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์ ธ์จ๋ค๋๊ฑฐ ์๋์ผ...ย
๊ทผ๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ปดํฌ๋ํธ์ ์ถ๊ฐ ๋ชปํ์ง ์์?ย
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐํ ์ ์๋ค๊ณ ์น๊ณ IItem์ ์คํํ๋ค๊ณ ํ์ ๋....
๊ทธ๊ฒ ammo์ธ์ง health pack์ธ์ง ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฑฐ์ผ?ย
IItem ์ธํฐํ์ด์ค์ ๋ค์ด์๋๊ฑดย void Use(GameObject target); ์ด๊ฒ๋ฟ์ด์์.
๊ทธ๊ฒ ammo ๋ health ๋ ๋์ผํ use ๋ฅผ ๊ตฌํํด๋์ ๋ญ ๊ฐ์ ธ์ค๋ ๊ด์ฐฎ์๊ฑฐ์๋๊ฐ์
์ด๋ป๊ฒ ammo์ use๋ health์ use๋ฅผ ๊ตฌ๋ณํ๋์ง ๊ถ๊ธํด์
Item is ammo ์ด๋ ๊ฒ ์ฐ๋๊ฑฐ์๋ ์๋ฌดํผ c# is ํค์๋ ๊ฒ์ํด๋ณด์ธ์
๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์์ ๋คํ์ฑ์ด ๋ฌด์์ธ๊ฐ ๊ณต๋ถํ๋๊ฒ ์ข์๋ฏ
IItem ์ธํฐํ์ด์ค๋ Use()๊ฐ ์๋ค๊ณ ๋ณด์ฅ์ ํด ์ฃผ๋ ๊ฑฐ์. ๊ตฌ๋ณํ ํ์๊ฐ ์์ง
'์ถฉ๋์ด ์ผ์ด๋ IItem์ Use()๋ฅผ ์คํ'ํ๋๋ก ๋์ด ์์ผ๋๊น, ๊ทธ๊ฒ ammo๋ผ๋ฉด ํ์ฝ์ด ์ฆ๊ฐํ๊ณ , health๋ผ๋ฉด ์ฒด๋ ฅ์ด ์ฆ๊ฐํ๊ฒ ์ง
Ammo๋ healthpack์ ๋๋ค use๊ฐ์์์. ๊ทผ๋ฐ item.use๋ฅผ ์ฌ์ฉํ๋ฉด ๋จผ์ง ์ด์ผ์๋๋๊ฑฐ์ง. ์ถฉ๋ํ๊ฐ์ฒด์ iitem์ธํฐํ์ด์ค๋ฅผ๊ฐ์ง๊ณ ์ค์์. Ammo์ use์ธ์ง healthpack์ use์ธ์ง ์ด๋ป๊ฒ์๋์ง๊ฐ ๊ถ๊ธํ๊ฑฐ
์๋... ์ถฉ๋ํ์ ๋ IItem ์ธํฐํ์ด์ค๋ง ๋ ๋ผ์ค๋ ๊ฒ ์๋๋ผ ๊ทธ ์ธ์คํด์ค์ Use()๋ฅผ ์ฐ๋ ๊ฑฐ๋ผ๋๊น? OnTriggerEnter๋ฅผ ์คํํ๋ ์ ์ฅ์์๋ ๊ทธ๊ฒ Ammo์ use์ธ์ง, Healthpack์ use์ธ์ง ์์ง๋ ๋ชปํ๊ณ ์ ํ์๋ ์์. ๊ทธ๋ฅ ์๋ค๋ ๋ณด์ฅ์ด ๋์ด ์๊ณ , ์ฐ๋ ๊ฑฐ๋๊น
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ธํฐํ์ด์ค๊ฐ ์ ์ํ ํจ์๋ฅผ ๊ผญ ์จ์ ๋ณด์ฅํด์ค๋ค๋๊ฑด์ดํด๊ฐ๊ฐ. ๋ด๊ฐ๊ถ๊ธํ๊ฑด IItem item = other.GetComponent(); ์ฌ๊ธฐ์iitem์คํฌ๋ฆฝํธ๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ ๊ทธ๊ฒ ammo use์ธ์ง healthpack use์ธ์ง ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๋๊ฑฐ์ผ. Iitem์ ์ปดํฌ๋ํธ์ ๋ฑ๋กํ์ง๋์๊ณ ๊ฒ์ปดํฌ๋ํธ๋ก๊ฐ์ ธ์ค๋๊ฒ๋์ดํด๊ฐ์๊ฐ
์์์ ๋ํด์ ์ฐพ์๋ณด์ธ์
c++ ๋ก ๋์ ํด์ ์ค๋ช ํ์๋ฉด ๊ฐ์ํจ์๋ ํด๋์ค๋ด์ ๊ฐ์ํจ์ํ ์ด๋ธ ์ด๋๊ฒ ์์. ๊ทธ๋์ ๊ฐ์ํจ์(์ฌ๊ธฐ์๋ useํจ์)๊ฐ ํธ์ถ ๋ฌ์๋ ํ ์ด๋ธ์์ ๋ง๋ ํจ์๋ฅผ ์ฐพ์์ ๋ถ๋ฌ์ค.