HighLighting System插件的使用以及一些问题

来源:互联网 发布:电脑编程多久能学会 编辑:程序博客网 时间:2024/06/05 18:33

笔者使用的是V4.0版本,使用起来十分方便

1.给需要产生高亮效果的物体添加Highlighter脚本

2.给摄像机添加HighlightingRenderer脚本

3.自己写控制脚本,调用Highlighter脚本里对应的的函数即可

如果想自己设置颜色等,只需要利用重载添加相应参数


以下是我写的脚本,挂在目标物体上

需要给摄像机添加Physics Raycaster组件

摄像机看到时,目标物体即高亮


using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using System;


namespace HighlightingSystem  //必须有,命名空间

{
    public class EayChoose : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
    {

        public Highlighter m_highlighter;

        void Start()
        {
            m_transform = this.transform;
            m_highlighter = m_transform.GetComponent<Highlighter>();//获得Highlighter脚本组件
        }

        public void OnPointerEnter(PointerEventData eventData)
        {
            
            StartHighLight();
        }

        public void OnPointerExit(PointerEventData eventData)
        {
            EndHighLight();
        }

        void StartHighLight()
        {
            m_highlighter.FlashingOn();//调用Highlighte脚本的开始高亮函数
        }

        void EndHighLight()
        {
            m_highlighter.FlashingOff();//调用Highlighte脚本的结束高亮函数

        }
    }
}



使用这个插件时发现有的机器需要将Edit/Graphics Emulations设为No Emulation

否则会出现整体高亮的错误

但是这样对于Android2.0以下的可能无法使用


还有一个问题笔者并没有解决:分屏的时候,有时只有一个摄像机产生高亮效果,不知怎么解决

希望会的同志能够不吝赐教


问题算是解决了,之前调用的是FlashingOn()函数,改为调用ConstantOn(),没有高亮效果,也勉强能达到预期效果


又发现一种“解决”方案,这种方案降低了单屏渲染的几率,有时候仍会单屏渲染,但保留了预期的闪亮的效果:
方法是将摄像机的Highlighting Render方法在需要时enable设为True,不需要时设为false



2 0