我是靠谱客的博主 仁爱乌龟,这篇文章主要介绍unity 通过OnMouseEnter(),OnMouseExit()实现鼠标悬停时各种效果(UI+3D物体)一、3D物体二、UI,现在分享给大家,希望可以做个参考。

OnMouseEnter()   鼠标进入

OnMouseExit()   鼠标离开

 

一、3D物体

OnMouseEnter(),OnMouseExit()都是通过collider触发的,且碰撞器不能是trigger,鼠标进入,或离开collider时,自动调用这两个函数。

另外,OnMouseOver()类似,与OnMouseEnter()区别是,OnMouseOver()会当鼠标在该物体上collider内时,每帧调用1次,OnMouseEnter()仅在鼠标进入时调用1次。

 

二、UI

UI部分通过eventTrigger组件实现类似功能

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;//使用text,image组件 public class eventTriggrtTest : MonoBehaviour { public Image image; float ColorAlpha = 0f;//图片透明程度 public float speed = 0.75f; bool flag = false; private void Start() { image.GetComponent<Image>().color = new Color(255, 255, 255, ColorAlpha); } void Update() { // Debug.Log("OnMouseEnter"); if(flag == true) { if (ColorAlpha <= 0.75) { ColorAlpha += Time.deltaTime * speed; image.GetComponent<Image>().color = new Color(255, 255, 255, ColorAlpha); } } Debug.Log(ColorAlpha); } public void OnMouseEnter() { flag = true; } public void OnMouseExit() { // Debug.Log("OnMouseExit"); flag = false; ColorAlpha = 0; image.GetComponent<Image>().color = new Color(255, 255, 255, ColorAlpha); } }

 因UI无法使用OnMouseOver(),所以想实现渐变效果,可通过添加一个bool flag判断,在update()方法中实现逐帧渐变效果。

 

最后

以上就是仁爱乌龟最近收集整理的关于unity 通过OnMouseEnter(),OnMouseExit()实现鼠标悬停时各种效果(UI+3D物体)一、3D物体二、UI的全部内容,更多相关unity内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部