Untiy3D使用HighlightingSystem插件实现鼠标移动到物体物体高亮效果

插件分享:

链接:https://pan.baidu.com/s/1huncAc0

密码:krde

//插件导入时如若报错,将错误行代码注释掉即可

1.在场景摄像机上挂载 Highlighting Effect 脚本,用于渲染外发光

2.在需要外发光效果的物体上添加 HighlightableObject 脚本,用于外发光效果显示

//HighLightControl脚本为本人自己编写的脚本便于控制,大家可忽略

3.进行外发光的触发开始与结束代码实现


/***************************************************
 * 项目名称:外发光组件学习
 * 创建人:魔卡先生
 * 创建时间:2018.01.20
 * 脚本功能描述:外发光功能实现
 * 
 * 脚本修改:    修改人         修改时间        修改内容
 * 
*****************************************************/
using UnityEngine;
using System.Collections;

public class HighLightControl : MonoBehaviour
{

    //持有当前外发光需要的组件
    private HighlightableObject m_ho;

    void Awake()
    {
        //初始化组件
        m_ho = GetComponent<HighlightableObject>();
    }


    void HifhLightFunction()
    {
        //循环往复外发光开启(参数为:颜色1,颜色2,切换时间)
        m_ho.FlashingOn(Color.green, Color.blue, 1f);

        //关闭循环往复外发光
        m_ho.FlashingOff();


        //持续外发光开启(参数:颜色)
        m_ho.ConstantOn(Color.yellow);

        //关闭持续外发光
        m_ho.ConstantOff();
    }

    /// <summary>
    /// 鼠标指向模型时触发
    /// </summary>
    private void OnMouseEnter()
    {
        //开启外发光
        m_ho.FlashingOn(Color.green, Color.blue, 1f);
    }

    /// <summary>
    /// 鼠标离开模型时触发
    /// </summary>
    private void OnMouseExit()
    {
        //关闭外发光
        m_ho.FlashingOff();
    }
}

4.效果图如下

备注:
//获取到鼠标在世界空间的位置
                Vector3 MousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition + new Vector3(0, 0, 10));
                //计算鼠标与目标点的位置
                float dis = (MousePos - target.transform.position).magnitude;

转自:https://www.cnblogs.com/mrmocha/p/8320994.html

猜你喜欢

转载自blog.csdn.net/xiaochenXIHUA/article/details/80372706