最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity實現(xiàn)通用的信息提示框

 更新時間:2020年06月21日 17:02:07   作者:xiaochenXIHUA  
這篇文章主要為大家詳細介紹了Unity實現(xiàn)通用的信息提示框,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Unity實現(xiàn)信息提示框的具體代碼,供大家參考,具體內(nèi)容如下

1、創(chuàng)建一個信息提示框添加InfoTipsFrameScale腳本(然后將其制作為預制體)

2、編寫該信息提示框的控制腳本

/***
* Title:"智慧工廠" 項目
* 主題:全局層:提示框的動畫效果
* Description:
* 功能:實現(xiàn)提示框的縮放功能
* Date:2018
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Global;
using kernal;
using UnityEngine.UI;
 
namespace View
{
 public class InfoTipsFrameScale : Global_baseScalePopUp
 {
  private ScaleType _ScaleType = ScaleType.Scale;  //縮放類型為Scale
  public Button btnClose;   //關閉按鈕
  public Text text_TipsTitle;   //提示框的標題
  public Text text_TipsContent;  //提示框的內(nèi)容
 
 
 
  private void Start()
  {
   //注冊相關按鈕
   ResigterBtn();
  }
 
 
  //注冊按鈕
  /// <summary>
  /// 注冊相關按鈕
  /// </summary>
  public void ResigterBtn()
  {
   if (btnClose != null)
   {
    EventTriggerListener.Get(btnClose.gameObject).onClick += BtnCloseMethod;
   }
  }
 
  /// <summary>
  /// 縮放基礎設置
  /// </summary>
  public void BaseSettings()
 {
   //物體基礎縮放設置
   base.needScaleGameObject = this.gameObject.transform;
   base.needScaleGameObject.gameObject.SetActive(false);
   base.needScaleGameObject.localScale = new Vector3(0, 0, 0);
 
  }
 
 
 
  /// <summary>
  /// 開啟縮放
  /// </summary>
  public void StartScale()
  {
   this.gameObject.SetActive(true);
   //物體基礎縮放設置
   base.ScaleMenu();
  }
 
  /// <summary>
  /// 關閉按鈕的方法
  /// </summary>
  /// <param name="go"></param>
  private void BtnCloseMethod(GameObject go)
  {
   if (go==btnClose.gameObject)
   {
    //開啟縮放
    StartScale();
 
    //延遲銷毀物體
    Destroy(this.gameObject, Global_Parameter.INTERVAL_TIME_0DOT5);
   }
  }
 
  /// <summary>
  /// 顯示提示框的標題、提示信息內(nèi)容
  /// </summary>
  /// <param name="Tipstitle">提示的標題</param>
  /// <param name="TipsContents">提示的內(nèi)容</param>
  public void DisplayTipsFrameTextContent(string TipsContents,string Tipstitle = "信息提示")
  {
   if (text_TipsTitle!=null&&text_TipsContent!=null)
   {
    text_TipsTitle.text = Tipstitle;
    text_TipsContent.text = TipsContents;
   }
  }
 
 }//class_end
}
/***
* Title:"智慧工廠" 項目
* 主題:全局層:信息提示框的啟用與隱藏
* Description:
* 功能:實現(xiàn)提示信息框的加載、動畫顯示與隱藏(單例模式)
* Date:2018
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using kernal;
using View;
 
namespace Global
{
 public class InfoTipsFrame
 {
  private static InfoTipsFrame _Instance;  //本類實例
  private Transform _InfoTipsFrame;   //信息提示框
 
 
  /// <summary>
  /// 本類實例
  /// </summary>
  /// <returns></returns>
  public static InfoTipsFrame GetInstance()
  {
   if (_Instance==null)
   {
    _Instance = new InfoTipsFrame();
   }
   return _Instance;
  }
 
 
  /// <summary>
  /// 顯示信息提示框與內(nèi)容
  /// </summary>
  /// <param name="Tipstitle">提示的標題</param>
  /// <param name="TipsContents">提示的內(nèi)容</param>
  public void DisplayTipsFrameAndContents(GameObject infoTipsFrameParent, string TipsTitle, string TipsContents)
  {
   //獲取到信息提示框且顯示
   GetInfoTipFrame(infoTipsFrameParent, true);
   _InfoTipsFrame.GetComponent<InfoTipsFrameScale>().DisplayTipsFrameTextContent(TipsContents, TipsTitle);
  }
 
 
  /// <summary>
  /// 獲取到信息提示框
  /// </summary>
  /// <param name="infoTipsFrameParent">信息提示框的父物體</param>
  /// <param name="IsEnable">是否啟用</param>
  private void GetInfoTipFrame(GameObject infoTipsFrameParent,bool IsEnable)
  {
   _InfoTipsFrame = LoadPrefabs.GetInstance().GetLoadPrefab("TipsFrame/TipsFrame").transform;
   _InfoTipsFrame.parent = infoTipsFrameParent.transform.parent;
   _InfoTipsFrame.localPosition = new Vector3(0, 0, 0);
   _InfoTipsFrame.localScale = new Vector3(1, 1, 1);
   _InfoTipsFrame.gameObject.SetActive(IsEnable);
   if (IsEnable == true)
   {
    _InfoTipsFrame.GetComponent<InfoTipsFrameScale>().BaseSettings();
   }
   _InfoTipsFrame.GetComponent<InfoTipsFrameScale>().StartScale();
  }
 
  
 
 }//class_end
}

3、使用方法

/***
* Title:"XXX" 項目
* 主題:XXX
* Description:
* 功能:XXX
* Date:2017
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
 
using Global;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
namespace SimpleUIFrame
{
 public class Test_InfoTipsFrame : MonoBehaviour
 {
  public GameObject infoTipsFrameParent;
 
  void Start()
 {
 
 }
 
  private void Update()
  {
   if (Input.GetKeyDown(KeyCode.A))
   {
    //顯示信息提示框及其內(nèi)容
    InfoTipsFrame.GetInstance().DisplayTipsFrameAndContents(infoTipsFrameParent, "信息提示", "不存在上一頁數(shù)據(jù)");
   }
  }
 
 }
}

將該腳本添加到一個物體上(同時禁用做好的信息提示框),運行點擊鍵盤A即可出現(xiàn)該信息提示框

備注:

1、資源加載方法

/***
* Title:"智慧工廠" 項目
* 主題:資源加載方法
* Description:
* 功能:XXX
* Date:2018
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
namespace kernal
{
 public class LoadPrefabs 
 {
  private static LoadPrefabs _Instance;  //本腳本實例
 
 
 
  /// <summary>
  /// 本類實例
  /// </summary>
  /// <returns></returns>
  public static LoadPrefabs GetInstance()
  {
   if (_Instance==null)
   {
    _Instance = new LoadPrefabs();
   }
   return _Instance;
  }
 
  /// <summary>
  /// 加載預制體
  /// </summary>
  /// <param name="prefbasName">預制體路徑和名稱</param>
  /// <returns></returns>
  public GameObject GetLoadPrefab(string prefabsPathAndName)
  {
   //把資源加載到內(nèi)存中
   Object go = Resources.Load("Prefabs/" + prefabsPathAndName, typeof(GameObject));
   //用加載得到的資源對象,實例化游戲?qū)ο?,實現(xiàn)游戲物體的動態(tài)加載
   GameObject LoadPrefab =UnityEngine.MonoBehaviour.Instantiate(go) as GameObject;
 
   //Debug.Log("加載的預制體="+LoadPrefab);
   return LoadPrefab;
 
  }
 
 
 }//class_end
}

2、 通用縮放方法

/***
* Title:"醫(yī)藥自動化" 項目
* 主題:實現(xiàn)通用的物體縮放效果(父類)
* Description:
* 功能:實現(xiàn)物體的整體縮放、上下壓縮展開、左右壓縮展開動畫效果
* Date:2017
* Version:0.1版本
* Author:Coffee
* Modify Recoder:
*/
 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using kernal;
 
