2016-07-04 1 views
1

플레이어가 이동할 수있는 메뉴 장면이 있습니다. 실제 게임이 시작되기 전에 그냥 재미로. 게임은 UI 버튼을 클릭하면 시작됩니다. 그러나 버튼을 클릭하면 새로운 Scene이로드되기 바로 전에 플레이어가 건너 뜁니다. 나는 그것을 막고 싶다. 그래서 점프하기 전에 버튼을 클릭하지 않으면 확인해야합니다. 어떤 생각을하는 방법?버튼을 클릭하면 유니티가 건너 뛰기하지 않습니다.

정적 변수를 사용해 보았습니다. 그러나 문제는 점프 기능을 호출하는 스크립트가 먼저 실행된다는 것입니다. 변수를 false로 설정할 수있는 Buttonscript 이전.

void Update() 
{ 
    isGrounded = Physics2D.OverlapCircle(GroundCheck1.position, 0.15f, groundLayer); 

    // Here I want to check if the click doesnt hit a button 
    if (Input.GetMouseButtonDown(0) && isGrounded) 
    { 
     GetComponent<AudioSource>().Play(); 

     // Here I set Jump to true, so my FixedUpdate Method can execute the Jump 
     jump = true; 
    } 
} 

답변

1

매우 간단합니다.

확인 마우스는 GUI의 요소 위에있는 경우 :

EventSystem.current.IsPointerOverGameObject()

그래서

if (Input.GetMouseButtonDown(0) 
&& isGrounded 
&& !EventSystem.current.IsPointerOverGameObject()) 

이 그들이 마우스를 클릭하고 경우에 그들이 GUI 요소를 통해되지 않았 음을 확인하는 검사 , 그러면 플레이어는 점프 할 수 있습니다.

이와 같이 큰 조건문을 만들면 도우미 메서드로 분해하는 것이 좋습니다.

+0

감사합니다. 그렇게 간단합니다 .-하지만 저는 Unity에서 발전하기 시작했습니다. 당신은 많은 도움이되었습니다. 가능한 한 빨리 답변을 표시하겠습니다. (7 분 지연) – DannielR

관련 문제