Hololens2开发笔记-快速实现一个实时时间显示模块(unity)

前言

补充一些 Unity 开发和 Hololens 开发的基础知识,包括 TextMeshPro 文本更新,对象如何跟随头部移动等。

环境

  • Hololen2
  • Windows 10
  • Unity 2019.4.20f1c1
  • Visual Studio 2019
  • MRTK 2.5.4

创建项目

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

配置项目

  1. 在菜单栏“File -> Build Settings”,将平台转换为 通用Windows平台

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

  2. 导入 MRTK 开发工具包,下载链接:MRTK

    • 在菜单栏 “Assets -> Import Package -> Custom Package”,选择刚刚下载的 MRTK 工具包(Microsoft.MixedReality.Toolkit.Unity.Foundation.2.5.4.unitypackage)。
    • 选择“All”,然后导入。

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

  3. 在自动打开的 MRTK 项目配置器中,确保所有选项都被选上,如下图,然后点击应用。

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

    如果 MRTK 项目配置器没有自动打开,可以在在菜单栏“Mixed Reality Toolkit -> Utilities -> Configure Unity Project”手动打开。

  4. 在菜单栏“Edit -> Project Settings”打开项目设置

    • 找到“Player -> XR Settings”,勾选 Virtual Reality Supported 复选框。

    • 在自动弹出的 MRTK 项目配置器中,设置空间音频,然后点击应用,如下图。
      图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

    • 在 XR Settings 中,设置深度格式为 16-bit 深度,如下
      图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

    • 找到“Player -> Publishing Settings”,设置“Package name”为“HololensTimer”。

  5. 在菜单栏“File -> New Scene”新建场景,按“Ctrl S”将新场景保存到 Scenes 文件夹下,场景名为 MainScene

  6. 在菜单栏“Mixed Reality Toolkit -> Add to Scene and Configure”添加配置文件。

  7. 在菜单栏“Window -> TextMeshPro -> Import TMP Essentail Resources”,点击 All,然后 Import 来导入必要的资源。

编写实时时间自动更新脚本

  1. 在 Assets 目录下创建 Scripts 文件夹,然后右击创建 C# 脚本,命名为 TimeService。

  2. 双击脚本在 VS2019 中打开,然后编写如下代码

using System;
using TMPro;
using UnityEngine;

public class TimeService : MonoBehaviour
{
    public TextMeshPro timer;

    // Update is called once per frame
    void Update()
    {
        if (timer != null)
        {
            timer.text = "Time: " + DateTime.Now.ToString("HH:mm:ss");
        }
    }
}
  1. 保存,返回 Unity 编辑器。

创建 TextMeshPro 对象并挂载脚本

  1. 在 Hierarchy 上右击,创建 3D Object -> Text - TextMeshPro 对象,F2 重命名为 Timer。

  2. 在 Inspector 里调整 PosZ 为 1,Width 为 1,Height 为 0.12,Font Size 为 1。在 Unity 中一个单位长度约对应现实生活中的 1 米,所以上面的调整将 Timer 放置在眼前 1 米处左右的距离范围。

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

  3. 可以把字体颜色调成红色等比较醒目的颜色。

  4. 在 Project 里把 TimeService 脚本拖拽到 Inspector,然后在 Hierarchy 里把 Timer 对象拖拽到 TimeService 脚本的 Timer 属性上,如下图:

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

    这样就完成了脚本和对象的挂载。

  5. 可以点击 Unity 的运行按钮来运行下看看有没有错误,在 Unity 里正常运行如下:

    图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

    黄色的警告信息通常可以忽略~

让对象跟随头部移动

在 Timer 上点击 Add Component,搜索 RadiaView 并添加,该脚本会自动添加一个 SolverHandler 依赖脚本。我们可以设置 RadiaView 里的 Min Distance、Max Distance、Min View Degrees 和 Max View Degrees 值来控制该 Timer 对象跟随头部移动的最小距离、最大距离、最小角度和最大角度。可以将 Max View Degrees 从 30 度 改为 1 度,这样我们的头部稍微转动一个角度,Timer 对象也会跟随我们的头部移动了~

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

更多信息可以参考官方文档:如何使对象跟随你?

打包、构建和部署

详细步骤参考我这篇博客:Hololens2开发笔记-快速入门并实现3D对象手势操作(unity)

我这里就不再赘述啦~

对了这里多补充一下吧,最后在 VS2019 里构建的时候可以选择 Master ARM64 构建,也可以选择 Release ARM64 构建,博主都亲自测过都可正常运行。不过博主最近在看 GitHub 上老外开发者们用 Release ARM64 构建的居多,所以这里可以区别我那篇博客,选择用 Release ARM64 进行构建也可以~

结果展示

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

如果这篇文章对您有帮助,欢迎给我的 github项目 点一个⭐ ο(=•ω<=)ρ⌒☆

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值