viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73ced8ffa11d02831dfaf0852456fb219302713c4cc80ae383155099580cb99ad7e7592abb0109b9e9091954f38c67dc7779c0447e60700c62004


스페이스 바 누르면 위의 대화창이 나타났다가 사라졌다가 하는 코드를 짰음

근데 정상적으로 작동은 하는데 3~4번에 1번 꼴로 키가 씹혀서 스페이스바를 눌러도 대화창이 안나타나거나 안사라짐.


첫 번째 코드가 PlyerController에 있는 메소드인데,

ray를 쏴서 오브젝트 정보를 받아오고 2번째 코드를 불러옴


2번째 코드는 그냥 플레이어가 스캔중일 때 대화창 끄거나 키는 거.


뭐가 문제인지 알려줄 수 있음?


유니티 입문중이라 코드가 보기 어려울 수 있는데 이해해줘


// 오브젝트 스캔

private void ScanObject()

{

     RaycastHit2D hitInfo;


     if (Input.GetKeyDown(KeyCode.Space))

     {

          hitInfo = Physics2D.Raycast(new Vector2

(myRigid.position.x, myRigid.position.y)

, dirVec, maxDistance, LayerMask.GetMask("Object"));


          if (hitInfo.collider != null)

          dialogManager.Action(hitInfo.collider.gameObject);

     }

}




//대화창 출력

public class DialogManager : MonoBehaviour

{

     //플레이어의 상태 변수

     public bool isAction = false;


     public Text dialogText;

     public GameObject dialogPanel;


     public void Action(GameObject obj)

     {

          if (isAction) //판넬 끄기

          {

          isAction = false;

     }

         else //판넬 켜기

          {

               isAction = true;

               dialogText.text = "이것은 " + obj.name + "입니다.";

          }


          dialogPanel.SetActive(isAction);

     }

}