2014-02-10 3 views
2

가 여기에 내가감지 마우스

void Update() { 

    if (Input.GetMouseButtonDown (0)) 
    {      
      Application.LoadLevel("option"); 

} 

을 클릭합니다 게임 객체에 첨부 된 내 코드는 게임 오브젝트를 클릭 내가 메이크업을 위해 화면의 아무 곳이나 클릭 할 수 있습니다처럼 "는 Application.LoadLevel ("옵션을 보인다 ");" 운영.

이 문제를 어떻게 해결할 수 있습니까?

+2

클릭 한 곳이 아닌 마우스 버튼을 클릭했는지 확인하기 때문입니다. – Qwertie

+0

레이캐스팅을 사용하여 마우스 클릭 아래의 내용을 확인할 수 있습니다. 여기에 지침 http://answers.unity3d.com/questions/28064/get-mouse-position-on-object.html – Qwertie

답변

6

@Qwertie가 말했듯이, 당신이 클릭하는 것이 중요합니다. GameObject에 충돌자가 연결되어있는 경우 OnMouseDown()을 사용할 수 있습니다. 이것은 collider와이 스크립트가있는 gameobject를 컴포넌트로 클릭 할 때마다 호출됩니다.

void OnMouseDown() 
{ 

    Application.LoadLevel("option"); 

} 
+0

대단한 일! 감사합니다 ! : D – Goondude

+0

하지만 콜 라이더를 추가하면 개체가 다른 게임 개체와 충돌 할 수도 있습니다. – Raptor

+0

을 사용할 때는주의해야합니다. 추가 레이어를 만들 수 있습니다. – Terel

0

이 시도 :

private Vector3 currentMouseDown; 
void OnMouseOver() 
{ 
    if (Input.GetMouseButtonDown (0)) { 
     currentMouseDown = Input.mousePosition; 
     Debug.Log ("down"); 

    } 
    if (Input.GetMouseButtonUp (0) && currentMouseDown != null) { 
     Debug.Log ("Up"); 
     if (currentMouseDown == Input.mousePosition) { 
      Debug.Log ("get"); 
     } 
    } 
} 

이 코드는 드래그 충돌 문제를 해결합니다.