标签:
这个想法的模型最近得到了完善,真的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,其余的手动对齐。我估计会用第二种
标签:
原文地址:http://www.cnblogs.com/hont/p/4739658.html