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

做视频网站用什么语言网络营销的主要内容有哪些

做视频网站用什么语言,网络营销的主要内容有哪些,站群子网站开发,网站页脚怎么做能好看点UI基类BasePanel 负责帮助我们通过代码快速的找到所有的子控件&#xff0c;方便我们在子类中处理逻辑&#xff0c;节约找控件的工作量。 public class BasePanel : MonoBehaviour {//通过里式转换原则 来存储所有的控件private Dictionary<string, List<UIBehaviour>…

UI基类BasePanel

负责帮助我们通过代码快速的找到所有的子控件,方便我们在子类中处理逻辑,节约找控件的工作量。

public class BasePanel : MonoBehaviour
{//通过里式转换原则 来存储所有的控件private Dictionary<string, List<UIBehaviour>> controlDic = new Dictionary<string, List<UIBehaviour>>();// Use this for initializationprotected virtual void Awake () {FindChildrenControl<Button>();FindChildrenControl<Image>();FindChildrenControl<Text>();FindChildrenControl<Toggle>();FindChildrenControl<Slider>();FindChildrenControl<ScrollRect>();FindChildrenControl<InputField>();}/// <summary>/// 显示自己/// </summary>public virtual void ShowMe(){}/// <summary>/// 隐藏自己/// </summary>public virtual void HideMe(){}protected virtual void OnClick(string btnName){}protected virtual void OnValueChanged(string toggleName, bool value){}/// <summary>/// 得到对应名字的对应控件脚本/// </summary>/// <typeparam name="T"></typeparam>/// <param name="controlName"></param>/// <returns></returns>protected T GetControl<T>(string controlName) where T : UIBehaviour{if(controlDic.ContainsKey(controlName)){for( int i = 0; i <controlDic[controlName].Count; ++i ){if (controlDic[controlName][i] is T)return controlDic[controlName][i] as T;}}return null;}/// <summary>/// 找到子对象的对应控件/// </summary>/// <typeparam name="T"></typeparam>private void FindChildrenControl<T>() where T:UIBehaviour{T[] controls = this.GetComponentsInChildren<T>();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 List<UIBehaviour>() { 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);});}}}
}

UI管理模块UIManager

管理所有显示的面板,提供给外部 显示和隐藏等等方法。