namespace Global
{
 public class Global_baseScalePopUp : MonoBehaviour
 {
  
  protected Transform needScaleGameObject;   //需要縮放的物體 
  protected float scaleMenuSpeed = 0.5F;   //縮放的移動速度
 
  private bool _IsScaleMark = false;   //物體縮放的標識 
 
  protected ScaleType scaleType = ScaleType.None; //默認縮放的類型
 
 
  public IEnumerator StartJudgeScaleType()
  {
   yield return new WaitForSeconds(Global_Parameter.INTERVAL_TIME_0DOT3);
 
   switch (scaleType)
   {
    case ScaleType.None:
     //_NeedScaleGameObject.localScale = new Vector3(1, 1, 1);
     break;
    case ScaleType.Scale:
     needScaleGameObject.localScale = new Vector3(0, 0, 0);
     break;
    case ScaleType.UpAndDown:
     needScaleGameObject.localScale = new Vector3(1, 0, 1);
     break;
    case ScaleType.LeftAndRight:
     needScaleGameObject.localScale = new Vector3(0, 1, 1);
     break;
    default:
     break;
   }
 
  }
 
  /// <summary>
  /// 放大與縮小彈出菜單
  /// </summary>
  public void ScaleMenu()
  {
   if (needScaleGameObject.gameObject != null)
   {
    if (_IsScaleMark == false)
    {
     needScaleGameObject.DOScale(new Vector3(1, 1, 1), scaleMenuSpeed);
     _IsScaleMark = true;
 
    }
    else
    {
     needScaleGameObject.DOScale(new Vector3(0, 0, 0), scaleMenuSpeed);
     _IsScaleMark = false;
     StartCoroutine("HideGameObject");
    }
   }
   else
   {
    Debug.LogError(GetType() + "/Start()/_NeedScaleGameObject " + needScaleGameObject.gameObject + " 物體不存在請檢查?。?!");
   }
  }
 
