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相关推荐

  1. 【Unity学习笔记】[Unity中文课堂教程] C#中级编程代码

    [Unity学习笔记][Unity中文课堂教程] C#中级编程代码 最近想补一补C#基础,Unity官方的C#中级编程教程质量很高,于是开个帖子把跟着敲+记录了部分价讲解和我自己的理解的代码存在这 原 ...

  2. Unity学习笔记(4)-----粒子效果的实现

    Unity学习笔记(4)-–粒子效果的实现 一.效果展示 下面用若干张张动图展示效果: 大概就是这样,并不是很难. 实际效果要比图中的好一点(顺畅得多). 实现步骤 大致可以分为如下几个步骤,然后逐个 ...

  3. Unity学习笔记1 简易2D横版RPG游戏制作(一)

    这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...

  4. Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档

    Unity学习笔记:个人学习项目<疯狂天才埃德加>纠错文档 本文档是完成学校Unity课程作业时建立的纠错文档.用于记录自己开发过程中遇到的各种问题,以便下次遇到相同的问题时及时找到解决方 ...

  5. Unity学习笔记:Unity 3D 飞机大战

    Unity学习笔记:Unity 3D 飞机大战 1.打开unity软件后,首先新建Quad作为背景,导入飞机模型,并为其添加刚体 然后创建C#脚本,挂载到飞机上. 2.给飞机创建子弹,让子弹成为预制体 ...

  6. 【Unity学习笔记】UnrealToUnity教程:(网上购买的素材导入Unreal+插件转Unity)

    [Unity学习笔记]UnrealToUnity教程: 最近想从Unreal那边化点缘借借素材,没想到踩到一个大坑 一,素材导入Unreal 这个教程比较多,根据素材的来源,传送门是以下这几个: 1. ...

  7. unity学习笔记-特效篇

    unity学习笔记 传送门特效 火焰特效 传送门特效 由于动画师的动画制作遇到了一些小问题,只能先做其他功能的摸索了~ 本来想记录一下服务器搭建的,但是在消息传输的部分遇到了一些bug,可能是消息解析 ...

  8. Unity学习笔记:监听函数有什么卵用?(似乎就是从一件事过渡到另一件事?)

    Unity学习笔记:监听函数有什么卵用?(似乎就是从一件事过渡到另一件事?) 个人学习经验,仅供参考,欢迎各位码友批评指正. 做项目敲代码时,一直不是很理解监听函数是个什么玩意. 按我目前的理解,说白 ...

  9. Unity学习笔记—二次元日系游戏制作(实践篇-游戏初始化场景制作)

    原教程:siki:二次元日系游戏制作工具 - live2dSDK入门教程 http://www.sikiedu.com/my/course/282 (上)Unity学习笔记-二次元日系游戏制作(理论篇 ...

最新文章

  1. 指挥控制系统中的自然智能和人工智能
  2. Docker网络解决方案 - Calico部署记录
  3. 浏览器插件-- Browser Helper Object(BHO) 一
  4. Solr Facet(分片)
  5. 【渝粤教育】 国家开放大学2020年春季 2071美学与美育 参考试题
  6. mysql+tushare搭建本地数据库
  7. 华为王成录:鸿蒙 OS 不是安卓、iOS 的拷贝;拼多多回应「删除手机照片」事件 | 极客头条...
  8. jquery网页日历显示控件calendar3.1使用详解
  9. Charles手机 APP 抓包仅需这三步
  10. [白话解析]以水浒传为例学习隐马尔可夫模型
  11. 2010公司处级聚会尾牙主持词
  12. mac下安装iso软件
  13. 企业微信如何设置通讯录权限?
  14. 2019 HZNU Winter Training Day 15 Comprehensive Training
  15. 18118 勇者斗恶龙(c++ STL sort的运用)
  16. php如何锁定表,PHPExcel冻结(锁定)表头的简单实现方法
  17. SLAM论文阅读:M-Loam:具有在线外参校准功能的多LiDAR系统的稳健里程表和建图
  18. 初识人脸识别---人脸识别研究报告(概述篇)
  19. 充电误区那点事和电池医生类软件
  20. PCB之AD导入logo

热门文章

  1. 战舰霸主服务器维护时间多长,巅峰战舰佩斯伯爵,6月27号维护多久
  2. Android 泽宇二级列表
  3. android音乐播放器(mvp架构)
  4. 什么是托管,什么是非托管
  5. Dreamweaver安装jQuery插件jQuery_API.mxp
  6. 小狼-Windows10将默认输入法删除掉,只留一个输入法
  7. python中weekid什么意思_Python学习 Week1
  8. axios请求拦截器的配置
  9. 一个小项目了解机器学习基本流程(附源码)
  10. Unity3d实现红外热成像效果