public void Interact()
{
if (!characterController.isGrounded) return;
if (Physics.Raycast(transform.position + Vector3.up * 0.5f, transform.forward, out RaycastHit hit, 1f, interactiveLayer))
{
targetObj = hit.collider.GetComponent<Interactable>();
targetObj.Interact();
}
}
๋ด๊ฑฐ ๋ณผ๊ฑฐ์๊ณ if์์๊บผ๋ง ๋ณด๋ฉด๋จ
raycast๋ก ์ฐพ์ ๋ฌผ์ฒด์ Interactable ์ปดํฌํดํธ๋ฅผ ๋ค๊ณ ์์, ๊ทธ ์์ ๊ตฌํ๋ Interact๋ฉ์๋๋ฅผ ์คํํ๋ค. ์ธ๋ฐ
๋ง์ฝ Interactable์ด ์์ผ๋ฉด ์๋ฌ๋์ผ๋๋๊ฑฐ์๋??
if(targetObj!=null) targetObj.Interact(); ์ด๋ ๊ฒ ๋ฐ๊ฟ์ผ ์๋ฌ์๋๋๊ฑฐ ์๋??
์ด๊ฑฐ ์ด๋๋ก ์ฐ๋๋ฐ Interactable์ด ์๋ ์ค๋ธ์ ํธ์์์ ์ด ๋ฉ์๋๋ฅผ ๋ถ๋ฌ์๋ ๊ทธ๋ฅ ์คํ์๋๊ณ ์๋ฌ์๋จ
์๋ ๊ทธ๋ฐ๊ฑฐ์??
์ฝ๋ผ์ด๋๋ ์๋ ๊ฑฐ ์๋? ์๋ฌ๋ ๊ฒ ๊ฐ์๋ฐ
๊ธ๊น ์๋ฌ๋ ๊ฑฐ๊ฐ์๋ฐ ์๊ทธ๋ฌ์ง
Raycast๊ฐ false๋ฅผ ์ฃผ๊ณ ์๋๊ฒ ์๋๊น
๊ทธ๋ฐ๊ฐ? ํ์ธํด๋ณด๊ฒ ์
ํด๊ฒฐ์... ๋ฉ์ฒญ์ฐใ ์ด์ฉ์ง ์ด์ํ๋๋ฐ interactiveLayer ๋ ์ด์ด ์ ์ฉํด๋๊ณ ๋ ์ด์ด๋ฅผ ์๋ฐ๊พธ๋๊น Raycast์์ false์ค๊ฑฐ ์๋ใณ