当前位置: 首页 > news >正文

大学生作业做网站绍兴网站制作

大学生作业做网站,绍兴网站制作,纺织网站建设方案,六安建设局网站#x1f468;‍#x1f4bb;个人主页#xff1a;元宇宙-秩沅 #x1f468;‍#x1f4bb; hallo 欢迎 点赞#x1f44d; 收藏⭐ 留言#x1f4dd; 加关注✅! #x1f468;‍#x1f4bb; 本文由 秩沅 原创 #x1f468;‍#x1f4bb; 收录于专栏#xff1a;UI_… ‍个人主页元宇宙-秩沅 ‍ hallo 欢迎 点赞 收藏⭐ 留言 加关注✅! ‍ 本文由 秩沅 原创 ‍ 收录于专栏UI_Unity专栏 ⭐UI程序袁⭐ 文章目录 ⭐UI程序袁⭐前言1开始面板LoginPanel 脚本2提示面板TipPanel 脚本优化后的面板基类BasePanel优化后的Mono管理器 ⭐相关文章⭐ 前言 ️ **** 1开始面板LoginPanel 脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; //------------------------------------- //————————————————————————————————————— //___________项目: ______________ //___________功能 开始面板 //___________创建者秩沅_______________ //_____________________________________ //------------------------------------- public class LoginPanel : BasePanel {private CanvasGroup PanelGroup;// Start is called before the first frame updateprivate void Awake(){PanelGroup GetComponentCanvasGroup();if (!PanelGroup){PanelGroup gameObject.AddComponentCanvasGroup();}}protected override void Start(){base.Start();AllEvent();}/// summary/// 重写隐藏方法/// /summarypublic override void HideMe(){Fade(false, PanelGroup);//进行淡出的效果base.HideMe();}/// summary/// 添加控件监听事件/// /summaryprivate void AllEvent(){try{GetControlButton(ButtonS).onClick.AddListener(() {Debug.Log(GetControlInputField(InputAC).text);//如果账号密码为空if (GetControlInputField(InputAC).text GetControlInputField(InputAC).text ){ UIManager.GetInstance().ShowPanelTipPanel(TipPanel); //显示提示面板}});}catch{Debug.Log(没有获取到);}} } 2提示面板TipPanel 脚本 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; using UnityEngine.UI; //------------------------------------- //————————————————————————————————————— //___________项目: //___________功能 提示面板 //___________创建者_______秩沅_____ //_____________________________________ //-------------------------------------public class TipPanel : BasePanel {private CanvasGroup PanelGroup;private UnityAction evnetListen ;private void Awake(){PanelGroup GetComponentCanvasGroup();if (!PanelGroup){PanelGroup gameObject.AddComponentCanvasGroup();}}protected override void Start(){base.Start();//添加点击事件GetControlButton(BtuSure).onClick.AddListener((){UIManager.GetInstance().RemovePanel(TipPanel);});}/// summary/// 重写的显示方法/// /summarypublic override void ShowMe(){Fade(true, PanelGroup);base.ShowMe();}/// summary/// 重写的隐藏方法/// /summarypublic override void HideMe(){Fade(false, PanelGroup);base.HideMe();}/// summary/// 提供给外部改变提示文本内容的方法/// /summary/// param namecomponent/parampublic void ChangComponent(string component){GetControlText(ContentText).text component;} } 优化后的面板基类BasePanel using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;/// summary /// 面板基类 /// 帮助我门通过代码快速的找到所有的子控件 /// 方便我们在子类中处理逻辑 /// 节约找控件的工作量 /// /summary public class BasePanel : MonoBehaviour {//通过里式转换原则 来存储所有的控件private Dictionarystring, ListUIBehaviour controlDic new Dictionarystring, ListUIBehaviour();// Use this for initializationprotected virtual void Start (){FindChildrenControlButton();FindChildrenControlImage();FindChildrenControlText();FindChildrenControlToggle();FindChildrenControlSlider();FindChildrenControlScrollRect();FindChildrenControlInputField();}/// summary/// 显示自己/// /summarypublic virtual void ShowMe(){gameObject.SetActive(true);}/// summary/// 隐藏自己/// /summarypublic virtual void HideMe(){gameObject.SetActive(false);}/// summary/// 销毁自己/// /summarypublic virtual void RemoveMe(){Destroy(gameObject);}/// summary/// 得到对应名字的对应控件脚本/// /summary/// typeparam nameT/typeparam/// param namecontrolName/param/// returns/returnsprotected T GetControlT(string controlName) where T : UIBehaviour{if(controlDic.ContainsKey(controlName)){for( int i 0; i controlDic[controlName].Count; i ){if (controlDic[controlName][i] is T){Debug.Log(获取到了 controlName);return controlDic[controlName][i] as T;}else{Debug.Log(未获取到 );}}}return null;}/// summary/// 找到面板中子对象的对应控件/// /summary/// typeparam nameT/typeparamprivate void FindChildrenControlT() where T:UIBehaviour{//把相同类型的空间脚本存储在数组当中T[] controls this.GetComponentsInChildrenT(); for (int i 0; i controls.Length; i){string objName controls[i].gameObject.name;if (controlDic.ContainsKey(objName))controlDic[objName].Add(controls[i]);elsecontrolDic.Add(objName, new ListUIBehaviour() { controls[i] });//那如果包含多个相同的空间并且每个空间执行的逻辑都不一样那该怎么优化觉得还是取消这个代码好//除非在这些相同的控件中执行的功能都是一样的//如果是按钮控件//if(controls[i] is Button)//{// (controls[i] as Button).onClick.AddListener(()// {// OnClick(objName);// });//}如果是单选框或者多选框//else if(controls[i] is Toggle)//{// (controls[i] as Toggle).onValueChanged.AddListener((value) // {// OnValueChanged(objName, value);// });//}}}/// summary/// 淡入淡出的效果/// /summarypublic void Fade( bool flag , CanvasGroup Panel){if (flag){Panel.alpha 0;MonoManager.GetInstance().RemoveUpdateListener(fadeOut);MonoManager.GetInstance().AddUpdateListener(fadeIn, () {if(Panel ! null )Panel.alpha Mathf.Lerp(Panel.alpha, 1, Time.deltaTime * 5);});}else{MonoManager.GetInstance().RemoveUpdateListener(fadeIn);MonoManager.GetInstance().AddUpdateListener(fadeOut, () {if (Panel ! null)Panel.alpha Mathf.Lerp(Panel.alpha, 0, Time.deltaTime * 5);});}}} 优化后的Mono管理器 using System.Collections; using System.Collections.Generic; using System.ComponentModel; using UnityEngine; using UnityEngine.Events;public class MonoManager : SingleManagerMonoManager {private MonoController controller;public MonoManager(){//保证了MonoController对象的唯一性GameObject obj new GameObject(MonoController);controller obj.AddComponentMonoController();}/// summary/// 给外部提供的 添加帧更新事件的函数/// /summary/// param namefun/parampublic void AddUpdateListener(string name ,UnityAction fun){controller.AddUpdateListener(name,fun);}/// summary/// 提供给外部 用于移除帧更新事件函数/// /summary/// param namefun/parampublic void RemoveUpdateListener(string name){controller.RemoveUpdateListener(name);} using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events;public class MonoController : MonoBehaviour {private Dictionarystring, UnityAction eventDic new Dictionarystring, UnityAction();// Use this for initializationvoid Start () {DontDestroyOnLoad(this.gameObject);}// Update is called once per framevoid Update () {foreach( UnityAction monoEvent in eventDic.Values ){if (monoEvent ! null)monoEvent();}}/// summary/// 给外部提供的 添加帧更新事件的函数/// /summary/// param namefun/parampublic void AddUpdateListener(string name ,UnityAction fun){if(eventDic.ContainsKey(name)){eventDic[name] fun;}else{if(fun ! null )eventDic.Add(name, fun);}// updateEvent fun;}/// summary/// 提供给外部 用于移除帧更新事件函数/// /summary/// param namefun/parampublic void RemoveUpdateListener(string name){if (eventDic.ContainsKey(name)){eventDic.Remove(name);}else{Debug.Log(未添加过该事件);}} } ⭐相关文章⭐ ⭐ 软件设计师高频考点大全⭐ ⭐ unity之c#专题篇—系统强基⭐ 你们的点赞 收藏⭐ 留言 关注✅是我持续创作输出优质内容的最大动力
http://www.hkea.cn/news/14420645/

