高亮顯示腳本

/******************************************************************************
 * 
 * Logs:
 * 2017-2-10  mx  Initial version:Added API SwithHightlightAPI()
 * 
 *
 ******************************************************************************/


using HighlightingSystem;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// 將此腳本掛載到需要高亮的物體上
/// required package: Highlighting System
/// </summary>
public class HighlightObject : MonoBehaviour
{
    protected Highlighter h;

    public enum HighlightType
    {
        Once,//變化一次
        Constant,//持續(xù)
        Flash//閃爍
    }

    public Color highlightColor = Color.red;

    void Awake()
    {
        h = gameObject.AddComponent<Highlighter>();
        if (Camera.main.GetComponent<HighlightingRenderer>() == null)
        {
            Camera.main.gameObject.AddComponent<HighlightingRenderer>();
        }
    }

    /// <summary>
    /// API:修改物體是否開啟高亮
    /// </summary>
    /// <param name="showHightlight">是否開啟高亮</param>
    public void SwithHightlight(bool showHightlight)
    {
        SwithHightlight(showHightlight, HighlightType.Once);
    }

    /// <summary>
    /// API:修改物體是否開啟高亮
    /// </summary>
    /// <param name="showHightlight">是否開啟高亮</param>
    /// <param name="type">高亮類型</param>
    public void SwithHightlight(bool showHightlight, HighlightType type)
    {
        switch (type)
        {
            case HighlightType.Once:
                if (showHightlight)
                    h.ConstantOnImmediate(highlightColor);
                else
                    h.ConstantOffImmediate();
                break;

            case HighlightType.Constant:
                if (showHightlight)
                    h.ConstantOn(highlightColor);
                else
                    h.ConstantOff();
                break;

            case HighlightType.Flash:
                if (showHightlight)
                    h.FlashingOn(highlightColor, new Color(0, 0, 0, 0));
                else
                    h.FlashingOff();
                break;
        }
    }

    #region 測試:QWE鍵控制高亮類型
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q))
        {
            SwithHightlight(true);
        }
        else if (Input.GetKeyUp(KeyCode.Q))
        {
            SwithHightlight(false);
        }
        if (Input.GetKeyDown(KeyCode.W))
        {
            SwithHightlight(true, HighlightType.Constant);
        }
        else if (Input.GetKeyUp(KeyCode.W))
        {
            SwithHightlight(false, HighlightType.Constant);
        }
        if (Input.GetKeyDown(KeyCode.E))
        {
            SwithHightlight(true, HighlightType.Flash);
        }
        else if (Input.GetKeyUp(KeyCode.E))
        {
            SwithHightlight(false, HighlightType.Flash);
        }
    }
    #endregion

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容