挑战自创插件之原型工具_之二免费DoozyUI基础教学

游戏UI原型框架

上一个文章搞了一个原型框架,基于DoozyUI

这里记录下基础用法

搜先还要说一下1)“商业化”,2)”开源“ 这两个东西分开都已经是大坑,2者一融合变成巨坑,如果没有破釜沉舟的勇气,就不要入坑了

就不多解释了,直接看用法

实际开发过程中真很坑,并没有下面说的使用方法那么爽,那么顺畅,最后面会补充各种坑的解决方法

UIPopup

Keyi可以参考我之前的文章

下面部分代码参数没粘贴出来,请自行补充

if (mPopup == null)
		{
			mPopup = UIPopupManager.GetPopup("popLuan");
			//阅读代码后发现,无论UIPopupManager,还是UIPopup->GetPopup()后会克隆一份,所以必须通过模组级别变量持有,
			//否则,一直New Popup对象,都是全新的,并不是我们真正需要的那一个Popup实例
			//也就是下面代码都没什么卵用
			//popup = UIPopup.GetPopup("popLuan");
			//UICanvas canvas = popup.GetTargetCanvas();
			//popup.Container.RectTransform = canvas.RectTransform;
			//popup.Overlay.RectTransform = popup.Container.RectTransform;
			//UIPopupManager.AddToQueue(popup);
		}

		UICanvas canvas = mPopup.GetTargetCanvas();
		mPopup.Container.RectTransform = canvas.RectTransform;
		mPopup.Overlay.RectTransform = mPopup.Container.RectTransform;
		/ 还特喵的需要补上这一句(才能Show和Hide安全调用)//
		if (canvas.gameObject.activeSelf == false)
			canvas.gameObject.SetActive(true);
		
		mPopup.Show();

UIView

国内某些手游开发者不喜欢多一个View层,就是觉得Window + Dialog就行了,这也是国内造了多个轮子之后的最佳实践,进可快速换皮,退可做代码扩展,到底怎么做才好貌似并没有公论

但DoozyUI这个框架就是比较“西化”,所有动画都基于UIView(绑定有点死),好处就是提供类似Widget的功能。我们也只能这么用了1个Canvas + 多个View

其中一个必须注意的点就是必须勾选

When UIView is hidden diable :1) GameObject

圆形按钮

其实很简单就是改按钮的Image,还可以调色

DoozyUI这框架还提供了很多基础Shape,圆形三角形都有,空心实心的很多

View管理

错误删除了一个空Category就狂出错

这个问题没办法避免的,其他Unity插件更甚,DoozyUI已经算做的很好了(Debug Toggle,Debug Log,可视动画,出错Inspector又红色,等等的提示,可以说已经用尽一切方法帮助使用者(我们),程序员能懂其用心)

解决方法:懒得贴的,也是必须阅读开源源码

之后又碰到,view显示不出问题,

主要是“可视乎”界面,对接的字写错了,还是,通过阅读开源源码可定位

 

* UIView的命名必须对上

另外,千万不要按Reset;

因为你真的不知道他这个Reset按钮干了啥;

你也不知道你同事干了啥,要是项目已经开展一个月,国内的996,你再按Reset,原地爆炸

巨坑

这么多坑,搞得定才有鬼,其实真正工作中不会用到,那些做教学的良心不会痛吗

DoozyUI这个框架最让人配合的确实是他的动画和UI的优雅

它本身的插件功能,Nody Graphy Control等都做了很多动画,这是其他插件所没有的,国内团队很欠缺的,也是让我对它的团队极度有信息;

起码项目经理知道自己想要什么,并推动做成产品,做的很成功。虽然很多坑。

它的团队本身就明显擅长UI动画和过程管理,所以做的这个DoozyUI插件也是有保障

诚然,难道会是我们一群理工科的工程师能做出这样的产品

不过我们还是得从理性分析得角度说说他的坑

UIView需手动注册

UIView必须默认不能inActive,必须整个场景加载时,可以搜索的到,然后再把view隐藏,触发时再调用Show方法

我%……¥……%!¥&!@%*!&@@@

	public UIView[] views;
	void Start () {
		没什么作用的代码。。。。。。。。
		UIPopupManager.A
		//UICanvas canvas = UICanvas.CreateUICanvas("MyNewCanvas");

		//currSceneName = "Base";
		//TODO:UIView 暂时隐藏所有,一开始加载还是慢的, 最终还是要优化
		foreach (var v in views) {
			v.gameObject.SetActive(false);
		}
		
	}

Animation的实现一点不省

Move,Rotate,Scale,Fadeout,不管你有没设数值,代码操作一遍;非手游你就随便作是吧?

代码就不贴了

太多Behviour看上去不错,实际上你懂的,满满都是坑

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值