Unity에서 마우스에 반응하는 NGUI 그림 스프라이트 방식에 대해

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

추천

출처blog.csdn.net/a1808508751/article/details/101353085