相关文章:

  • wordpress建站 云打印肇庆网站推广排名
  • 做网站一定要有空间吗网站建设kpi考核
  • 企业建设网站应该一般多少钱东营在建项目
  • 制作网站river小程序代理商有哪些
  • 教学信息化大赛网站建设作品WordPress添加工单功能
  • 自己做的砍价网站设计的比较好的网站
  • 北京做网站s那个软件可以做网站
  • 网站备案后需要年检吗电子商务网站建设讯息
  • 网站建设为什么要全款wordpress 评论内容
    标签 显示html
    
  • 黄冈网站推广软件自己的网站怎么样推广优化
  • 网站建站的步骤临沂网站公众号建设
  • 基于lamp网站建设实例做网站推广的一般都是什么公司
  • 找做网站公司wordpress导航特效
  • 响应式相册网站软件外包项目网站
  • 网站建设与管理课程设计wordpress调用分类目录代码
  • html网站发布大型网站架设需要考虑哪些问题
  • 网站建设公司价深圳网站设计 三把火科技
  • 做网站实例用手机看网站源代码
  • 66郑州网站建设初学者自己做网站
  • j建设网站需要的工具国内做的比较好的旅游网站
  • 互联网做网站的话术浅谈电子商务网站建设与规划
  • 益阳 网站制作维护wordpress编辑写文章失败
  • 电子商务网站建设的代码东莞松山湖华为小镇
  • 网站建设的指导思想网站建设需求分析表怎么写
  • 织梦网站博客模板wordpress静态路由
  • 单位有公网ip怎么做网站网址导航大全软件下载
  • 用mediawiki做的网站wordpress图片排列显示
  • 做一个新公司网站要多少钱郴州网站建设公司有哪些
  • 建平台网站你做的网站会不会被人模仿
  • 矿山建设工程公司网站手机网站竞价单页