zoukankan      html  css  js  c++  java
  • unity ui中使用onmouseover

    unity ui中鼠标移进或者移出的触发方式与2d、3d的不同,2d、3d物体使用的是onmouseover,ui使用的是OnPointerEnter。需要实现以下两个接口。

    public class TrackMouse: MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
    {
        // Called when the pointer enters our GUI component.
        // Start tracking the mouse
        public void OnPointerEnter( PointerEventData eventData )
        {
            StartCoroutine( "TrackPointer" );          
        }
     
        // Called when the pointer exits our GUI component.
        // Stop tracking the mouse
        public void OnPointerExit( PointerEventData eventData )
        {
            StopCoroutine( "TrackPointer" );
        }
     
        IEnumerator TrackPointer()
        {
            var ray = GetComponentInParent<GraphicRaycaster>();
            var input = FindObjectOfType<StandaloneInputModule>();
     
            if( ray != null && input != null )
            {
                while( Application.isPlaying )
                {                  
                    Vector2 localPos; // Mouse position  
                    RectTransformUtility.ScreenPointToLocalPointInRectangle( transform as RectTransform, Input.mousePosition, ray.eventCamera, out localPos );
                         
                    // local pos is the mouse position.
                         
                    yield return 0;
                }      
            }
            else
                UnityEngine.Debug.LogWarning( "Could not find GraphicRaycaster and/or StandaloneInputModule" );      
        }
    }
     
    

      原文出自unity官方论坛,详情可以查看https://forum.unity.com/threads/problem-with-onmousedown-onmouseover-in-ui.326096/

  • 相关阅读:
    [NOI2001]炮兵阵地
    POJ 2411 Mondriaan's Dream
    【模板】割点(割顶)
    [Noip2007]Core树网的核
    2018.09.09模拟总结
    2018.09.08模拟总结
    [USACO11JAN]Roads and Planes
    最优贸易
    [USACO08JAN]Telephone Lines
    Calabash(葫芦娃)
  • 原文地址:https://www.cnblogs.com/zhoushiya/p/12208548.html
Copyright © 2011-2022 走看看