Unity에서 NGUI를 할 때 문제를 발견했습니다.
Unity2D 장면에서 스프라이트 이미지가 Box Collider나 Box Collider2D로 추가되는 한 OnMouseEnter 및 OnMouseExit 이벤트에 응답할 수 있지만 NGUI에는 응답할 수 없습니다.
그것은 큰 구덩이
NGUI는 버튼 구성 요소를 제공하지만 버튼을 직접 사용자 정의하려면 두 가지 유효하지 않은 이벤트가 반드시 필요합니다.
인터넷을 한참 뒤져봐도 아직 관련 질문에 대한 답을 찾지 못해서 그렇습니다.
그래서 개인적으로 내 솔루션을 다시 기록합니다.
다행스럽게도 얼마 전에 구매한 "Unity3D NGUI Practical Tutorial"이 있어 읽을 시간이 없었습니다. 편집자 Gao Xuefeng, Mr. Gao는 이 기사를 읽은 후 광고비(탈출)를 지불하십시오. 그 안에서 이 문장을 보았습니다: 이 컨트롤에 BoxCollider가 있는 한 OnClick(), OnHover() 및 기타 이벤트 모니터링 기능을 통해 스크립트에서 응답 이벤트를 트리거할 수 있습니다.
브리지 자루? 온호버()? 흥미로운.
그래서 먹어보러 갔습니다
1 무효 OnHover() 2 { 3 Debug.Log( " OnHover " ); 4 }
마법 같은 일이 일어났습니다
예, 두 개의 로그를 읽었습니다. 확인 결과 축소가 켜져 있다고 표시됩니다. 주의 깊게 관찰한 결과 마우스가 범위에 들어가면 첫 번째 로그가 재생되고 떠난 후 두 번째 로그가 재생된다는 것을 알 수 있습니다. 즉, 마우스가 들어오고 나갈 때 OnHover()가 한 번 트리거됩니다.
그래서 나는 웃으면서 가짜 OnMouseEnter()와 OnMouseExit();
1 개인 부울 isEnter = false ; 2 3 무효 OnHover() 4 { 5 isEnter = ! isEnter; 6 if ( isEnter ) 7 { 8 OnMouseEnter ( ) ; 9 } 10 다른 11 { 12 OnMouseExit(); 13 } 14 } 15 비공개 무효 OnMouseEnter() 16 { 17 Debug.Log( ";Enter " ); 18 } 19 private void OnMouseExit() 20 { 21 Debug.Log( " Exit " ); 22 }
//2017년 8월 3일 20시 34분에 업데이트됨//
위의 방법 외에도 보다 정통적인 방법이 있습니다. EvenTrigger 구성 요소
그런 다음 스크립트를 해당 EvenDelegate로 드래그하고 해당 이벤트에 의해 실행될 메서드를 선택합니다.
스크립트로 동적으로 추가할 수도 있습니다.
1 UnityEngine 사용 ; 2 3 네임스페이스 Assets.Scripts 4 { 5 class EvenTriggerTest:MonoBehaviour 6 { 7 UIEventTrigger ET; 8 9 private void Start() 10 { 11 ET = GetComponent<UIEventTrigger> (); 12 EventDelegate EDHoverOver = new EventDelegate( this , " MyOnHoverOver " ); 13 ET.onHoverOver.Add(EDHoverOver); 14 } 15 16 private void MyOnHoverOver() 17 { 18 Debug.Log( " HoverOver " ); 19 } 20 } 21 }
재인쇄: https://www.cnblogs.com/Yukisora/p/7043360.html