์๊ตฐ ์ ๋ ํ๋ฌ๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
๋ฒ์๋ด์ ์๊ตฐ๋ค์ ์ฒด๋ ฅ์ ์ฒดํฌํด์
์ต๋ ์ฒด๋ ฅ์ด ์๋ ๊ฒฝ์ฐ ํ์ ํ๋ ค๊ณ ํ๋๋ฐ
์ ๋ฏธ์ฒํ ์ง์์ผ๋ก๋ ์ค์๊ฐ์ผ๋ก ๋ถํน์ ๋ค์์ ์๊ตฐ์ ์ฒด๋ ฅ์ ์ฐ์ฐํ ์ ์๋ ๋ฐฉ๋ฒ์
GetComponent๋ฅผ updateํ์์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ฐ์ ์์ต๋๋ค.
์ ํฌ๊ฐ ์ค์๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋
OnTriggerStay๋ฅผ ์ด์ฉํด์ ๊ณ์ ์ฒดํฌ๋ฅผ ํด์ฃผ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ คํฉ๋๋ค.
์ ๋์๋ ๋ง์ผ๋ฉด 30~40๋ง๋ฆฌ๊น์ง ์ฌ๋ผ๊ฐ๋๋ค.
GetComponent๋ฅผ ๋๋ฌด ๋ง์ด ์ฌ์ฉํ๋ฉด ์ต์ ํ์ ์ข์ง ๋ชปํ๋ค๊ณ ์ด์ผ๊ธฐ๊ฐ ์ฌ์ฌ์ฐฎ๊ฒ ๋ณด์ฌ
๋์์ ์ฌ์ญ๊ณ ์ ๊ธ์ ์๋๋ค.
์ต๊ทผ ์ ๋ํฐ๊ฐ GetComponent๋ฅผ ๊ฐ๋ณ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ฐ์ ์ ํด์
์๊ด์๋ค๋ ๋ถ๋ ์๊ณ ์์ง ๋ฌด๊ฑฐ์์ ์ ๊ฒ ์จ์ผํ๋ค๋ ๋ถ๋ ์์ต๋๋ค.
=====================================================
1. GetComponent ๋ง์ด ์ฌ์ฉํ์ฌ๋ ์๊ด์๋๊ฑด๊ฐ์?
2. ์ค์๊ฐ์ผ๋ก ์ฒด๋ ฅ์ ๊ด๋ฆฌํ ์ ์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์๊น์?
์ด๊ธ์ ์ญ์ ๋์ง ์์ต๋๋ค
์ด ๊ธ์ ์ญ์ ๋์ง ์์ต๋๋ค ใ ใ ใ
์ด๊ฑด ๋๋ ๊ถ๊ธํ๋ค... ์๋ง ๋๋ผ๋ฉด ์กฐ๊ธ์ด๋ผ๋ ์ฐ์ฐ์ ์ค์ด๊ธฐ ์ํด ์ ๋๋ค์ด ์๊ธฐ ์ฒด๋ ฅ ์ฒดํฌํ๊ณ ์๋ค๊ฐ ์ต๋๊ฐ ์๋๋ฉด ํ๋ฌํํ ์์ฒญํ๋ ์์ผ๋ก ์๋ํด๋ณผ ๊ฒ ๊ฐ์๋ฐ, ์ด๊ฒ๋ ๊ฝค๋ ๋ฌด์ํด ๋ณด์ด๋ ์๋ง ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ ๋ฏ?
์ ๊ฐ ์ฌ์ฉํ๋ ค๋ ๋ฐฉ๋ฒ๋ณด๋ค ์ข์ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค
์ ๊ทธ๊ฒ๋ ๋๊ฒ ๋ค. 1. ๋น ๋ฆฌ์คํธ(์๊ตฐ ์คํฌ๋ฆฝํธ) ํ๋ ๋ง๋ค๊ณ 2. ๊ฐ์ธ ์ ๋๋ค์ด ์ฝ๋ฃจํด์ผ๋ก ์๊ธฐ ์ฒด๋ ฅ ์ฒดํฌํ๊ณ ์๋ค๊ฐ ๋งํผ๊ฐ ์๋๋ฉด ํด๋น ๋ฆฌ์คํธ์ ์ค์ค๋ก๋ฅผ ๋ฑ๋กํ๊ณ ์ฝ๋ฃจํด ์ ์ง 3. ํ๋ฌ๋ ๋ฆฌ์คํธ ์ํ ๋๋ฆฌ๋ฉด์ ๊ทผ์ฒ์ ์๋ ๊ฐ์ธ ์ ๋์๊ฒ ํ 4. ๊ฐ์ธ ์ ๋์ ์ฒด๋ ฅ ์ฆ๊ฐ ์ด๋ฒคํธ๊ฐ ๋์์ผ๋ฉด ๋งํผ ์ฒดํฌํด์ ๋งํผ๋ฉด ๋ฆฌ์คํธ์ ์ค์ค๋ก๋ฅผ ๋นผ๋ฉด์ ์ฒด๋ ฅ ์ฒดํฌ ์ฝ๋ฃจํด ๋ค์ ๋๋ฆฌ๊ณ ์๋๋ฉด ๊ทธ๋๋ก ๋ ๋
์๊ตฐ(MyMonster)๋ค์ ๋ชจ์์ ์๋ฃ๊ตฌ์กฐ์ ๋ฃ๊ณ (์์ ์ฝ๋๋ฅผ ๋ณด์ List์ถ์ฒ)
์ด ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉด GetComponent๋ฅผ ํผํ ์ ์์ต๋๋ค
์ถ๊ฐ์ ์ผ๋ก Update๋ ๋๋ฌด ๋น๋๊ฐ ์ฆ์์ FixedUpdate๋, ์ฝ๋ฃจํด์ผ๋ก 0.1์ด ์ ๋๋ก ๋๊ณ ์ฒด๋ ฅ์ ํ์ธํด์ ๋ฆฌํํ๋๊ฒ๋ ์ต์ ํ์ ๋์์ด ๋ฉ๋๋ค
๋ง์ฝ ํผํฌ๋จผ์ค๊ฐ ์ ๊ฒฝ์ฐ์ธ๋ค๋ฉด ์๊ตฐ ํผ๋ฅผ ์ฒดํฌํ๋๊ฒ์ 1์ด์ ํ๋ฒ, ๋๋ 0.5์ด์ ํ๋ฒ์ผ๋ก ์ ํ์ ๊ฑธ์ด๋ผ ์๊ตฐ ์ ๋์๊ฐ 40๋ง๋ฆฌ๋ฐ์ ์๋๋๊น ๋ฌธ์ ์๋ ๊ฑฐ์
์๋๋ฉด ์์ ํ๋ฌ์ชฝ์ ํผ๋ฅผ ์ฒดํฌํ๋๊ฒ ์๋๋ผ ๊ฐ๊ฐ์ ๋ชฌ์คํฐ๊ฐ ๋ฐ๋ฏธ์ง๋ฅผ ์ ์ ๋๋ง๋ค ์์ ์ ํผํต์ ์ฒดํฌํ๊ณ , ์์ ์ ํผํต์ด ์ผ์ ์ดํ๋ก ๋จ์ด์ง๋ฉด ๋์ ํผํต์ด ๋จ์ด์ก๋ค! ํ๊ณ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ๋ ์์. ๊ทธ๋ฌ๋ฉด ํ๋ฌ๊ฐ ๊ทธ ์ด๋ฒคํธ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฃ๊ณ ์ ๊ทธ ๋ชฌ์คํฐ ํํด์ฃผ๋ฉด ๋จ. ์ด๋ฌ๋ฉด ์์ ํ update ์์์ ์ฒด๋ ฅ ์ฒดํฌํ๋๊ฒ์ ํํผํ ์ ์์
(๊ธ์ด์ด) ํ๋ฌ๊ฐ ์ ์งํ๋ฉฐ ๋ฆฌ์คํธ์ ์๊ตฐ๋ค์ ์ ์ฅํ๊ณ ํ๋ฌ๊ฐ ํ์ด ๊ฐ๋ฅํ ์๊ฐ์ ๋ฆฌ์คํธ์ ์๊ตฐ๋ค์ ์ฒดํฌํ๊ณ ๋ฆฌ์คํธ์ ์ ์ฅ๋ ์๊ตฐ๋ค์ ์์ ์ ํผํต์ ์ฒดํฌํ์ฌ ํ์ด ํ์ํ๋ค๋ ์ ํธ๋ฅผ bool๋ก ์๋ ค์ฃผ๋ คํฉ๋๋ค.
๋ชจ๋ ๋ต๋ณ๊ฐ์ฌํฉ๋๋ค.
์ ๋ ํด๋์ค public delegate void PlayerDieHandler(GameObject unit); public static event PlayerDieHandler HpCheck; void Life(){ if(this.Hp < Max){ HpCheck(gameObject) } }
ํ๋ฌ ํด๋์ค ์ ๋.HpCheck += this.Heal; void Heal(GameObject unit){ Dist = Vector3.Distance(transform.position, unit.transform.position); if(Dist < 5){ unit.GetComponet<์ ๋>().HP += 100; } } ๊ทผ๋ฐ ์ด๊ฒ ๊ฐ๋ฒผ์ด์ง๋ ๋ชจ๋ฅด๊ฒ ์ ใ ใ
๋๋2D๊ฒ์์ด๋ผ ์ค๋ธ์ ํธ์ component ๊ฐ์ ธ์์ผํ ๊บผ ์์ํ ๋ ์ ์ manager์๋ค๊ฐ ๊น์๋๊ณ ํด๋น ์ค๋ธ์ ํธ ์ปดํฌ๋ํธ์ ์ธ๋ฑ์ค์ transform.localscale.z๊ฐ์ ์ผ์น์์ผ์ Manager.instance.์ ๋์คํฌ๋ฆฝํธ๋ค[ col.gameobject.transform.localscale.z].heal() ๊ฐ์ ๋ฐฉ์์ผ๋ก ํ์
ํ์ ์ด๋ฒคํธ๋ก ๋ฟ๋ฆฌ๊ณ ์ ๋๋ค์ด ์ค์ค๋ก ํ๋จํด์ ์ฒด๋ ฅ์ ์ฌ๋ฆฌ๋ฉด ๊ฐ๋จ. - dc App
Aใ .....์๊ณจ ๋ชฐ๋๋ค ใ ๊ฐ์จํฉ๋๋ค.
์ ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ manager ํด๋์ค์์ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ๋ ๋ฐฉ์์ ๋ง์ด ๋ณธ ๋ฏ. ๊ฐ ๊ฐ์ฒด๋ awake()์์ ๋งค๋์ ํด๋์ค์ ๋ฆฌ์คํธ์ ์์ ์ ๋ฑ๋กํ๊ณ . ์ด์ฐจํผ ํํ ๋๋ง์ด ์๋๋ผ ์๋ก ์ฐธ์กฐํ ์ผ์ด ๋ง๊ธฐ๋ ํ๊ณ ๋ฐ์ดํฐ์ ์ค ๊ฐ์ฒด๋ฅผ ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ๋ ๊ฒฝ์ฐ์๋ ์ ์ฉํ๊ณ ํด์...
๋๋ ๊ถ๊ธํ๋ ์ด์ผ๊ธฐ ๋ ๊ธ๊ฐ์ ๋๊ณ ๋๊ณ ๋ณด๋ฉด ์ข๊ฒ ๋ค
https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=98575