首页 > 其他分享 >Unity的UnityEngine.EventSystems中的接口

Unity的UnityEngine.EventSystems中的接口

时间:2024-05-21 14:59:16浏览次数:28  
标签:UnityEngine 鼠标 void PointerEventData Unity EventSystems Debug public Log

一、 IPointerDownHandler,IPointerUpHandler,IPointerClickHandler,IPointerEnterHandler,IPointerExitHandler

public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("OnPointerClick,鼠标点击,在点击之后抬起时响应");
    }

    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("OnPointerDown,鼠标在UI上按下时候响应");
    }

    public void OnPointerUp(PointerEventData eventData)
    {
        Debug.Log("OnPointerUp,鼠标在UI上抬起时候响应");
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        Debug.Log("OnPointerEnter,鼠标光标进入UI范围瞬间响应");
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        Debug.Log("OnPointerExit,鼠标光标离开UI范围瞬间响应");
    }

二、

IBeginDragHandler, IDragHandler, IEndDragHandler

public void OnBeginDrag(PointerEventData eventData)
    {
        Debug.Log("OnBeginDrag,鼠标拖动动作开始的瞬间执行一次");
    }

    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("OnDrag,鼠标拖动过程中每帧调用");
    }

    public void OnEndDrag(PointerEventData eventData)
    {
        Debug.Log("OnEndDrag,鼠标拖动动作松开的时候调用一次");
    }

三、

IsPointerOverGameObject

public class EventSystemTest : MonoBehaviour
{
    void Update()
    {
        if (EventSystem.current.IsPointerOverGameObject())
        {
            Debug.Log("鼠标光标处在UI上方每帧调用");
        }
    }
}

四、

鼠标点击处,屏幕上一点的UI层数 EventSystem.current.RaycastAll()

//点击区域碰撞数
        public static bool IsPointerOverUIObject(Vector2 screenPosition)
        {
            PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);
            eventDataCurrentPosition.position = screenPosition;
            List<RaycastResult> results = new List<RaycastResult>();
            EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
            return results.Count > 5;
        }

 

标签:UnityEngine,鼠标,void,PointerEventData,Unity,EventSystems,Debug,public,Log
From: https://www.cnblogs.com/weigangblog/p/18204046

相关文章

  • Unity编辑器Scene窗口快捷操作
    1.按住crtl,可以一个一个单位移动、缩放、旋转物体,单位距离在Edit-Snapsetting中设置,设置单位大小2.选中物体,按住alt+鼠标左键,可以环视目标物体3.按住V键,可以将物体的顶点接到其他物体的顶点 如果要设置更改其他在Scene窗口中的操作,可以利用MonoBehaviour下的OnDrawGizmos或......
  • Unity控制台console打印富文本
    可以用来控制Debug打印文本的 加粗斜体大小颜色Debug.Log("HelloWorld".AddBoldTag().AddColorTag("red"));publicstaticclassStringTagExt{publicstaticstringAddBoldTag(thisstringtext){returntext.AddTag("b");}......
  • Unity物体之间碰撞检测的方法
    检测碰撞有两种方式,一种是利用碰撞器,另外一种就是触发器。碰撞器的种类:1.StaticCollider静态碰撞器指的是相互碰撞的两个物体没有附加刚体而只附加了Collider的游戏对象。这类对象在碰撞时会保持静止,发生碰撞时不会触发任何的方法函数。 2.RigidbodyCollider刚体碰撞器......
  • Unity WebGL的一些配置
    添加自定义值方法:在网页模板中,添加<title>公司名字|{{{PROJECT_NAME}}}</title>///读取PlayerSettings.GetTemplateCustomValue("PROJECT_NAME");///设置PlayerSettings.SetTemplateCustomValue("PROJECT_NAME","这是一个自定义值");修改WebGL模板说......
  • Arch Linux CN Community repo mirrors list
    kate /etc/pacman.conf/etc/pacman.d/mirrorlist ##Ourmainserver(Amsterdam,theNetherlands)(ipv4,ipv6,http,https)[archlinuxcn]Server=https://repo.archlinuxcn.org/$arch ##CERNET(中国)(ipv4,ipv6,http,https)##Added:2023-08-19##Thiswill......
  • Unity优化总结(2021.04.08)
    项目性能优化的三个方面:1.CPU优化Cpu优化不够会出现的问题:由于短时间计算量太大,画面流畅性降低,出现跳帧发热严重,耗电量高(1)代码方面删除一些空的方法,尤其是Update等;使用for循环代替foreach,使用List代替ArrayList,尽量少使用封箱拆箱操作;循环中可以Break掉的直接退出循......
  • Unity性能优化CPU优化
    CPU主要进行计算机的各种计算操作,因此关于CPU性能优化的方面和Tips有很多,有些影响大有些影响小,有些容易优化有些不易优化,细节方面也有很多,归类之后重点讲几个方面,并列出常见Tips。对CPU性能影响比较大的主要有以下几个方面:DrawCalls,物理组件,GC,代码质量,其中DrawCall是CPU优化最先......
  • Unity性能优化GPU渲染优化
    GPU优化不够容易出现1.发热严重,耗电量高2.FPS降低GPU优化的方向:1.像素的复杂度,比如实施阴影(手游中禁用),复杂的shader2.顶点过多,也就是模型面数多、复杂3.GPU的显存带宽 一、优化美术资源1)合理规划图集2)约定好模型的最大三角形面数3)制定合理的粒子效果规范4)减少模型数......
  • Unity性能优化内存优化
    如何优化内存?1.压缩自带类库;2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;3.释放AssetBundle占用的资源;4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;5.使用光照贴图;6.使用多层次细节(LOD);7.使用着色器(Shader);8.使用预设(Prefab)等。 内存开......
  • Unity内存优化(来自uwa)
    内存优化——“勿以善小而不为,勿以恶小而为之” 资源内存占用一、纹理资源纹理资源可以说是几乎所有游戏项目中占据最大内存开销的资源。一个6万面片的场景,网格资源最大才不过10MB,但一个2048x2048的纹理,可能直接就达到16MB。因此,项目中纹理资源的使用是否得当会极大地影响......