关于Unity—UIWidgets的详细介绍
UIWidgets(我下⾯简称它UIVGS)是 Unity 的⼀个跨平台APP解决⽅案的插件包,它继承了Flutter精神。因为Flutter有⾃⼰的渲染引
擎,Unity也有,所以Unity中国写了⼀套底层渲染API,把Flutter的意志移植到了Unity⾥成了UIVGS⾥,所以马上Unity将能开发app了。欢迎⼤家和我⼀起学习和开发 totototogether!!(unity⽆敌)
开源GitHub地址:
UIWidgets | 官⽅交流社区 | 官⽅录播 | Flutter中⽂⽂档
APPConnect | Markdown RendererForUIWidget
建了⼀个UIVGS交流,希望⼤家⼀起交流学习!!⼆维码
总结官⽅的直播视频
A new w a y to build bea utiful U I in U nity
1.什么是UIVGS?
.unity的开源的插件包,将来会放到Asset store和unity的包管理器中。
.是⼀个UI框架,是开发者根据flutter的源码和结合unity现状演变、pot过来的。
.可以构建app、游戏UI界⾯、编辑器插件的UI界⾯。
2.上⼿UIVGS
a.声明式的UI框架:开发者只需要C#代码⾥显⽰的定义好你的UI形状,布局需求,交互逻辑。下图是框架结构(七分精⼒原⽣开发,三分给前端)
框架结构.png
b.Hello World演⽰
Input.png
创建有状态的组件可以遵循以下步骤:
1.创建⼀个继承⾃StatefulWidget的类来表⽰你要⾃定义的可变控件
2.创建⼀个继承⾃State的类来处理这个可变控件的状态和显⽰样式(build⽅法)。
3.当⽤户交互发⽣,例如onPressed点击事件被触发时,可以调⽤setState⽅法告诉组件需要重绘。
组件树只更新被标记的UIwidget.png
e.渲染 Technical Details on Rendering技术
UIVGS会动态到适合和相对静⽌不变的widgets⼦树,并且将他提前渲染到⼀个离屏的 Render Texture 上,然后缓存下来,在之后的渲染就不⽤⼀笔笔的渲染,只需要把这些不变UI的贴到屏幕上。
性能⽆敌.gif
3.为什么UIVGS很重要
a.更适合做很棒的动画效果、颜⾊域⼴等的新⽤户体验的UI。
b.可以不仅仅局限于游戏UI界⾯,还可以做app、editor UI。
c.可以结合Unity,制作3d和增加粒⼦效果。
d.开发者只需要做前端,渲染效率交个引擎底层,解放了⼈⼒,提升了效率(运⾏速度快,基本上fps>60)。
因为传统⽤UGUI 不能太耗batches数量 资源 刷新率 Drawcall ,团队⽤⽤⼀个shader,需要合各种图,⼩图⼤图 合批。现在⽤UIWidgets动态合批,⽐如⼀个⾎条,他不变就不合,⾎条变了就合批。ugui 很耗cpu每次delete就需要合批 重画,每次tps很低,⼀般就建多个canvas,就把⼀些静态不变的图放在⼀个canvas,⽐如头像,icon等,经常放在⼀个canvas。UIWidgets有个树形结构,可以解决这些事,所以可以把⼈⼒解放出来。相⽐IMGUI,IMGUI⽐较原始,太底层,开发者不需要太关⼼表现层,但更多需要去维护底层逻辑。相⽐UIElement,UIElement 开发模式太⽼,模仿的还是Html(div+css)。
4.UIVGS编程模式
flutter开发app刚上⼿可以能不太适应,因为习惯了C# 的链式开发,但换⼀种开发习惯也是很新很酷的开发体验。
a.关于U I a s a func tio n o f sta te(实现业务逻辑和界⾯的真正的分离,⽅便理解和维护)
UIWidgets是和现在react和flutter⼀样是响应式编程,⽤状态⽣成UI。需要注意的是StatefulWidget和Building widgets这两个接⼝。StatefulWidget提供两个⽅法:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论