赞
踩
Unity Vuforia播放视频全过程(从Unity的安装到打包)
一、安装Unity
(1)点击安装地址下载Unity Hub
下载好之后点击安装。
(2)从Unity Hub进去安装Unity(要先注册登陆账号)
安装完后是这样的
二、新建项目
项目创建完成打开如下:
目标平台为安卓平台,选择菜单file—>buildsetting
三、项目制作
(1)在Unity内导入vuforia engine
window—>package manager
(2)前往Vuforia注册登录账号
点击Vuforia前往官网
注册登陆之后:
创建应用
(3)上传识别图
(4)下载到Unity
(5)将下载好的文件放置进入Unity(手动拖就好)
(6)按想法(识别图片播放视频)制作工程
在此窗口点击鼠标右键
依次点击Vuforia Engine—>AR Camera
在此窗口继续鼠标右键
依次点击Vuforia Engine—>Image
(7)配置密钥
回到AR Camera,点击open vuforia engine configuration
回到Vuforia官网
将框内密钥复制进入Unity
将AR Camera的下图脚本移除(remove component)
返回至ImageTarget,将下图脚本移除:
创建脚本:
脚本代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; /*============================================================================== Copyright (c) 2017 PTC Inc. All Rights Reserved. Copyright (c) 2010-2014 Qualcomm Connected Experiences, Inc. All Rights Reserved. Confidential and Proprietary - Protected under copyright and other laws. ==============================================================================*/ using Vuforia; /// <summary> /// A custom handler that implements the ITrackableEventHandler interface. /// /// Changes made to this file could be overwritten when upgrading the Vuforia version. /// When implementing custom event handler behavior, consider inheriting from this class instead. /// </summary> public class TestAR : MonoBehaviour, ITrackableEventHandler { #region PROTECTED_MEMBER_VARIABLES protected TrackableBehaviour mTrackableBehaviour; protected TrackableBehaviour.Status m_PreviousStatus; protected TrackableBehaviour.Status m_NewStatus; #endregion // PROTECTED_MEMBER_VARIABLES #region UNITY_MONOBEHAVIOUR_METHODS protected virtual void Start() { mTrackableBehaviour = GetComponent<TrackableBehaviour>(); if (mTrackableBehaviour) mTrackableBehaviour.RegisterTrackableEventHandler(this); } protected virtual void OnDestroy() { if (mTrackableBehaviour) mTrackableBehaviour.UnregisterTrackableEventHandler(this); } #endregion // UNITY_MONOBEHAVIOUR_METHODS #region PUBLIC_METHODS /// <summary> /// Implementation of the ITrackableEventHandler function called when the /// tracking state changes. /// </summary> public void OnTrackableStateChanged( TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus) { m_PreviousStatus = previousStatus; m_NewStatus = newStatus; if (newStatus == TrackableBehaviour.Status.DETECTED || newStatus == TrackableBehaviour.Status.TRACKED || newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED) { Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found"); OnTrackingFound(); } else if (previousStatus == TrackableBehaviour.Status.TRACKED && newStatus == TrackableBehaviour.Status.NO_POSE) { Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost"); OnTrackingLost(); } else { OnTrackingLost(); } } public GameObject panel; #endregion // PUBLIC_METHODS #region PROTECTED_METHODS protected virtual void OnTrackingFound() { var rendererComponents = GetComponentsInChildren<Renderer>(true); var colliderComponents = GetComponentsInChildren<Collider>(true); var canvasComponents = GetComponentsInChildren<Canvas>(true); // Enable rendering: foreach (var component in rendererComponents) component.enabled = true; // Enable colliders: foreach (var component in colliderComponents) component.enabled = true; // Enable canvas': foreach (var component in canvasComponents) component.enabled = true; panel.SetActive(true); } protected virtual void OnTrackingLost() { var rendererComponents = GetComponentsInChildren<Renderer>(true); var colliderComponents = GetComponentsInChildren<Collider>(true); var canvasComponents = GetComponentsInChildren<Canvas>(true); // Disable rendering: foreach (var component in rendererComponents) component.enabled = false; // Disable colliders: foreach (var component in colliderComponents) component.enabled = false; // Disable canvas': foreach (var component in canvasComponents) component.enabled = false; panel.SetActive(false); } #endregion // PROTECTED_METHODS }
(8)编辑设置页面(使用VideoPlayer播放视频)
选中ImageTarget,鼠标右键—>UI—>Canvas
选中Canvas,鼠标右键—>Video—>VideoPlayer
选中VideoPlayer,更改分辨率大小,并添加RawImage
创建Render Texture
右键Asset—>Greate—>Render Texture
选中Render Texture,更改分辨率
赋值给VideoPlayer和RawImage
(9)将要播放的视频放入工程(手动拖拽就好)
将Canvas隐藏,并将Canvas赋值给脚本TestAR(手动拖拽)
Ctrl+S保存项目,点击如下按钮运行:
将识别图放入摄像头识别区内即可播放视频
四、项目打包
菜单栏file—>buildsetting
将场景添加(手动拖拽)
点击build
至此打包完成。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。