using GFMain;
using HighlightPlus;
using System.Collections;
using System.Collections.Generic;
using UnityCommon;
using UnityEngine;
namespace DTYJ
{
///
/// 模型高亮控制
///
public class HighlighterController : MonoSingleton
{
private List Highlights = new List();
HighlightProfile highlightProfile;
private void Awake()
{
MainEntry.Resource.LoadAsset("Assets/_DTYJ/_Project/Res/Effects/Highlight_equipment.asset", typeof(HighlightProfile), new GameFramework.Resource.LoadAssetCallbacks((assetName, asset, duration, userData) =>
{
highlightProfile = asset as HighlightProfile;
}));
}
///
/// 打开高亮
///
///
public void HighlightOn(GameObject goTarget)
{
var h = goTarget.GetOrAddComponent();
h.ProfileLoad(highlightProfile);
h.highlighted = true;
Highlights.Add(goTarget);
}
///
/// 关闭高亮
///
///
public void HighlightOff(GameObject goTarget)
{
if (highlightConst.Contains(goTarget))
return;
_HighlightOff(goTarget);
Highlights.Remove(goTarget);
}
private void _HighlightOff(GameObject goTarget)
{
var h = goTarget.GetComponent();
if (h != null)
{
h.highlighted = false;
DestroyImmediate(h);
}
}
///
/// 关闭所有高亮
///
public void ClearAllHighlights()
{
foreach (var item in Highlights)
{
_HighlightOff(item);
}
Highlights.Clear();
}
List highlightConst = new List();
public void HighlightOn_const(GameObject goTarget)
{
highlightConst.Add(goTarget);
HighlightOn(goTarget);
}
public void HighlightOff_const(GameObject goTarget)
{
if (highlightConst.Contains(goTarget))
highlightConst.Remove(goTarget);
HighlightOff(goTarget);
}
}
}