网站有时打不开,asp网站实例,青浦企业网站制作,做公司网站页面零、最终效果
待上传
一、资源准备
1、Vuforia
Vuforia版本不能高于10.17.4#xff08;往上的版本虚拟按键功能被删除#xff09;
2、Unity
Unity版本必须要高于2022.3.x#xff0c;不然使用Vuforia插件时会出现bug
二、主要内容
1、添加虚拟按钮 2、为虚拟按钮设置…零、最终效果
待上传
一、资源准备
1、Vuforia
Vuforia版本不能高于10.17.4往上的版本虚拟按键功能被删除
2、Unity
Unity版本必须要高于2022.3.x不然使用Vuforia插件时会出现bug
二、主要内容
1、添加虚拟按钮 2、为虚拟按钮设置名字 注意当一个图片中包含多个按钮时需要为按钮设置不同的名字否则会出现bug
3、为按钮添加按下和释放时触发的事件
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;public class NewBehaviourScript : MonoBehaviour
{//获取关联按钮public VirtualButtonBehaviour virtualButton;// Start is called before the first frame updatevoid Start(){virtualButton.RegisterOnButtonPressed(ButtonPress);virtualButton.RegisterOnButtonReleased(ButtonReleased);}private void ButtonReleased(VirtualButtonBehaviour obj){throw new NotImplementedException();}private void ButtonPress(VirtualButtonBehaviour obj){print(虚拟按钮被按下);}// Update is called once per framevoid Update(){}
}
4、添加捕捉到图片和丢失图片时触发的事件
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;public class NewBehaviourScript : MonoBehaviour
{//获取图片捕捉相关脚本public DefaultObserverEventHandler machineObserverEvent;// Start is called before the first frame updatevoid Start(){machineObserverEvent.OnTargetFound.AddListener(IsFound);machineObserverEvent.OnTargetLost.AddListener(IsLost);}private void IsLost(){print(丢失图片);}private void IsFound(){print(捕捉到图片);}// Update is called once per framevoid Update(){}
}5、添加自己的识别图片数据库 将下载的包导入Unity中
6、导出过程遇到的bug及解决方法
bug: Manifest merger failed : uses-sdk:minSdkVersion 22 cannot be smaller than version 23 declared in library [:VuforiaEngine:] C:\Users\龚子亦.gradle\caches\transforms-3\5e9057ea50ce3b6971d5e4ed2fb08fbe\transformed\VuforiaEngine\AndroidManifest.xml as the library might be using APIs not available in 22 See the Console for details. 解决方法:
三、完整代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;public class Move : MonoBehaviour
{[Header(捕捉图片相关)]public GameObject machine;public DefaultObserverEventHandler machineObserverEvent;[Header(播放动画相关)]public VirtualButtonBehaviour play;public Animator machineAnimator;//判断是否播放动画private bool isPress false;[Header(拆解零件相关相关)]public VirtualButtonBehaviour move;private bool isSplitfalse;// Start is called before the first frame updatevoid Start(){//添加播放按钮按下时 触发 播放动画事件play.RegisterOnButtonPressed(PlayAnimation);//添加移动按钮按下时 触发 零件拆解事件move.RegisterOnButtonPressed(SplitItem);//捕捉到图片时 出现模型machineObserverEvent.OnTargetFound.AddListener(IsFound);//图片消失时 隐藏模型machineObserverEvent.OnTargetLost.AddListener(IsLost);}private void PlayAnimation(VirtualButtonBehaviour play){isPress !isPress;if (isPress){print(开始动画按钮被点击);machineAnimator.SetBool(isPlay, true);}else{print(结束动画按钮被点击);machineAnimator.SetBool(isPlay, false);}}private void SplitItem(VirtualButtonBehaviour split){isSplit !isSplit;if (isSplit){//零件拆开//Split();print(拆解零件按钮被点击);machineAnimator.SetBool(isSplit, true);machineAnimator.SetBool(isMerge, false);}else{//零件合并//Merge();print(合并零件按钮被点击);machineAnimator.SetBool(isSplit, false);machineAnimator.SetBool(isMerge, true);}}public void IsFound(){machine.SetActive(true);print(出现);}public void IsLost(){machine.SetActive(false);print(消失);}
}