一、实现目标
点击悬停对象显示具体信息
二、实现方法
重要函数
Input.GetMouseButtonDown(0) -- 检测鼠标左键
HoverClickCanvas.gameObject.SetActive(true) -- 设置对象显示
void OnMouseEnter() -- 监听鼠标进入
void OnMouseExit() -- 监听鼠标退出
第一步:创建脚本 - MouseHoverEffect.cs
///
///功能 点击悬停对象显示具体信息
///
///
//version - 0.1
using UnityEngine;
public class MouseHoverEffect : MonoBehaviour
{
public Canvas HoverClickCanvas;
public float hoverScale = 1.2f; // 鼠标悬停时的缩放比例
private Vector3 originalScale; // 物体原始的缩放比例
private bool isMouseEnter = false;
void Start()
{
HoverClickCanvas.gameObject.SetActive(false);
originalScale = transform.localScale; // 初始化原始缩放比例
}
private void Update()
{
if (isMouseEnter)
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("鼠标左键被按下");
HoverClickCanvas.gameObject.SetActive(true);
}
}
}
void OnMouseEnter()
{
// 当鼠标进入物体时,放大物体
isMouseEnter = true;
transform.localScale = originalScale * hoverScale;
}
void OnMouseExit()
{
// 当鼠标离开物体时,恢复原来的缩放比例
isMouseEnter = false;
transform.localScale = originalScale;
}
}
第二步:将脚本添加到对应对象。
第三步:创建Canvas -- 包含多个对象
三、结果测试
当鼠标悬停在对象上是,对象放大,再点击时,显示Canvas。
四、结果分析
此时会发现,鼠标仍然可以和Canvas外进行交互,这也不符合预期的情况。