void OnTriggerEnter2D(Collider2D coll)
{
if (coll.CompareTag("Enemy"))
{
Destroy(gameObject);
coll.gameObject.GetComponent<๋ถ๋ซํcoll์์คํฌ๋ฆฝํธ>();
}
}
๋ถ๋ซํ ๋์ ์ ๋ณด๋ฅผ ์ด์ผ ๊ฐ์ ธ์ฌ ์ ์์๊น
๋ถ๋ซํ ๋์ ์ ๋ณด๋ฅผ ์ด์ผ ๊ฐ์ ธ์ฌ ์ ์์๊น
๋ง๊ฒ ์ผ๋๋ฐ? ๋๊ฐ ์ฌ๋ฆฐ ์ฝ๋์์ ๋ถ๋ช์น๋์คํฌ๋ฆฝํธ.์ํ๋๋ณ์ ๋ถ๋ฅด๋ฉด ๋ ํ ๋ฐ
๊ทผ๋ฐ ์ข ๋ฅ๊ฐ ๋ค์ํด์ ํน์ ์ง์ด์ ์ธ ์๊ฐ ์์ด
A, B, C, D๋ฅผ ๋ค ์ผ์ด์ค๋ฅผ ๊ฑธ์ด์ฃผ์ง ์๊ณ ๊ฐ์ ธ์ค๊ณ ํ๋ฐ
GetComponent<"A">(); ์ด๋ฐ์์ผ๋ก ๋ค ์ธ ์๊ฐ ์์ด์ ๊ทธ๋ฅ ๋ถ๋ซํ ๋๊บผ๋ฅผ ๋ฑ ๊ฐ์ ธ์ค๊ณ ์ถ์๋ฐ ๋ด๊ฐ ๋ญ ์๋ชป์๊ฐํ๊ณ ์๋๊ฑด๊ฐ
์ถฉ๋ํ ์ค๋ธ์ ํธ์ ์คํฌ๋ฆฝํธ๊ฐ 4๊ฐ ์๋ค๋ ๊ฑฐ์? ์๋๋ฉด ์ค๋ธ์ ํธ๊ฐ ๋ค์ข ๋ฅ์ธ๋ฐ ๋ค์ข ๋ฅ์ ๊ฐ๊ฐ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๊ฐ ์์ด์ ๊ตฌ๋ถ ์ํ๊ณ ๋ค ๋ถ๋ฅด๊ณ ์ถ๋ค๋๊ฑฐ์?
ํ์๋ฉด ํ๊ทธ๋ก ๊ตฌ๋ถ ใฑใฑ
๋ ธ๋ ธ
๋ง์ฝ ์ด๊ฑธ ํ๊ทธ๋ก ๊ตฌ๋ถํ๋ค๋ฉด if A if B if C if D if E ์ด๋ ๊ฒ ๋ค ํด์ค์ผํ๋๋ฐ
coll.gameObject.GetComponent(); Rigidbody๊ฐ์ ธ์ฌ๋ ๊ทธ๋ฅ ์ ๋ฐ Rigidbody๋ฃ๊ณ ๋์ธ๊ฒ์ฒ๋ผ ์คํฌ๋ฆฝํธ๋ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋ถ๋ซํ ๋๊บผ๋ง ๋ฑ ๊ฐ์ ธ์ฌ ์ ์๋๊ฑฐ๊ฐ ๊ถ?๊ธ
๊ทธ๋ผ ๋๊ฐ ์ค๊ณ๋จ๊ณ์์ ๋นํจ์จ์ ์ผ๋ก ๋ง๋ ๊ฑฐ์
์ฝ๋ ๋ณด๋๊น ํฌ์ฌ์ฒด์ฒ๋ผ ๋ฐ๋ฏธ์ง ์ฃผ๋๊ฑฐ ๊ฐ์๋ฐ ์ค๋ธ์ ํธ๋ง๋ค ์ฒด๋ ฅ์คํฌ๋ฆฝํธ๋ฅผ ํต์ผํ๋๋ผ๋ฉด ๊ฑ ๊ตฌ๋ถ ์ํ๊ณ ์ฒด๋ ฅ์คํฌ๋ฆฝํธ๋ง ๊ฐ์ ธ์์ ์ฒ๋ฆฌํ ์ ์์์ ๊ฑฐ์
Interface ๋งํ๋๊ฑฐ ๊ฐ์๋ฐ
https://www.youtube.com/watch?v=MZOrGXk4XFI
๋ง๋๋ฏ. ์ ๋ํฐ ๊ฐ์ด๋ณด๋ผ ์ด์ฉ ์ ์๊ธดํจ
์ธํฐํ์ด์ค ๋ฃ์ด์ฃผ๋ฉด ์คํฌ๋ฆฝํธ ๊ฐ์ ธ์ค๊ธฐ ๊ฐ๋ฅํ๊ฐ
ใฑใ ์๋ ๋ฐ์๊ฐ๋ฉด์ ๋ฐฐ์ฐ๋๊ฒ ๋ฌด์ํด๋ณด์ฌ๋ ์๊น๋จน๊ณ ์ ์ผ ํ์คํจ.
์๋ Monster๋ผ๋ ๋ถ๋ชจ ๋ง๋ค์ด์ ํ๋ ค๊ณ ํ๋๋ฐ ์ด๋์์ ์๊พธ ๊ผฌ์ฌ์ ๊ฐ๋บ์ตธ์ ๊ทธ๋ฅ ๊ฐ์ฒด์งํฅ ๋๋ ํฌ๊ธฐํด๋ฒ๋ ท์์
์ ์ง์ง ๋ ์น๊ฐ๋ฐ์๋ผ์ ์ด๋ ์ ๋ ๊ฐ๋ ์๋๋ฐ C# ์ข ์ด๋ ค์
4๊ฐ๊ฐ ํ๋ ์ผ์ ์ ์๊ฐํด๋ณด๊ณ ๊ณตํต๋ ๋์์ ํ ์ ์๋ interface๋ฅผ ํ๋ ์ ์ํ๋ค, 4๊ฐ์ ์คํฌ๋ฆฝํธ๊ฐ ์ด interface๋ฅผ ๊ตฌํํ๋ ์์ผ๋ก ํด์ผ ํ ๋ฏ - dc App
์ง์ง ์ด๊ฑฐ ํด๋ด์ผ๊ฒ ๋ค ๊ทผ๋ฐ GetComponent<>์์ interface ์ด๋ฆ ๋ฃ์ด๋ ๋๋๊ฑด๊ฐ?
๋๋ค๋ฉด ์ด๊ฑฐ ์ง์ง ์ญ๊ฐ๋
ใ ใ ๊ทธ๋ ๊ฒ ํ๋๊ฑฐ
IMonster๋ก ๊ฐ๋ค.. ํฅ๋ถ๋๋ค
monster.GetComponent()?.Poison(bulah bulah) ๋ ์ด๋ฐ์์ผ๋ก ์ผ์
monster.GetComponent()?.Poison(bulah bulha) ์์
๋ณดํต ์ถฉ๋์ ๋ฐ๋ฅธ ๋ฐ๋ฏธ์ง์ฒ๋ฆฌ ๊ฐ์๊ฑธ ๊ณ ๋ คํด์ผํ ํ ๋ฐ, ๋ด๊ฐ ๋ณผ๋ ์ถฉ๋์ ๊ฒ์ถํ ์ธก์์ "๊ณต๊ฒฉ์ ๋ํ ์ ๋ณด"๋ฅผ ์ ๋ฌํ๊ณ , ๋ง๋ ์ชฝ (์ฌ๊ธฐ์ 4๊ฐ์ง ์ข ๋ฅ์ ์คํฌ๋ฆฝํธ)๊ฐ ์ด ๊ณต๊ฒฉ์ ์ด๋ป๊ฒ ๋ฐ์๋ค์ผ์ง ๊ตฌํํ๋๋ก ํ๋ ๊ฒ์ ์ถ์ฒํจ.๊ฒ์ถํ๋ ์ชฝ์์ ์ด๋ค ์์ผ๋ก๋ ๊ณต๊ฒฉ ์ ๋ณด๋ฅผ ๋ค๊ณ ์๋๋ค๊ณ ํด๋ณด์. ๊ฐ๋ น ๋ ๊ฒ์์๋ ๋ฌด์จ ๊ณต๊ฒฉ์ด๋ ๋ฐ๋ฏธ์ง ์ซ์์ ๋ง๋ฒ๋ฐ๋ฏธ์ง์ธ์ง ์ฌ๋ถ๋ง ์๋ค๋ฉด,class AttackInfo{ int damage; bool isMagic;}์๋ฐ ์ฝ๋๊ฐ ๋ ๊บผ์ผ. ๊ทธ๋ฆฌ๊ณ ์ธํฐํ์ด์ค๋ฅผ ํ๋ ์ ์ํ์.inteface Attackee{ void ReceiveAttack(AttackInfo attackInfo);}๋ชฌ์คํฐ๋ ์ด๊ฑธ ๊ตฌํํ๊ณ , ์์์ ๋ง๋ฒ ๋ฐฉ์ด๋ ฅ์ด๋ ๋ญ๋ ๋ง๋๋ก ๊ณ์ฐํ๊ฒ ๊ตฌํํ์ - dc App
C#์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ?๋ฅผ ์ง์ํ๋?
ใ ใ <> ์ด๊ฑฐ ์ ์์จ์ง๋
๋ด๊ฐ์ด ์ฝ๋ ๋ฌด์ํด๋ผ ์ ๊ฑฐ ์ ๋๋ก๋ ์ฝ๋์๋
? ๋ ์ง์ํจ ์ฐพ์๋ด
GetComponent<T> ๋ฌด์กฐ๊ฑด ๋๋ค ๋ด๊ฐ ํ๋ฃจ์ดํ ์ฐ๋ ํจํด๋ ์๋. - dc App
coll.gameObject.GetComponent().TakeDamage(ํฌ์ฌ์ฒด์๊ณต๊ฒฉ๋ ฅ); ์ด๋ ๊ฒ ํ๋ ค๊ณ ํ๋๋ฐ ์ด๊ฒ ์๋๊ฐ?
๊ทธ๋ฌ๋ค < >์์จ์ง๋ค ใ
coll.gameObject.GetComponent.TakeDamage(ํฌ์ฌ์ฒด์๊ณต๊ฒฉ๋ ฅ);
asd
์์ด๊ฑฐ DC์์ HTML ๋ง์ผ๋ ค๊ณ <>๋ชป์ฐ๊ฒํด๋จ๋ค ;
๋ค๋ค ๋ ์น์ ํด์ ๊ฐ๋๋จธ๊ธ ใธ