我使用Unity& amp;创建了一个基本的AR应用程序Vuforia并将其导出到Android,所以我可以在那里添加一些活动。当我在应用程序中使用AR相机扫描图像时,会弹出一个模型。没有什么新东西。
我想要实现的是,当用户点击某个活动中的按钮时,可以说按钮上的文字是" Elephant",应用程序中的AR相机打开,扫描图像并加载大象的模型。
我的问题是:这可能吗?是否可以根据用户输入加载模型?如果这是可能的,那么搜索一些关于它的文档的最佳位置是什么?我已经在互联网上搜索过,但找不到任何具体的内容。我也是Unity&的新手。 Vuforia,所以我不太了解这个项目。只有一些教程涵盖的内容。
如果已经询问/回答了这个问题我很抱歉。
提前致谢!
答案 0 :(得分:8)
嗯,是的,这是可能的。为了让您的应用真正使用AR功能,您可以实现虚拟按钮技术。
老实说,在文档方面,高通毫无用处。但是,由于您将Unity与Vuforia Extension一起使用,因此大多数功能都很幸运地存在于Unity文档中。
我将解释如何通过两种方式实现这一目标:
<强> 1。使用虚拟按钮(VB)
首先,从Assets>Qualcomm>Prefabs>Virtual Button
向场景添加/删除VB开始。确保VB是使用的Image Target的子代。
为Image Target创建一个新脚本,用于定义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();}
}
如果您希望按钮控制Gameobject,那么请继续将GameObject声明为类中的公共变量,以便可以在Inspector中访问它并进行相应的分配。
public GameObject human;
其中GameObject是变量类型,human是我们用作参考的变量名
现在再次,根据您想要获得的内容,有两种方法可以分配callbuttonfunction()
可以执行的操作。
Application.LoadLeve("Levelname")
这将加载一个新场景,其中新对象被加载到同一个图像目标
Model.enabled(false)
和Elephant.enabled(true)
这只是禁用了当前模型并启用了Elepant模型。 在类的开头将这些设置为公共变量将使在Inspect元素中分配模型变得更容易。
<强> 2。屏幕按钮(OB)
void Update()
内,您可以使用触摸功能从Unity使用脚本参考。真的希望这可以帮助你和其他所有患病的人 绝对没有高通的支持。 如果你需要更多澄清,请打我。