Chinar 堅持將簡單的生活方式,帶給世人! (擁有更好的閱讀體驗 —— 高分辨率用戶請根據需求調整網頁縮放比例) |
助力快速完成AR的簡單開發,學習 Vuforia 的使用流程 為新手節省寶貴的時間,避免采坑! |
Chinar 教程效果:
一
Vuforia —— 增強現實
Vuforia —— 是AR開發工具中的一種,接入較為簡單、且使用方便!
由於該公司和 Unity 公司進行合作,所以在2017較新版本中,直接選擇安裝 Vuforia 插件,即可在 Unity 中直接導入 Vuforia 。
具體安裝步驟,就在 Unity 安裝程序中選中 Vuforia ,這里就不在做過多的陳述!
使用 Vuforia 需要先注冊賬號
二
Create Development Key —— 創建開發者資源
1. 登陸后,點擊 Get Development Key
2. 創建密鑰
3. 創建數據庫
4. 在數據庫中添加一個圖片
圖片最好選擇銳化度較高的、棱角分明的圖片
(圖片最大不能超過 2M/如果png不成功,就用jpg嘗試)
上傳后, Vuforia 后台,會自動生成文件加入當前數據庫,並對圖片打分1-5星不等
5星,AR測試識別率最高
在此,我用手機桌面來做測試!上傳后,會給5顆星!
5. 下載數據庫,放在桌面上待用!
三
Unity Vuforia Setting —— Unity中 Vuforia 的設置
下面,來到 Unity 中對 Vuforia 進行設置
如果菜單欄中 GameObject 中有 Vuforia 選項,則證明已經正確安裝
否則需要自己去安裝后,再進行一下操作

1. 添加 AR Camera
2. 設置 AR Camera 上的腳本組件 Vuforia Behavior
由於 Vuforia Behavior 為,警告:不可用狀態
所以需要在 Player Setting 中進行設置
3. 添加密鑰
添加我們之前在Vuforia網站創建的開發者密鑰
4. 導入數據庫,並設置
導入我們已經創建好的 Vuforia 數據庫包 TestOneData.unitypackage 到 Unity 工程中
5. 添加AR Image
右鍵層次列表,添加 AR Image
並在檢視面板中對屬性進行設置,選擇自己創建的數據 TestOneData
6. 添加物體
添加一個球體,用於測試AR是否正常運行
注意:
物體必須是 ImageTarget 的子物體
設置完成后點擊 測試即可 (需要電腦有攝像頭)
7. 測試效果
當鏡頭對准我們設置好的圖像后,會顯示 球體
Vuforia 免費版,都會有Logo
見諒:(我的台式電腦沒配攝像頭)
該測試圖樣,來自於我5年前的備用機 HTC One ,有些老舊、進灰
8. ——安卓打包報錯
上邊提到,安卓打包會報錯
那是因為 Vuforia 不支持 Android TV ,所以需要在 Player Setting 中關閉該選項
即可成功打包工程
至此:Vuforia 基本操作流程完美結束
四
Explain —— 說明
如果想要進行更多的操作,*需要深入學習
其他就跟平時寫 Unity 項目一樣了,通過代碼控制, UGUI 添加界面即可
沒有什么區別
例如想讓物體動起來、變色,直接加代碼即可
給球添加一個材質球,把腳本掛在 球身上
即可實現每隔一秒變一次色
using System.Collections;
using UnityEngine;
/// <summary>
/// 改變球體顏色
/// </summary>
public class ChangeBall : MonoBehaviour
{
private Material deMaterial; //默認材質
public float speed = 10f; //漸變速度
public float rotateSpeed = 360f; //旋轉速度
void Start()
{
deMaterial = GetComponent<MeshRenderer>().material;
InvokeRepeating("ChangeColor", 1, 1);
}
void Update()
{
transform.Rotate(Vector3.up, rotateSpeed * Time.deltaTime); //自轉
}
/// <summary>
/// 隨機顏色
/// </summary>
/// <returns> Color </returns>
private Color RandomColor()
{
float r = Random.Range(0f, 1f);
float g = Random.Range(0f, 1f);
float b = Random.Range(0f, 1f);
Color color = new Color(r, g, b);
return color;
}
/// <summary>
/// 改變顏色
/// </summary>
private void ChangeColor()
{
StopAllCoroutines();
Color temColor = RandomColor();
StartCoroutine(ColorEnumerator(temColor));
}
/// <summary>
/// 開啟協程 —— 循環顏色
/// </summary>
/// <returns></returns>
IEnumerator ColorEnumerator(Color temColor)
{
while (true) //死循環
{
deMaterial.color = Color.Lerp(deMaterial.color, temColor, speed * Time.deltaTime); //插值
yield return 10; //每次暫停10幀
}
}
}
支持
May Be —— 搞開發,總有一天要做的事!
Chinar 提供一站式教程,閉眼式創建! 為新手節省寶貴時間,避免采坑! |
先點擊領取 —— 阿里全產品優惠券 (享受最低優惠)
1 —— 雲服務器超全購買流程 (新手必備!)
2 —— 阿里ECS雲服務器自定義配置 - 購買教程(新手必備!)
3—— Windows 服務器配置、運行、建站一條龍 !
4 —— Linux 服務器配置、運行、建站一條龍 !

Chinar
本博客為非營利性個人原創,除部分有明確署名的作品外,所刊登的所有作品的著作權均為本人所擁有,本人保留所有法定權利。違者必究
對於需要復制、轉載、鏈接和傳播博客文章或內容的,請及時和本博主進行聯系,留言,Email: ichinar@icloud.com
對於經本博主明確授權和許可使用文章及內容的,使用時請注明文章或內容出處並注明網址