์ฝ๋๋ ์ด๋ฐ์์ธ๋ฐ:
if (newContainer.GetComponent<UnitContainer>().IsContainUnit())
ย ย newContainer.GetComponent<UnitContainer>().GetContainingUnit().gameObject.GetComponent<CombatUnitMovement>().AssignUnitTo(_container);
newContainer.GetComponent<UnitContainer>().SetContainingUnit(gameObject);
๋ชฉ์ ์ง(newContainer)์ ์ด๋ฏธ ๋ค์ด์๋ ์ ๋์ ๋ด๊ฐ ์๋ ์๋ ์๋ฆฌ(_container)๋ก ๋ณด๋ด๊ณ ๋ด๊ฐ newContainer๋ก ์ด๋ํ๋ ์ฝ๋ ๋
๋์ค์ ๋ณด๋ฉด ์ด์ง๋ฌ์ธ ๊ฒ ๊ฐ์๋ฐ, ์ด๋ฐ๊ฑด ์ด๋ป๊ฒ ๊ด๋ฆฌํ๋ฉด ๋ผ์?
๋ฑํ ์ฌํ์ฉ์ ํ๋ ๊ฑด ์๋๋ผ ๋ฐ๋ก ๋ณ์ ๋ง๋ค์ด์ ๊ด๋ฆฌํ์๋ ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ์ปค์ง๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ ์.
์ ๋ผ๋ฉด 3๋ฒ ๋ฐ๋ณต๋๋ UnitContainer container = newContainer.GetComponent(); ์ด์ ๋? ์ง์ญ๋ณ์๋ก ์ ๊น ์ธ๋ฏํ๋ค์
๋ด๋น๋ผ ๋์ค์ ์ฝ๋๊ฐ ์ด์บ๋ ์ง ๋ชจ๋ฅด๋ ์ ๋ฆฌ ํด๋ฌ์ผ๊ฒ ๋ค์. ๊ฐ์ฌํฉ๋๋ค.
์์ ์ฌ๋ ๋ง๋๋ก ํ๋๋ฐ, ๊ถ๊ธํ๊ฒ if๋ฌธ ์์ ์ ๊ฑด ๊ตฌ์กฐ๊ฐ ์ ์ ๋ ๊ฒ ๋์ด๋ฒ๋ฆฐ๊ฑฐ์.. GetComponent.Get๋จธ์๊ธฐ.GetComponent ๊ตฌ์กฐ๊ฐ ์๋ฐ์..
์ ๋ ์ปจํ ์ด๋๋ ์ ๋์ ํ๋์ฉ ๋ณด๊ดํ๋ ์ค๋ธ์ ํธ๊ณ , ๊ทธ ์ ๋ ์ปจํ ์ด๋์์ ๋ณด๊ด๋ ์ ๋ ์ค๋ธ์ ํธ์ CombatUnitMovement ํด๋์ค์ ์ ๊ทผํด์ ํด๋์ค ์์ ๋ฉ์๋๋ก ์ง์ ํ ์ ๋ ์ปจํ ์ด๋๋ก ๋ณด๋ด๋๊ฒ ๋ชฉ์ ์ด๋ผ UnitContainer์ค๋ธ์ ํธ -> UnitContainerํด๋์ค -> CombatUnit์ค๋ธ์ ํธ -> CombatUnitMovementํด๋์ค ์์ผ๋ก ์ ๊ทผํด์ AssignUnitTo ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ค๊ณ ํ์ด์. ๋ฉค๋ฒ ๋ณ์๋ฅผ ํผ๋ธ๋ฆญ์ผ๋ก ๋ฐ๊พธ๋ฉด ํด๋์ค ์บก์ํ๊ฐ ๊นจ์ง๊ธฐ ๋๋ฌธ์ ๋์ค์ ์ ์ง๋ณด์๊ฐ ํ๋ค ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํด์ ๊ธธ์ด์ก๋ค์. ๊ทธ๋ฅ ์บก์ํ๋ฅผ ๊นจ๊ณ Public ๋ณ์๋ก ํ์ฉํ๋๊ฒ ์ผ๋ฐ์ ์ธ๊ฐ์?
๊ทธ๋ ๊ฒํ ๊ฑฐ๋ฉด ์ค๋ธ์ ํธ->ํด๋์ค->์ค๋ธ์ ํธ->ํด๋์ค ์์ผ๋ก ์ ๊ทผํ์ง ๋ง๊ณ ์ฐจ๋ผ๋ฆฌ ํด๋์ค->ํด๋์ค ์์ผ๋ก ์ ๊ทผํ๋๊ฐ ํ๋๊ฒ ๋์๋ณด์ด๋๋ฐ.. ๊ทผ๋ฐ ๋๋ ์ฒ์๋ถํฐ ์ด๋ก ์ ์ต๋ํ ์ข์ ๊ตฌ์กฐ๋ก๋ง ๋ง๋๋ ๊ฒ๋ณด๋ค ์ด๋ป๊ฒ๋ ์์ฑํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ์ฌ๋์ด๋ผ ์์์ ์๊ฐํ์