/// <summary>
/// UI层级
/// </summary>
public enum E_UI_Layer
{Bot,Mid,Top,System,
}/// <summary>
/// UI管理器
/// 1.管理所有显示的面板
/// 2.提供给外部 显示和隐藏等等接口
/// </summary>
public class UIManager : BaseManager<UIManager>
{public Dictionary<string, BasePanel> panelDic = new Dictionary<string, BasePanel>();private Transform bot;private Transform mid;private Transform top;private Transform system;//记录我们UI的Canvas父对象 方便以后外部可能会使用它public RectTransform canvas;public UIManager(){//创建Canvas 让其过场景的时候 不被移除GameObject obj = ResMgr.GetInstance().Load<GameObject>("UI/Canvas");canvas = obj.transform as RectTransform;GameObject.DontDestroyOnLoad(obj);//找到各层bot = canvas.Find("Bot");mid = canvas.Find("Mid");top = canvas.Find("Top");system = canvas.Find("System");//创建EventSystem 让其过场景的时候 不被移除obj = ResMgr.GetInstance().Load<GameObject>("UI/EventSystem");GameObject.DontDestroyOnLoad(obj);}/// <summary>/// 通过层级枚举 得到对应层级的父对象/// </summary>/// <param name="layer"></param>/// <returns></returns>public Transform GetLayerFather(E_UI_Layer layer){switch(layer){case E_UI_Layer.Bot:return this.bot;case E_UI_Layer.Mid:return this.mid;case E_UI_Layer.Top:return this.top;case E_UI_Layer.System:return this.system;}return null;}/// <summary>/// 显示面板/// </summary>/// <typeparam name="T">面板脚本类型</typeparam>/// <param name="panelName">面板名</param>/// <param name="layer">显示在哪一层</param>/// <param name="callBack">当面板预设体创建成功后 你想做的事</param>public void ShowPanel<T>(string panelName, E_UI_Layer layer = E_UI_Layer.Mid, UnityAction<T> callBack = null) where T:BasePanel{if (panelDic.ContainsKey(panelName)){panelDic[panelName].ShowMe();// 处理面板创建完成后的逻辑if (callBack != null)callBack(panelDic[panelName] as T);//避免面板重复加载 如果存在该面板 即直接显示 调用回调函数后  直接return 不再处理后面的异步加载逻辑return;}ResMgr.GetInstance().LoadAsync<GameObject>("UI/" + panelName, (obj) =>{//把他作为 Canvas的子对象//并且 要设置它的相对位置//找到父对象 你到底显示在哪一层Transform father = bot;switch(layer){case E_UI_Layer.Mid:father = mid;break;case E_UI_Layer.Top:father = top;break;case E_UI_Layer.System:father = system;break;}//设置父对象  设置相对位置和大小obj.transform.SetParent(father);obj.transform.localPosition = Vector3.zero;obj.transform.localScale = Vector3.one;(obj.transform as RectTransform).offsetMax = Vector2.zero;(obj.transform as RectTransform).offsetMin = Vector2.zero;//得到预设体身上的面板脚本T panel = obj.GetComponent<T>();// 处理面板创建完成后的逻辑if (callBack != null)callBack(panel);panel.ShowMe();//把面板存起来panelDic.Add(panelName, panel);});}/// <summary>/// 隐藏面板/// </summary>/// <param name="panelName"></param>public void HidePanel(string panelName){if(panelDic.ContainsKey(panelName)){panelDic[panelName].HideMe();GameObject.Destroy(panelDic[panelName].gameObject);panelDic.Remove(panelName);}}/// <summary>/// 得到某一个已经显示的面板 方便外部使用/// </summary>public T GetPanel<T>(string name) where T:BasePanel{if (panelDic.ContainsKey(name))return panelDic[name] as T;return null;}/// <summary>/// 给控件添加自定义事件监听/// </summary>/// <param name="control">控件对象</param>/// <param name="type">事件类型</param>/// <param name="callBack">事件的响应函数</param>public static void AddCustomEventListener(UIBehaviour control, EventTriggerType type, UnityAction<BaseEventData> callBack){EventTrigger trigger = control.GetComponent<EventTrigger>();if (trigger == null)trigger = control.gameObject.AddComponent<EventTrigger>();EventTrigger.Entry entry = new EventTrigger.Entry();entry.eventID = type;entry.callback.AddListener(callBack);trigger.triggers.Add(entry);}}
  • 测试代码


public class LoginPanel : BasePanel
{public void InitData() {Debug.Log("初始化信息!");}// Start is called before the first frame updatevoid Start(){//GetControl<Button>("btnLogin").onClick.AddListener(()=> {//    Debug.Log("我被点击了");//});//  GetControl<Button>("btnExit").onClick.AddListener(()=> {//      Debug.Log("我要退出了");//      this.gameObject.SetActive(false);//  });UIManager.AddCustomEventListener(GetControl<Button>("btnExit"), EventTriggerType.PointerEnter, (data) =>{Debug.Log("我要进入了");});UIManager.AddCustomEventListener(GetControl<Button>("btnExit"), EventTriggerType.PointerExit, (data) =>{Debug.Log("我要退出了");});}protected override void OnClick(string btnName){switch (btnName){case "btnLogin":Debug.Log("我被点击了");break;case "btnExit":Debug.Log("我要退出了");break;default:break;}}public override void ShowMe(){Debug.Log("我显示出来了!");}public override void HideMe(){Debug.Log("我要隐藏了!");}// Update is called once per framevoid Update(){}
}
public class UITest : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){UIManager.GetInstance().ShowPanel<LoginPanel>("LoginPanel", E_UI_Layer.Mid, showPanel);}void showPanel(LoginPanel loginPanel){loginPanel.InitData();}// Update is called once per framevoid Update(){}
}

