Unity学习笔记 使用DMM(Distance-Independent Millimeter)思想设计VRAR中的UI
1. 前言
DMM(distance-independent millimeter,也叫距离无关毫米)是由Google Daydream团队于2017年提出的概念单位,尽管已经是几年前的概念,但是对于极其缺乏设计指南的XR领域中来说,对开发协作上起到了非常友好的帮助。
DMM概念及解释请参考阅读下文:
Sizing UIs in VR with Distance-Independent Millimeters
如何设计 VR 界面
该概念的提出很好的解决了开发与设计如何对UI达成统一的问题,这允许设计只需要对UI进行一遍设计,便可做到在任何距离上观看都能显示同样大小的界面,下图是由Pavel Tsenev使用DMM做的UI案例,很好的诠释了DMM的思想。
2. 创建适合自己应用的设计指南
WHY:Google团队是基于Cardboard的VR形态给出了关于UI字体大小和击中目标大小的指南,一个是VR设备目前已经达到了另一个层次,再一个是使用的字体是基于英文字母,所以参考性不高
WHAT:使用中文字体,匹配出适合自己应用UI的dmm范围
下面以DMM的概念为思想,在Unity中实现如何自定义适用于自己的UI设计
(1)创建DMM画布
一个DMM画布的构成由三层内容组成
- Base层:用于根据视距的不同来调整整体界面缩放,以保持视觉上显示的效果一致(下图分别是1m显示、2米显示、5米显示的设置)
- 单位统一层:用于将dmm的单位与Unity中使用的单位统一,dmm的概念指出物体在1m的距离下大小为 (x) mm,因为Unity使用的单位以米(m)为单位,1mm=0.001m,所以这一层的Scale要换算成0.001
- UI内容层:这一层就是UI要显示的内容,与平面设计软件一样,假如设计稿中某一个按钮尺寸为200x100,那在这里就是200x100的大小
因为我们的目的是要找到属于自己适用的dmm,所以接下来创建的画布都是以1m的距离为标准(如下图所示)
(2)创建参考性内容的指南界面
- Google给出的指南(使用中文字体)
- 中文字体的字重比较显示,字体大小比较显示
(3)创建自定义设置界面
- 针对不同文字类型提供:FontSize的设置,字体类型的选择
- 针对击中目标提供:击中区域的大小设置,间隔的大小设置
(4)创建效果展示界面
- 根据自定义的设置,将设置运用并显示效果
(5)小结
通过这样的一个流程,你就能确定出自己应用想要使用的UI大小为多少dmm了。那么在平面设计软件中,1dmm=1px,假如说一个按钮高度为60dmm最合适,那么所有按钮的高度都以60px为规范来设计,其余UI同理。
3. 总结
使用DMM的思想对VR、AR应用做UI上的设计,为开发者与设计师之间的协作和沟通带来极大的方便,一次设计,一劳永逸,不需要考虑因距离不同而该如何重新设置UI大小的问题,也不需要做其他的转换,设计稿是多大,Unity开发中对应的画布就设置多大,相当舒服了。
Unity学习笔记 使用DMM(Distance-Independent Millimeter)思想设计VRAR中的UI相关推荐
- 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码
[Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...
- Unity学习笔记(4)-----粒子效果的实现
Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...
- Unity学习笔记1 简易2D横版RPG游戏制作(一)
这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...
- Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档
Unity学习笔记:个人学习项目<疯狂天才埃德加>纠错文档 本文档是完成学校Unity课程作业时建立的纠错文档.用于记录自己开发过程中遇到的各种问题,以便下次遇到相同的问题时及时找到解决方 ...
- Unity学习笔记:Unity 3D 飞机大战
Unity学习笔记:Unity 3D 飞机大战 1.打开unity软件后,首先新建Quad作为背景,导入飞机模型,并为其添加刚体 然后创建C#脚本,挂载到飞机上. 2.给飞机创建子弹,让子弹成为预制体 ...
- 【Unity学习笔记】UnrealToUnity教程:(网上购买的素材导入Unreal+插件转Unity)
[Unity学习笔记]UnrealToUnity教程: 最近想从Unreal那边化点缘借借素材,没想到踩到一个大坑 一,素材导入Unreal 这个教程比较多,根据素材的来源,传送门是以下这几个: 1. ...
- unity学习笔记-特效篇
unity学习笔记 传送门特效 火焰特效 传送门特效 由于动画师的动画制作遇到了一些小问题,只能先做其他功能的摸索了~ 本来想记录一下服务器搭建的,但是在消息传输的部分遇到了一些bug,可能是消息解析 ...
- Unity学习笔记:监听函数有什么卵用?(似乎就是从一件事过渡到另一件事?)
Unity学习笔记:监听函数有什么卵用?(似乎就是从一件事过渡到另一件事?) 个人学习经验,仅供参考,欢迎各位码友批评指正. 做项目敲代码时,一直不是很理解监听函数是个什么玩意. 按我目前的理解,说白 ...
- Unity学习笔记—二次元日系游戏制作(实践篇-游戏初始化场景制作)
原教程:siki:二次元日系游戏制作工具 - live2dSDK入门教程 http://www.sikiedu.com/my/course/282 (上)Unity学习笔记-二次元日系游戏制作(理论篇 ...
最新文章
- 指挥控制系统中的自然智能和人工智能
- Docker网络解决方案 - Calico部署记录
- 浏览器插件-- Browser Helper Object(BHO) 一
- Solr Facet(分片)
- 【渝粤教育】 国家开放大学2020年春季 2071美学与美育 参考试题
- mysql+tushare搭建本地数据库
- 华为王成录:鸿蒙 OS 不是安卓、iOS 的拷贝;拼多多回应「删除手机照片」事件 | 极客头条...
- jquery网页日历显示控件calendar3.1使用详解
- Charles手机 APP 抓包仅需这三步
- [白话解析]以水浒传为例学习隐马尔可夫模型
- 2010公司处级聚会尾牙主持词
- mac下安装iso软件
- 企业微信如何设置通讯录权限?
- 2019 HZNU Winter Training Day 15 Comprehensive Training
- 18118 勇者斗恶龙(c++ STL sort的运用)
- php如何锁定表,PHPExcel冻结(锁定)表头的简单实现方法
- SLAM论文阅读:M-Loam:具有在线外参校准功能的多LiDAR系统的稳健里程表和建图
- 初识人脸识别---人脸识别研究报告(概述篇)
- 充电误区那点事和电池医生类软件
- PCB之AD导入logo