Unity添加近身菜单-MRTK

文章目录

  • [1. 配置MRTK](#1. 配置MRTK)
  • [2. 复制标准模板](#2. 复制标准模板)
    • [2.1 导入Demos-HandTracking](#2.1 导入Demos-HandTracking)
    • [2.2 NearMenuExamples](#2.2 NearMenuExamples)
    • [2.3 模板复制在项目里](#2.3 模板复制在项目里)
  • [3. 修改模板](#3. 修改模板)
    • [3.1 按钮](#3.1 按钮)
      • [3.1.1 解除预制体](#3.1.1 解除预制体)
      • [3.1.2 跟随功能](#3.1.2 跟随功能)
      • [3.1.3 修改按钮名称](#3.1.3 修改按钮名称)
      • [3.1.4 修改按钮图标](#3.1.4 修改按钮图标)
    • [3.2 添加触发事件](#3.2 添加触发事件)
      • [3.2.1 编辑触发事件脚本](#3.2.1 编辑触发事件脚本)
      • [3.2.2 挂载脚本](#3.2.2 挂载脚本)
      • [3.2.3 按钮添加触发事件](#3.2.3 按钮添加触发事件)
  • 遇到的错误
    • [Import TMP Essentials时出错](#Import TMP Essentials时出错)
    • [Couldn't decompress package](#Couldn't decompress package)

1. 配置MRTK

先新建项目,配置MRTK,激活XR功能,创建和设置场景

配置MRTK时一定要配置Mixed Reality Toolkit Examples

可以参考我之前的博文:Holoens2开发环境配置及项目程序部署

2. 复制标准模板

2.1 导入Demos-HandTracking

Window → Windows → Package Manager

Mixed Reality Toolkit Examples → Demos-HandTracking → lmport into Project

点击 Import TMP Essentials

2.2 NearMenuExamples

1)双击NearMenuExamples

2)选择自己想要的模板,选中模板,右键Copy 进行复制

本文选择的是NearMenu4x2 ,4列2行

2.3 模板复制在项目里

1)在Assets 文件夹下找到自己原来的场景,双击打开

找的时候可以注意场景的图标

2)在Hierarchy 选项窗口下,右键Paste 进行粘贴即可

3. 修改模板

3.1 按钮

3.1.1 解除预制体

解除预制体:

选中按钮,右键Unpack Prefab Completely

3.1.2 跟随功能

勾选RadialView 组件启动跟随功能(默认是没有被选中的)

跟随菜单与相机的之间的距离(单位m):
Min Distance
Max Distance

3.1.3 修改按钮名称

在Hierarchy 选项窗口下,找到ButtonOne 按钮里的TextMeshPro 双击

3.1.4 修改按钮图标

3.2 添加触发事件

3.2.1 编辑触发事件脚本

在Asstes 文件夹或其子目录下的文件夹里,新建C#脚本文件

ButtonHandler.cs代码如下:

点击此按钮后,会自动执行OnButtonClick()任务

csharp 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ButtonHandler : MonoBehaviour
{
    // 按钮点击事件处理
    public void OnButtonClick()
    {
        Debug.Log("按钮被点击了!");
        // 这里可以添加更多逻辑
    }

}

3.2.2 挂载脚本

1)在Hierarchy 选项窗口下,空白处右键Create Empty 创建空对象

2)将ButtonHandler.cs拖拽到新建的空对象上

挂载成功如下图所示

3.2.3 按钮添加触发事件

1)将空对象拖拽到按钮的触发事件

2)选择触发事件

选择后如下图所示

遇到的错误

Import TMP Essentials时出错

ageResourceImporter.cs:45)

TMPro.TMP_PackageResourceImporterWindow:OnGUI () (at Library/PackageCache/com.unity.textmeshpro@2.1.4/Scripts/Runtime/TMP_PackageResourceImporter.cs:215)

UnityEngine.GUIUtility:ProcessEvent (int,intptr)

解决方案:
Window → TextMeshPro → Import TMP Essential Resources

Couldn't decompress package

Failed to import package with error: Couldn't decompress package

UnityEditor.AssetDatabase:ImportPackage (string,bool)

解决方案:清理 Library

1)退出 Unity

2)删除项目根目录下的 Library 文件夹(只删 Library,不要动 Assets、Packages)

3)重新打开项目,等待 Unity 重新导入所有资源

4)再次执行之前要执行的任务

相关推荐
淡海水3 小时前
03-03-架构篇-SGen GC架构解析
unity·架构·c#·gc·sgen
/**书香门第*/4 小时前
Cocos Creator 打螺丝游戏的实现
游戏引擎·cocos2d·螺丝·打螺丝
萌萌的提莫队长21 小时前
Unity相机捕捉,图像识别,抠像+合成
opencv·unity
mxwin2 天前
Unity Shader 光线追踪原理与实战案例
unity·游戏引擎
地狱为王2 天前
Unity使用DPDFNet实现实时语音增强(降噪)
unity·语音增强·降噪·dpdfnet
平行云PVT2 天前
国产信创实时云渲染解决方案:如何实现数字孪生与三维应用云化部署?
unity·webrtc·unreal engine·实时云渲染·国产信创·摩尔线程·砺算科技
夏炎黄2 天前
Terrain地形剪裁
unity
小贺儿开发2 天前
DeepSeek + Codex + MCP:Unity 游戏开发实测
科技·游戏·unity·ai·程序员·编程·deepseek
新的瑞拉公主2 天前
Cocos plist 粒子一键导入 Unity:Editor 工具实现与参数映射
unity·游戏开发·cocos2d-x·粒子系统·editor工具
淡海水2 天前
03-02-架构篇-Boehm GC架构解析
unity·架构·c#·gc·boehm