Unity-鼠标悬停改变图像位置

教你如何使用Collider作为鼠标悬停的检测区域

📝 前言

之前的教程使用了默认的鼠标事件检测,但有时候我们需要更精确的交互区域控制。今天就来看看如何使用碰撞体(Collider)作为鼠标交互的检测范围,实现同样的悬停偏移效果。

🎯 最终效果

  • 鼠标进入碰撞体区域 → 子物体向左上偏移

  • 鼠标离开碰撞体区域 → 子物体恢复原位

  • 碰撞体可以是任意形状和大小

💻 最简代码实现

使用2D碰撞体的版本

cs 复制代码
using UnityEngine;

public class HoverEffect : MonoBehaviour
{
    public Transform child;
    private Vector3 originalPos;
    
    void Start()
    {
        originalPos = child.localPosition;
    }
    
    void OnMouseEnter()
    {
        child.localPosition = originalPos + new Vector3(-0.5f, 0.5f, 0);
    }
    
    void OnMouseExit()
    {
        child.localPosition = originalPos;
    }
}

代码解析:

  • OnMouseEnter() - 鼠标进入碰撞体时自动触发

  • OnMouseExit() - 鼠标离开碰撞体时自动触发

  • 代码会自动检测挂载在同一对象上的Collider组件

🔧 碰撞体设置步骤

1. 添加碰撞体组件

方法一:Box Collider 2D(矩形区域)

  • 选中物体 → Add Component → Physics 2D → Box Collider 2D

  • 调整Size控制检测区域大小

方法二:Circle Collider 2D(圆形区域)

  • Add Component → Physics 2D → Circle Collider 2D

  • 调整Radius控制检测范围

方法三:Polygon Collider 2D(自定义形状)

  • Add Component → Physics 2D → Polygon Collider 2D

  • 自动匹配精灵形状或手动编辑

⚠️ 重要注意事项

  1. 必须有碰撞体OnMouseEnter/Exit依赖碰撞体,没有就不会触发

  2. 2D vs 3D

    • 2D项目使用 Collider2D

    • 3D项目使用 Collider

    • 不能混用,否则不会触发事件

  3. 相机设置 :主相机必须要有 Physics RaycasterPhysics 2D Raycaster 组件

  4. Layer设置:确保物体所在的Layer在射线检测中】

🎮 运行测试

点击运行按钮!

如图所示,鼠标悬停卡牌移动

相关推荐
long_songs8 小时前
手柄键盘映射器【github链接见文末 】
python·游戏·计算机外设·pygame·软件推荐·手柄映射键盘
QYR_118 小时前
2026年显示器支架底座市场深度分析:人体工学升级与多屏协同下的产业机遇
计算机外设·市场调研
书到用时方恨少!8 小时前
计算机键盘各个按键功能及常用组合键详解
计算机外设·计算机基础·键盘按键·组合键
七夜zippoe9 小时前
OpenClaw 内置工具详解
unity·ai·游戏引擎·openclaw·内置工具
mxwin14 小时前
Unity Shader 细节贴图技术在不增加显存开销的前提下,有效提升近距离纹理细节的渲染质量
unity·游戏引擎·贴图
魔士于安15 小时前
unity 低多边形 动物 带场景 有氛围感
游戏·unity·游戏引擎·贴图
apcipot_rain16 小时前
【项目复现】音效键盘SoundKeyboard的复现经验
计算机外设
小贺儿开发16 小时前
Unity3D 摩斯与中文电码转换工具
科技·unity·人机交互·工具·实践·实用·科普应用
钛态17 小时前
Flutter 三方库 result_type 深入鸿蒙强类型返回栈跨界交互适配:肃清空指针回调与运行时崩溃、大幅增注接口安全壁垒且提升多隔离桥接数据抛出健壮性-适配鸿蒙 HarmonyOS ohos
flutter·交互·harmonyos
点云SLAM17 小时前
Qt+PCL手把手教材(第11讲)——PCL库PCLVisualizer点云可视化以及与 VTK 交互器(Interactor)详解和代码示例
人工智能·交互·3d数据可视化·pcl点云库·qt+pcl·pclvisualizer使用·vkt