  /// <summary>
  /// 上下打開彈出菜單
  /// </summary>
  public void UpAndDown()
  {
   if (needScaleGameObject.gameObject != null)
   {
    if (_IsScaleMark == false)
    {
     needScaleGameObject.DOScale(new Vector3(1, 1, 1), scaleMenuSpeed);
     _IsScaleMark = true;
 
    }
    else
    {
     needScaleGameObject.DOScale(new Vector3(1, 0, 1), scaleMenuSpeed);
     _IsScaleMark = false;
     StartCoroutine("HideGameObject");
    }
   }
   else
   {
    Debug.LogError(GetType() + "/Start()/_NeedScaleGameObject " + needScaleGameObject.gameObject + " 物體不存在請檢查!??!");
   }
 
  }
 
  /// <summary>
  /// 左右打開彈出菜單
  /// </summary>
  public void leftAndRight()
  {
   if (needScaleGameObject.gameObject != null)
   {
    if (_IsScaleMark == false)
    {
     needScaleGameObject.DOScale(new Vector3(1, 1, 1), scaleMenuSpeed);
     _IsScaleMark = true;
 
    }
    else
    {
     needScaleGameObject.DOScale(new Vector3(0, 1, 1), scaleMenuSpeed);
     _IsScaleMark = false;
     StartCoroutine("HideGameObject");
    }
   }
   else
   {
    Debug.LogError(GetType() + "/Start()/_NeedScaleGameObject " + needScaleGameObject.gameObject + " 物體不存在請檢查?。?!");
   }
 
  }
 
 
  /// <summary>
  /// 隱藏游戲物體
  /// </summary>
  IEnumerator HideGameObject()
  {
   yield return new WaitForSeconds(scaleMenuSpeed);
   needScaleGameObject.gameObject.SetActive(false);
  }
 
