• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

도와주세요

19.08.18 21:14 작성 조회수 114

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>";

        }

    }

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

답변 3

·

답변을 작성해보세요.

1

hyeon님의 프로필

hyeon

2021.06.23

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

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

0

특전형님의 프로필

특전형

2022.08.24

  • Main Camera의 Culling Mask에도 Animal 체크 해주셔야 다 뜹니다

0

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

 

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

 

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

 

감사합니다.