【说两句有的没的】

  上周偶感风寒,静心养病,很多事情搁置了,这周一顿狂补- -,这两天才有时间好好记录下学习的一些东西。绝对不是又断更了(为什么加又?= =)

【概述】

  UGUI 系统虽然提供了很多封装好的组件,但是要实现一些特定的功能还是显得非常有限,这时候就需要使用事件接口来完成UI功能的实现。比如我们想实现鼠标移动到图片上时自动显示图片的文字介绍,一般思路会想到写个射线来检测,但其实这样的检测UGUI已经替我们完成了,我们只需要实现检测到目标对象后所要执行的代码即可!
   UI 组件都是基于 UGUI 封装好的类和接口以及一些 Editor 文件来进行封装制作供开发者使用的,开发者利用这些封装好的工具,只需更专注于功能开发即可。更令人兴奋的是, UGUI 的代码是开源的,开发者可以查阅 UGUI 系统的具体细节来进行更深入的学习。UGUI 源码传送门:Unity-Technologies/UI
   在后续的案例中会利用各种接口的搭配实现一个个小案例,Unity官方也为开发者提供了很多完整的案例,可以在 Assets Store上进行下载,搜索“Unity Samples: UI”。

【准备工作】

事件系统:

  UnityEngine.EventSystems;

事件触发条件:

  对象或其子对象所附加的 UI 组件含有 Raycast Target 属性(为 true),且鼠标光标进入该对象的 Rect 范围时,该对象会触发事件。

常用UI组件:

  Image 组件,Text 组件

其他说明:

  1、对象必须是 Canvas 的子对象;

  2、对象必须有 Rect 范围;

  3、鼠标的操作不分左键 中键 右键;

  4、如果该对象实现事件接口,而其子对象所附加的 UI 组件含有 Raycast Target 属性且没有实现事件接口,那么只有该对象会触发事件,而其子对象不会触发事件;

  5、当该对象和其子对象同时具有触发事件接口的条件时,如果该对象的 Rect 范围被其子对象的 Rect 范围完全覆盖掉,则该对象不会触发事件,只有其子对象会触发事件。

  6、上文所指的 Rect 范围如下图所示:

  

unity 接口放在哪个文件夹_开发者