gpt4 book ai didi

c# - 在 Android 中通过点击按钮加载 AR 模型

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:18 25 4
gpt4 key购买 nike

我使用 Unity 和 Vuforia 制作了一个基本的 AR 应用程序并将其导出到 Android,因此我可以在其中添加一些 Activity 。当我在应用程序中使用 AR 相机扫描图像时,会弹出一个模型。没有什么新鲜事。

我想要实现的是,当用户在某些 Activity 中点击按钮时,假设按钮上的文本是“大象”,应用程序中的 AR 相机打开,扫描图像并加载模型一头大象。

我的问题是:这可能吗?是否可以根据用户输入加载模型?如果可能的话,搜索有关它的一些文档的最佳位置是什么?我已经在互联网上搜索过,但找不到这么具体的东西。我也是 Unity 和 Vuforia 的新手,所以我对该程序了解不多。只有一些教程涵盖的内容。

如果这个问题已经被问过/回答过,我深表歉意。

提前致谢!

最佳答案

嗯,是的,这是可能的。为了让您的应用真正使用 AR 功能,您可以实现虚拟按钮技术。

老实说,说到文档,高通是没用的。但由于您将 Unity 与 Vuforia Extension 结合使用,幸运的是大多数功能都在 Unity 文档中。

我将解释如何通过两种方式实现这一目标:

<强>1。使用虚拟按钮 (VB)

首先,首先从 Assets>Qualcomm>Prefabs>Virtual Button 将 VB 添加/删除到场景中。确保 VB 是所用图像目标的子对象。

为定义 VB 需要执行的操作的图像目标创建一个新脚本。

您将从注册按钮开始:

void Start () {
VirtualButtonBehaviour[] vbs = transform.GetComponentsInChildren<VirtualButtonBehaviour> ();

for (int i=0; i < vbs.Length; ++i) {
vbs[i].RegisterEventHandler(this);
}

现在你继续从按钮的功能开始

public void OnButtonPressed(VirtualButtonAbstractBehaviour vb){
//specify which button you want to function by using the if statement
if(vb.name=="ButtonName") { callButtonfunction();}
}

类似地,如果您希望按钮在释放时执行某些操作:

public void OnButtonReleased(VirtualButtonAbstractBehaviour vb){
//specify which button you want to function by using the if statement
if(vb.name=="ButtonName") { callButtonfunction();}
}

如果您希望按钮控制游戏对象,请继续将游戏对象声明为类中的公共(public)变量,以便可以在检查器中访问它并进行相应分配。

public GameObject human;

其中GameObject是变量类型,human是我们引用的变量名

现在,根据您想要获得的结果,有两种方法可以指定callbuttonfunction() 可以执行的操作。

  • Application.LoadLeve("Levelname")

这会加载一个新场景,其中新对象被加载到同一个图像目标上

  • Model.enabled(false)Elephant.enabled(true)

这只是禁用了当前模型并启用了大象模型。在类(class)开始时将这些设置为公共(public)变量将使在 Inspect 元素中分配模型变得更加容易。

<强>2。屏幕按钮 (OB)

  • 如果您想要屏幕上的按钮,只需将按钮 UI 设置为相机的父级,然后将其放置在屏幕的特定角落或其他地方即可。
  • 现在,如果您操作按钮,它将位于 void Update() 内,您可以使用来自 Unity 的脚本引用使用触摸功能。

Really hope this helps you and everyone else who suffers from absolutely NO support from Qualcomm. Hit me up if you need more clarification.

关于c# - 在 Android 中通过点击按钮加载 AR 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29522795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com