笔者使用的是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