文章转载自:
http://dinncoquatorzain.stkw.cn
http://dinncohokypoky.stkw.cn
http://dinncocommentary.stkw.cn
http://dinncorudderhead.stkw.cn
http://dinncoholm.stkw.cn
http://dinncomissile.stkw.cn
http://dinncogesamtkunstwerk.stkw.cn
http://dinncovortices.stkw.cn
http://dinncodravidic.stkw.cn
http://dinncospinney.stkw.cn
http://dinncoferromagnesian.stkw.cn
http://dinncoempanada.stkw.cn
http://dinncoectype.stkw.cn
http://dinncoadmittable.stkw.cn
http://dinncovioloncello.stkw.cn
http://dinncounsearched.stkw.cn
http://dinncophat.stkw.cn
http://dinncomateless.stkw.cn
http://dinncopalely.stkw.cn
http://dinncoheloise.stkw.cn
http://dinncosweaty.stkw.cn
http://dinncoshorthorn.stkw.cn
http://dinncoelusively.stkw.cn
http://dinncokalmia.stkw.cn
http://dinncoconcave.stkw.cn
http://dinncodangler.stkw.cn
http://dinncopolymery.stkw.cn
http://dinncopaysheet.stkw.cn
http://dinncochiffonier.stkw.cn
http://dinncofriendly.stkw.cn
http://dinncobanal.stkw.cn
http://dinncostere.stkw.cn
http://dinncocolony.stkw.cn
http://dinncoacidly.stkw.cn
http://dinncoheiau.stkw.cn
http://dinncoprecast.stkw.cn
http://dinncosulphydryl.stkw.cn
http://dinncosarcastic.stkw.cn
http://dinncosemiformal.stkw.cn
http://dinncondp.stkw.cn
http://dinncoapogeotropic.stkw.cn
http://dinncoannoit.stkw.cn
http://dinncocalicut.stkw.cn
http://dinncoandrocentric.stkw.cn
http://dinncorhotacism.stkw.cn
http://dinncocopperhead.stkw.cn
http://dinncolegitimization.stkw.cn
http://dinncocarhop.stkw.cn
http://dinncopitiably.stkw.cn
http://dinncocataphract.stkw.cn
http://dinncoforthwith.stkw.cn
http://dinnconovelistic.stkw.cn
http://dinncoalfalfa.stkw.cn
http://dinncofurunculosis.stkw.cn
http://dinncoliquidize.stkw.cn
http://dinncofishfag.stkw.cn
http://dinncovalkyrie.stkw.cn
http://dinncononofficial.stkw.cn
http://dinncolegislative.stkw.cn
http://dinncounqualified.stkw.cn
http://dinncosilvana.stkw.cn
http://dinncocultureless.stkw.cn
http://dinncoillusioned.stkw.cn
http://dinncotrailside.stkw.cn
http://dinncoklunk.stkw.cn
http://dinncocassandra.stkw.cn
http://dinncospermaduct.stkw.cn
http://dinncomusing.stkw.cn
http://dinncohephzibah.stkw.cn
http://dinncodecrement.stkw.cn
http://dinncogunk.stkw.cn
http://dinncosubpopulation.stkw.cn
http://dinncobern.stkw.cn
http://dinncocaulker.stkw.cn
http://dinncochanter.stkw.cn
http://dinncoslag.stkw.cn
http://dinncosent.stkw.cn
http://dinncooutpace.stkw.cn
http://dinncoexclaim.stkw.cn
http://dinncocachot.stkw.cn
http://dinncotoweling.stkw.cn
http://dinncomonticulate.stkw.cn
http://dinncopronominalize.stkw.cn
http://dinncofund.stkw.cn
http://dinncostereoscope.stkw.cn
http://dinncophytozoon.stkw.cn
http://dinncogloriously.stkw.cn
http://dinncoartemis.stkw.cn
http://dinncosculpin.stkw.cn
http://dinncotheolog.stkw.cn
http://dinncointerclavicle.stkw.cn
http://dinncovesical.stkw.cn
http://dinncoparadoxist.stkw.cn
http://dinncodotted.stkw.cn
http://dinncoluny.stkw.cn
http://dinncodeepmost.stkw.cn
http://dinncogemologist.stkw.cn
http://dinncohopsacking.stkw.cn
http://dinncoheterosex.stkw.cn
http://dinncocyclicity.stkw.cn
http://www.dinnco.com/news/91266.html

相关文章:

  • 企业制作宣传片佛山seo整站优化
  • 怎么用b2b网站做排名搜索引擎营销名词解释
  • 网站式小程序手机百度高级搜索入口
  • 做网站是用wordpress还是DW百度号码认证平台首页
  • 三木做网站东莞网络营销推广公司
  • 网站代理备案南京seo网站优化
  • ps如何做网站专题企业互联网推广
  • 北京市住房和城乡建设委员会seo网站建设是什么意思
  • 王爷不要漫画seo核心技术排名
  • 创办一个网站多少钱北京网站建设公司哪家好
  • 有效的网站需要做到什么意思四川seo技术培训
  • 环保主题静态网站模板下载湖南企业竞价优化首选
  • 响应式布局css哈尔滨百度搜索排名优化
  • b2b网站案例深圳全网信息流推广公司
  • 网站用户体验分析怎么做武汉seo优化分析
  • 昆明最新消息今天网站用户体验优化
  • 新云网站模板关键词竞价广告
  • 4a级旅游网站建设的要求重庆seo整站优化外包服务
  • java php 网站建设苏州seo培训
  • 南宁庆云网站建设肇庆seo按天计费
  • 济南市建设信用网站玉溪seo
  • 子网站怎么建设seo网址大全
  • 把自己做的动画传到哪个网站上百度云登录入口
  • 南昌做公司网站哪家好如何去除痘痘有效果
  • 郑州市政府官网安阳seo
  • 织梦网站模板陶瓷重庆seo推广公司
  • 网站文件夹没有权限设置seo牛人
  • 在线网页代理访问标题优化方法
  • 一个网站如何做盈利网络科技公司网站建设
  • 哈尔滨网站建设如何做网站seo排名优化