Curve ํ์ผ์ Box Collider ๋ฃ๊ณ Is Trigger ์ฒดํฌํด์ค
๊ธฐ์ฐจ์ Box Collider ๋ถ์ฌ์ค, MoveOnPath๋ผ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ถ์ด์์.
๊ธฐ์ฐจ๊ฐ ๊ฐ๋ค๊ฐ ์ปค๋ธ์ ๋ค์ด์๋ฉด ์๊ธฐ๊ฐ ์ปค๋ธ์ ์๋ค๋ ๊ฑธ ์์์ผ ํด์ ์๋์ฒ๋ผ ์ง๊ณ ์ปค๋ธ ํ์ผ์ ๋ถ์๊ฑฐ๋ ์ฌ
๊ทธ๋ผ ๊ธฐ์ฐจ๊ฐ ์น์นํญํญ ๊ฐ๋ค๊ฐ ํ์ผ Box Collider ์์ ๋ค์ด์๋ฉด ๊ธฐ์ฐจ์ ๋ฌ๋ฆฐ MoveOnPath ์คํฌ๋ฆฝํธ ์์ ๋ณ์์ธ onCurve์ ์ ํด์ค๋ ค๊ณ
์๋์ฒ๋ผ ์งฐ๋๋ฐ ์ ๋ฉ์ถฐ์ง.. ๋์...!
๊ธฐ์ฐจ์ Train ํ๊ทธ๋ ๋ถ์ฌ๋์ต๋๋ค........... ์ง๊ธ print("check")๋ ์ถ๋ ฅ์ด ์ ๋๋ ์ํ ใ ใ
public class CurveRotation : MonoBehaviour {
ย ย void OnTriggerEnter(Collider other)
ย ย {
ย ย ย ย if(other.tag == "Train")
ย ย ย ย {
ย ย ย ย ย ย print("check");
ย ย ย ย ย ย other.GetComponent<MoveOnPath>().onCurve = true;
ย ย ย ย }
ย ย }
ย ย void OnTriggerExit(Collider other)
ย ย {
ย ย ย ย if (other.tag == "Train")
ย ย ย ย {
ย ย ย ย ย ย other.GetComponent<MoveOnPath>().onCurve = false;
ย ย ย ย }
ย ย }
}
๊ธฐ์ฐจํน์ ์ปค๋ธํ์ผ์ ๋ฆฌ์ง๋๋ฐ๋์์?
์๋์ฌ....?
ํธ๋ฆฌ๊ฑฐ ํน์ ์ฝ๋ผ์ด๋ ์ฒดํฌ๋ฅผ ํ๋ ค๋ฉด ๋ง์ฃผ์น๋ ๋๊ฐ์ค ์ ์ด๋ ํ๋๋ 2Dํน์ 3D์ ๋ฆฌ์ง๋ ๋ฐ๋๊ฐ ์์ด์ผ ์ถฉ๋์ฒดํฌ๋ฅผํ ์์์
์ค ๋๋ค ๋ผ! ๊ฐ์ฌํฉ๋๋ค!
ํน์ ๋ณด์ค์ง ๋ชจ๋ฅด๊ฒ ์ง๋ง onCurve ์ธ์์ด ์๋ฉ๋๋ค... other.GetComponent<MoveOnPath>()๊ฐ null์ธ๊ฐ๋ด์ฌ nullReferenceException์ด ๋น๋๋ค ใ ใ
๊ตฌ๊ธ๋ง ํด๋ณด๋๊น temp = other.gameObject.GetComponent<MoveOnPath>();๋ก ํ๋ผ๋๋ฐ ๋๊ฐ์ด null์ด ์ค๋ค์ฌ
๊ธฐ์ฐจ์ ๋ฌ๋ ค์๋ ๋ฐ์ค์ฝ๋ผ์ด๋๋ MoveOnPath๋ผ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋๊ธ์ผ๋ก์๋์? ์ฐจ์ผ๋๋ ๋ถ๋ชจ์ ๋ถ์ด์์ง ์์์ง?
๊ทธ๋ฆฌ๊ณ onCurve๋ผ๋ ๋ณ์๊ฐ public์ธ์ง
์ ์ฝ๋ผ์ด๋๊ฐ ์คํฌ๋ฆฝํธ์ ์์์ ๋ถ์ด์์ต๋๋ค์
ใ ใ ํด๊ฒฐํ ๊ฒ ๊ฐ์ต๋๋ค ์ ๋ง ๊ฐ์ฌํด์ฌ
ใ ใ ์ฆ๊ฐ(์ฆ๊ฑฐ์ด ๊ฐ๋ฐ์ด๋๋ป)