Unity 鼠标碰撞检测 物体闪烁 HighLighting

    提示:源码附在文后~大家互相学习

 

目录

前言

一、组件结构

1. 项目结构

 2.场景介绍

二、功能实现

总结


前言

Unity系统开发过程中,时常会有鼠标放置在某一物体上,物体高亮显示、闪烁等效果。其实实现起来比较简单。使用HighlightingSystem小组件即可。所以整理出组件,方便每次使用!大家共同学习!


一、组件结构

1. 项目结构

 2.场景介绍

        场景中给相机上绑定HighlightingEffect脚本。

         为所有需要单独发光的物体,均绑定HighlightableObject脚本。并增加碰撞盒,用于检测鼠标碰到物体。

 

二、功能实现

        我们自己控制的脚本LightingManager,绑定在闪烁物体组上,对闪烁物体进行整体管理。

         鼠标放置,检测碰撞到物体,则打开物体的闪烁功能。所有物体均装入highlightableObjects中,用于控控制闪烁、取消闪烁。

void Update()
    {
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        bool isCollider = Physics.Raycast(ray, out RaycastHit hitInfo);
        if (isCollider)
        {
            Color startColor = new Color();
            if (hitInfo.collider.name.Contains("Blue"))
            {
                startColor = Color.blue;
            }
            else if (hitInfo.collider.name.Contains("Yellow"))
            {
                startColor = Color.yellow;
            }
            else if (hitInfo.collider.name.Contains("Red"))
            {
                startColor = Color.red;
            }
            //绑定高光组件
            HighlightableObject highlightable = hitInfo.transform.GetComponent<HighlightableObject>();
            //打开发光特效
            highlightable.FlashingOn(startColor, new Color(0, 1, 1, 0));

            highlightableObjects.Add(highlightable);
            highlightableObjects.ForEach(v =>
            {
                if (v != highlightable)
                {
                    v.FlashingOff();
                }
            });
        }
    }

总结

组件结构简单,层级明朗,便于理解。可更改ui和尺寸用于不同场合。个人总结归纳,便于使用。避免重复造轮子~~~

CSDN组件下载:https://download.csdn.net/download/u014641682/87631389

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值