  /// <summary>
  /// 基礎面板設置
  /// </summary>
  /// <param name="needScaleGo">需要縮放的物體</param>
  /// <param name="scaleType">物體縮放類型</param>
  /// <param name="scaleSpeed">縮放的速度</param>
  public void BasePanelSettings( GameObject needScaleGo,ScaleType scaleType, float scaleSpeed=0.3F)
  {
   //默認隱藏右側(cè)內(nèi)容區(qū)域
   if (needScaleGo != null)
   {
    needScaleGo.SetActive(false);
 
    //指定彈出菜單
    needScaleGameObject = needScaleGo.transform;
    //指定需要彈出菜單執(zhí)行的動畫類型
    this.scaleType = scaleType;
    StartCoroutine(StartJudgeScaleType());
    
    //物體縮放的速度
    scaleMenuSpeed = scaleSpeed;
 
   }
   else
   {
    Log.Write(GetType() + "/BtnOnClickEvent()/使用手冊面板中按鈕點擊對應的面板右側(cè)內(nèi)容不存在,請檢查" + needScaleGo + "物體");
   }
  }
 
 }//class_end
}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • C# 數(shù)組刪除元素的實現(xiàn)示例

    C# 數(shù)組刪除元素的實現(xiàn)示例

    本文主要介紹了C# 數(shù)組刪除元素的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C# using的本質(zhì)及使用詳解

    C# using的本質(zhì)及使用詳解

    這篇文章主要為大家介紹了C# using的本質(zhì)及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • WPF基礎教程之元素綁定詳解

    WPF基礎教程之元素綁定詳解

    這篇文章主要給大家介紹了關于WPF基礎教程之元素綁定的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • c#各種Timer類的區(qū)別與用法介紹

    c#各種Timer類的區(qū)別與用法介紹

    System.Threading.Timer 是一個簡單的輕量計時器,它使用回調(diào)方法并由線程池線程提供服務。在必須更新用戶界面的情況下,建議不要使用該計時器,因為它的回調(diào)不在用戶界面線程上發(fā)生
    2013-10-10
  • C#將字母或數(shù)字加密成字母的方法

    C#將字母或數(shù)字加密成字母的方法

    這篇文章主要介紹了C#將字母或數(shù)字加密成字母的方法,涉及C#操作字符串的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Netcore?Webapi返回數(shù)據(jù)的三種方式示例

    Netcore?Webapi返回數(shù)據(jù)的三種方式示例

    這篇文章主要為大家介紹了Netcore?Webapi返回數(shù)據(jù)的三種方式示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • C# 封裝HtmlHelper組件:BootstrapHelper

    C# 封裝HtmlHelper組件:BootstrapHelper

    這篇文章主要介紹了C# 封裝HtmlHelper組件之BootstrapHelper 的相關資料,需要的朋友可以參考下
    2016-08-08
  • C# 中的 is 真的是越來越強大越來越語義化(推薦)

    C# 中的 is 真的是越來越強大越來越語義化(推薦)

    這篇文章主要介紹了C# 中的 is 真的是越來越強大越來越語義化,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • C#的字符串比較

    C#的字符串比較

    這篇文章主要介紹了c# 字符串操作的相關知識,文中講解的非常詳細,代碼幫助大家更好的學習,感興趣的朋友可以參考下,希望能給你帶來幫助
    2021-07-07
  • C#實現(xiàn)字符串倒序遍歷的方法小結(jié)

    C#實現(xiàn)字符串倒序遍歷的方法小結(jié)

    這篇文章主要為大家詳細介紹了C#中實現(xiàn)字符串倒序遍歷的常見方法,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以參考下
    2024-02-02

最新評論

胶南市| 沽源县| 红河县| 麟游县| 苍溪县| 灵石县| 塔河县| 贵定县| 宁晋县| 台州市| 元谋县| 辽源市| 江华| 濮阳市| 鞍山市| 随州市| 栖霞市| 日土县| 盖州市| 石景山区| 库伦旗| 朝阳区| 准格尔旗| 新平| 昌乐县| 仙桃市| 云梦县| 常熟市| 浙江省| 特克斯县| 双桥区| 邵武市| 张北县| 北安市| 景洪市| 马龙县| 贵州省| 渭源县| 上犹县| 固始县| 樟树市|