您的位置:首页 > 移动开发 > Unity3D

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

2016-09-09 09:41 731 查看
笔者使用的是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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity3d