天天看點

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

文章目錄

  • Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】
    • 1.環境搭建
    • 2.資源導入
    • 3.互動之旋轉 & 附加代碼
    • 4. Making Animator
    • 5.試運作導出APK
    • 6.使用安卓手機下載下傳安裝及可能出現的問題
    • 7.适用的機型及問題的解決方法
    • 8.效果展示

1.環境搭建

環境搭建,包括Vuforia官網的注冊登入,密鑰擷取,在Unity中對Vuforia Engine AR插件的安裝等等

這裡是在Unity中對Vuforia Engine AR插件的方法https://blog.csdn.net/m0_57495651/article/details/128107903

這裡是環境搭建需要完成的其他步驟:https://blog.csdn.net/m0_57495651/article/details/128108242

2.資源導入

我已經在我的個人首頁資源中上傳(名稱同本文章标題)

将FBX檔案導入Unity

3.互動之旋轉 & 附加代碼

(1)Create C# Script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class rotate : MonoBehaviour {

    float xSpeed = 150.0f;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        if (Input.GetMouseButton(0))
        {
            if (Input.touchCount == 1)
            {
                if (Input.GetTouch(0).phase == TouchPhase.Moved)
                {
                    transform.Rotate(Vector3.up * Input.GetAxis("Mouse X") * -xSpeed * Time.deltaTime, Space.World);
                }
            }
        }
	}
}
           

(2)再Create C# Script

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class enlarge : MonoBehaviour {

    Vector2 oldPos1;
    Vector2 oldPos2;

	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
        if (Input.touchCount == 2)
        {
            if (Input.GetTouch(0).phase == TouchPhase.Moved || Input.GetTouch(1).phase == TouchPhase.Moved)
            {
                Vector2 tempos1 = Input.GetTouch(0).position;
                Vector2 tempos2 = Input.GetTouch(1).position;

                if (isEnlarge(oldPos1, oldPos2, tempos1, tempos2))
                {
                    float oldScale = transform.localScale.x;
                    float newScalse = oldScale * 1.025f;

                    transform.localScale = new Vector3(newScalse, newScalse, newScalse);
                }
                else
                {
                    float oldScale = transform.localScale.x;
                    float newScalse = oldScale / 1.025f;

                    transform.localScale = new Vector3(newScalse, newScalse, newScalse);
                }

                oldPos1 = tempos1;
                oldPos2 = tempos2;
            }
        }
	}

    //判斷手勢
    bool isEnlarge(Vector2 oP1,Vector2 oP2,Vector2 nP1,Vector2 nP2)
    {
        float length1 = Mathf.Sqrt((oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y));
        float length2 = Mathf.Sqrt((nP1.x - nP2.x) * (nP1.x - nP2.x) + (nP1.y - nP2.y) * (nP1.y - nP2.y));

        if (length1 < length2)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}
           

4. Making Animator

由于内容過于簡單不進行圖文描述

【讀者也可跳過此步驟,上述步驟3的代碼互動旋轉亦可實作,

此步驟是制作動畫狀态機,不制作動畫狀态機項目也可以正常運作,

不會産生任何影響】

提醒:讀者Making Animator後,記得将狀态機挂載至對象上

5.試運作導出APK

【以下内容源自我的第二篇文章(02圖檔識别教程)6——8步驟】

不了解的讀者可以點選【02】2022.11最新超詳細Vuforia圖檔識别教程此連結學習6——8步驟,也可繼續閱讀下面内容學習,一模一樣的,請放心學習!

點選如下圖所示,File——Building Settings

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

選擇安卓平台

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

選如下圖所示紅框(Switch Platform)選擇該安卓平台

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

選擇【Build】

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

因為是第一次導出APK,會比較慢!請耐心等待!别急!會成功的!

進度條走完後,彈出框如下圖所示

(自行命名,我比較喜歡以時間命名來區分,現在是2022.11.27,我就以今天命名了,讀者可以自由命名)

命名完後,點選【儲存】

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

接下來,找到我們剛剛導出的APK,将APK發送到安卓手機上。

6.使用安卓手機下載下傳安裝及可能出現的問題

安卓手機接收到APK後,點選接收,再點選安裝

這裡提醒一下:安卓手機首次安裝該apk,會被要求谷歌下載下傳一個東西,根據提示放心下載下傳!!!後面我們做項目将apk導入安卓手機時就不會彈出來了

安裝後打開對着剛剛添加的Image,即可看到效果(我們Image Target下面的物體)

注意:這裡分享一下常見問題

(1)手機無法安裝

(2)點開後黑屏

7.适用的機型及問題的解決方法

(1)适用機型:小米,OPPO, VIVO ,iQOO,一加,聯想等安卓手機均可實作

(2)上述兩個問題的解決方法:

A1:手機無法安裝:IOS系統和華為手機無法使用、含手機管家的需要關閉或不讓其掃描或不開啟安全安裝,選擇直接安裝

A2:點開後黑屏:沒有開啟攝像頭權限

8.效果展示

【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】
【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】
【03】Unity AR 2022Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】Unity AR Vuforia(拓展)——Vuforia圖檔識别超詳細案例(小島動畫互動)【含代碼】

上述的部分内容源自我的第一篇,第二篇文章中。本文提煉了案例的主幹内容,但是所有步驟都已經寫明,且當時本文引用的出處已經标記了引自我的哪篇文章哪幾個步驟,學習起來也很友善的!

【01】如何在Unity 中 安裝 Vuforia Engine AR 插件?(附加檢驗安裝成功方法) https://blog.csdn.net/m0_57495651/article/details/128107903

【02】2022.11最新超詳細Vuforia圖檔識别教程https://blog.csdn.net/m0_57495651/article/details/128108242

繼續閱讀