강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wkdtjrgus023282
wkdtjrgus023282

câu hỏi đã được viết

[Unity 3D] Đang hoạt động! Tạo game sinh tồn - nâng cao

Mổ thịt (Mổ heo)

도와주세요

Viết

·

338

1

다 똑같이 따라했는데 돼지 죽여도 텍스트가 안떠요 ㅠㅠ

private void MeatInfoAppear()

    {

        if(hitInfo.transform.GetComponent<Animal>().isDead)

        {

            dissolveActivated = true;

            actionText.gameObject.SetActive(true);

            actionText.text = hitInfo.transform.GetComponent<Animal>().animalName + " 해체하기" + "<color=yellow>" + "(E)" + "</color>";

        }

    }

즉 이부분이 아예 실행이 안되는것 같습니다 ㅠㅠ

unity

Câu trả lời 2

1

Action Controller의 Layer Mask에 돼지가 포함되어 있지 않아서 if문에 걸리지 않아 생기는 오류 같습니다. 돼지의 Layer를 item으로 하거나 Animal Layer를 추가해서 Layer를 Animal로 설정하게되면 if문에 걸려서 위의 문제를 해결할 수 있습니다.

그러나 Weapon에서는 충돌감지가 layer가 변함에 따라 적용되지 않으므로 CloseWeapon layer(ex axe, pickaxe 등의 하위의 Layer mask)에도 animal을 추가해주면 위의 문제를 해결할 수 있을 것 같습니다.

0

ked810610456님의 프로필 이미지
ked810610456
Người chia sẻ kiến thức

우선 돼지가 RayCast에 의해 충돌했는지 여부를 알기 위해 hitInfo.transform.name 을 Debug로 띄웁니다.

 

제대로 돼지와 Ray가 충돌했다면 다음으로 if 조건문을 만족하는지 확인합니다.

 

isDead가 제대로 true가 되었다면 조건문 안의 내용을 실행하게 될겁니다.

 

감사합니다.

Hình ảnh hồ sơ của wkdtjrgus023282
wkdtjrgus023282

câu hỏi đã được viết

Đặt câu hỏi