码迷,mamicode.com
首页 > Web开发 > 详细

UCSS概念设计

时间:2015-08-18 18:12:01      阅读:542      评论:0      收藏:0      [点我收藏+]

标签:

这个想法的模型最近得到了完善,真的very cool.

unity3D+css

 

当然这个css是节点式的,语法解析器可能也是作为扩展。从此再也不用为按钮的动画时间是0.1秒还是0.2秒,而一个面板一个面板的修改了

使用时需要加上组件,里面会指定css的key

 

1.css选择器

如果是多个css,只允许一个单选的情况。处理方式是隐式被动的

CssSelect

 -Css1

 -Css2

 -Css3

 

用户使用时只需要开启需要的css,单选是由选择器隐式完成。

 

2.通用样式的加载

作为扩展脚本的形式出现,可以选择Resources目录,在Awake时进行加载

 

3.取舍

考虑到复杂性,UCSS不支持传参。也不能实现图文混排的功能

如果要实现聊天的图文混排,可以写一个脚本,然后给该脚本自定义CSS样式。

 

4.动画

css节点的开关,会触发cssEnter,cssExit的UI消息key。

普通节点也可以通过附带的css名称,反向调用到绑定的样式,取得样式上的动画

 

5.关于代码里的修改

剩余金币:99g

如果是像上面这种样式,并且有可能在代码里控制,有可能在prefab里输入。怎么处理

1.首先,在刷新的函数里调用css节点,主动更新css样式

2.扩展UILabel,代码里的话就像数组一样传进去,并给每个元素一个key。可以再优化,支持特定字符串格式,比如:“[剩余金币:Title][99g:Value]”

3.prefab编辑时,也使用这个扩展UILabel

 

6.多国语言

主要问题是多国语言需要文字大一号,小一号类似形式。这个可以在你的框架中引入环境变量来解决。

通过环境变量修改映射的prefab路径

 

7.外层间距

这个的解决方法很有限,首先对所有附加该样式的物体计算bounds,然后计算面板与面板之间的bounds。且仅限于UIWidgets

比较偷懒的解决方法是,只支持单个UISprite/UITexture,其余的手动对齐。我估计会用第二种

UCSS概念设计

标签:

原文地址:http://www.cnblogs.com/hont/p/4739658.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!