Unity在HoloLens使用3D launcher(模型)作为APP初始界面

Unity 打包到HoloLens设备中默认视以2D平面的方式进去的,但是HoloLens一些默认的应用是3D launcher(模型)进去,比较炫酷。那么我们在Unity开发的应用,怎么做出来呢?

一. 正常打包APPX文件

这里第一步按照正常打包的步骤打包,不会的同学可以看看其他博客,这里就不赘述了

二.修改sln文件配置

1.双击打开打包文件夹的sln文件

2.右击Package.appxmanifest文件

3.选择带编码功能的XML文本编辑器打开文件

4.修改文件内容

将框住的部分修改为:

<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" 
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
         xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" 
         xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
         IgnorableNamespaces="uap uap2 uap5 mp"
         xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

第一部分

修改前

修改后

第二部分

<uap:DefaultTile Wide310x150Logo="Assets\WideLogo.png" >                     <uap5:MixedRealityModel Path="Assets\xxxx.glb" />                                               </uap:DefaultTile>

修改前

修改后

注意:MixedRealityModel path对应的是3D模型的路径,目前3D模型只支持glb格式的模型(建议放在Assest中)

转换模型glb地址:Autodesk FBX 到 Binary glTF:免费在线 Autodesk FBX 到 Binary glTF 转换器 (aspose.app)

五.修改glb文件

将Assets的glb文件拖入sln文件中,右击打开glb文件的属性,将内容选择为

六:正常发布创建应用程序包,生成appx安装包,安装到HoloLnes中,点开对应程序,发现进入程序就变为3D模型进入

注意事项:

3D 模型时,必须满足一些要求

  1. 导出 - 资产必须以 .glb(文件格式)
  2. 建模 - 资产必须小于 10k 三角形,每个 LOD 不超过 64 个节点和 32 个子网格
  3. 材质 - 纹理不能大于 4096 x 4096,最小 mip 贴图在任一维度上都不应大于 4
  4. 动画 - 动画在 30 FPS(36,000 个关键帧)下不能超过 20 分钟,并且必须包含 <= 8192 个变形目标顶点

建模准则

  1. 向上轴应设置为“Y”。
  2. 资产应朝向正 Z 轴的“前方”。
  3. 所有资产都应构建在场景原点 (0,0,0) 的地平面上
  4. 工作单位应设置为计量和资产,以便可以在世界范围内创作资产
  5. 不需要合并所有网格,但如果面向资源受限的设备,建议使用此服务
  6. 所有网格体应共享一个材质,整个资源仅使用一个纹理集
  7. UV 必须在 0-1 空间中以正方形排列。避免平铺纹理,尽管它们是允许的。
  8. 不支持多 UV
  9. 不支持双面材质

微软原文文献: Implement 3D app launchers (UWP apps) - Mixed Reality | Microsoft Learn

### 如何在 Android 应用程序中嵌入 Unity 要在 Android 庖应用程序中嵌入 Unity,可以采用以下方法实现完整的集成过程。此过程涉及到创建一个能够加载 Unity 场景的 Android Activity 或 Fragment。 #### 创建 Unity 项目并导出到 Android 为了使 Unity 可以被 Android App 嵌入,首先需要准备一个可导出至 Android 的 Unity 工程: 1. **配置 Unity Project Settings** 在 Unity 编辑器中打开 `Edit -> Project Settings` 并设置适合 Android 设备的相关参数,例如分辨率、屏幕方向等[^3]。 2. **构建 APK 文件** 使用 Unity 中的 Build 设置来生成适用于 Android 的 `.apk` 文件。这一步会将所有的场景和资源打包成可以在 Android 上运行的形式。 ```bash File -> Build Settings -> Switch Platform to Android -> Add Current Scene -> Build and Run ``` #### 修改 Android Studio 配置支持 Unity 插件 一旦有了基础的 Unity 构建文件,就可以将其导入现有的 Android 项目或者新建一个专门用于承载 Unity 的模块。 1. **引入 UnityPlayerActivity** 将 Unity 提供的标准入口类 `UnityPlayerActivity.java` 添加到您的 Android 项目源码目录下。这个活动负责初始化引擎以及渲染画面。 2. **调整 Manifest 文件声明依赖关系和服务权限** 更新应用清单 (`AndroidManifest.xml`) 来注册新的 activity 和其他必要的服务项。确保指定了正确的 intent-filter 和 meta-data 关键字以便启动时识别版本兼容性等问题。 ```xml <activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> ``` 3. **处理生命周期同步问题** 由于两个框架都有自己的生命周期管理机制,在实际开发过程中需要注意保持一致性和协调操作顺序以免造成冲突或崩溃现象发生。可以通过监听回调函数的方式捕获重要事件点从而做出相应反应比如暂停恢复播放状态等等[^2]. 4. **优化性能表现** 最后考虑硬件加速选项开启与否对于整体流畅度的影响程度;另外还可以尝试减少不必要的纹理尺寸大小以及其他消耗较大的图形特效效果达到提升效率的目的[^1]. ```java @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); // Initialize the Unity Player. mUnityPlayer = new UnityPlayer(this); setContentView(mUnityPlayer); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值