一、创建New Scene并导入MRTK资源

二、手部抓取物体并实现移动

  • 创建一个3D物体(若非Unity内置的物体对象需要手动添加Collider属性)`
    在这里插入图片描述

  • 对新添加的物体添加Object Maniputor组件,系统会自动添加Constraint Manager
    在这里插入图片描述

  • 点击Game,进入游戏模式,按下Space空格键,场景内会出现右手,移动鼠标出现指引线与焦点,直至焦点移动到物体上,点击鼠标左键并移动鼠标,即可实现移动物体的目的。
    在这里插入图片描述

三、创建用户跟随菜单

  • Packages/Mixedreality Toolkit Foundation->SDK->Features->UX->Prefabs->Menus目录下找到菜单
    在这里插入图片描述
    在这里插入图片描述

  • 选择合适的菜单拖动到Hierarchy层级目录中
    在这里插入图片描述

  • 勾选RadialView组件启动跟随功能(默认是没有被选中的),同时可以设置Min Distance以及Max Distance实现自定义跟随菜单与相机的之间的距离
    在这里插入图片描述
    在这里插入图片描述

四、点击按钮实现目标放大

  • 对物体添加脚本Enlarge.cs,一定保证脚本左侧的复选框是出于未选中状态(如果选中,则无论是否点击了按钮,都会执行当前脚本)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enlarge : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Transform transform = gameObject.transform;
        transform.localScale *= 2;
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}
  • 对菜单的第一个按钮重命名为Enlarge,与脚本名称保持一致
    在这里插入图片描述

  • EnlargeObject脚本添加监听事件OnClick,具体操作就是将物体拖到None(Object)的物体窗口上,然后添加EnlargeObject脚本的enable属性,表示点击按钮就会激活Enlarge脚本的属性,就能执行脚本
    在这里插入图片描述

  • 点击Game,进入游戏模式,按下Space空格键,场景内会出现右手,移动鼠标出现指引线与焦点,直至焦点移动到Enlarge按钮上,点击鼠标左键,即可实现放大物体的目的。
    在这里插入图片描述
    在这里插入图片描述

  • 按照上述方法同理能够实现物体的缩小

五、点击按钮实现目标缩放

  • 实现点击之后物体放大,再次点击之后物体缩小

  • 1.首先将按钮的名字修改成ChangeScale
    在这里插入图片描述

  • 2.将Selection Mode修改成Toggle,并勾选Can Select以及Can Deselect复选框,表示既可以选择,也可以不选择,is Toggled默认是不选择,表示没有被选中
    在这里插入图片描述

  • 3.创建ChangeScaleObject脚本,确保左侧复选框出于未选中状态,通过判断按钮的isToggled属性,实现放大与缩小交替实现的效果

using Microsoft.MixedReality.Toolkit.UI;
using Microsoft.MixedReality.Toolkit.Utilities;
using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class ChangeScaleObject : MonoBehaviour
{
    [SerializeField]
    Interactable inter;
    // 标志变量,保证物体不会一直放大或者缩小
    bool enlargeFlag = false;
    bool shrinkFlag = false;
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        Transform transform = gameObject.transform;
        // 按下按钮,放大物体,注意将标志位取反
        if (inter.IsToggled && !enlargeFlag)
        {
            enlargeFlag = true;
            shrinkFlag = false;
            transform.localScale *= 2;
        }
        // 再次按下按钮,缩小物体,注意将标志位取反
        else if (!inter.IsToggled && !shrinkFlag)
        {
            shrinkFlag = true;
            enlargeFlag = false;
            transform.localScale /= 2;
        }
    }
}
  • 4.将按钮ChangeScaleinteractor添加到ChangeScaleObject脚本的作用域内,这样才能访问到按钮ChangeScaleinteractor
    在这里插入图片描述

  • 5.点击Game,进入游戏模式,按下Space空格键,场景内会出现右手,移动鼠标出现指引线与焦点,直至焦点移动到ChangeScale按钮上,点击鼠标左键,即可实现放大、缩小物体的目的。

六、点击按钮实现目标放大\缩小

  • 第四步使用的Button模式,只能实现点击一次就放大一次,再次点击无法实现继续放大
  • 借鉴第五步的方法,我们可以使用Toggle模式,只要点击就会实现物体的放大,只要点击就会实现物体的缩小
  • 采用第五步相同的办法,修改脚本EnlargeObject,并且将Button修改成Toggle
using Microsoft.MixedReality.Toolkit.UI;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnlargeObject : MonoBehaviour
{
    [SerializeField]
    Interactable inter;
    bool firstFlag = false;
    bool secondFlag = false;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        Transform transform = gameObject.transform;
        if (inter.IsToggled && !firstFlag)
        {
            firstFlag = true;
            secondFlag = false;
            transform.localScale *= 2;
        }
        else if (!inter.IsToggled && !secondFlag)
        {
            secondFlag = true;
            firstFlag = false;
            transform.localScale *= 2;
        }
    }
}
  • 此时就可以不断点击按钮实现物体的放大

七、部署到HoloLens

1.打包输出项目

  • 配置输出名称
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 输出配置
    在这里插入图片描述

  • 打包项目
    在这里插入图片描述

2. 部署项目

  • Windows开发者模式打开
    在这里插入图片描述
  • 使用USB数据线将计算机与Hololens连接

大坑!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

确保HoloLens能够通过USB实现数据传输!!!!!(大坑),具体操作就是前往HoloLens的设置->设备->USB->启用数据传输

  • 打开生成的.sln项目解决方案,并按照图片所示配置
    在这里插入图片描述

  • 点击“调试->开始执行”即可

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