ARFoundation之路-環境配置(iOS)之二

(一)AppController

  在Project窗口Scripts文件夾下,空白處點擊鼠標右鍵,在彈出的級聯菜單中依次選擇Create -->C# Script,新建一個腳本文件,並命名爲AppController,如下圖所示。
在這裏插入圖片描述
  鼠標雙擊AppController腳本,在Visual Studio中編輯該腳本,添加如下代碼。

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;

[RequireComponent(typeof(ARRaycastManager))]
public class AppControler : MonoBehaviour
{
    public  GameObject spawnPrefab;
    static List<ARRaycastHit> Hits;
    private ARRaycastManager mRaycastManager;
    private GameObject spawnedObject = null;
    private void Start()
    {
        Hits = new List<ARRaycastHit>();
        mRaycastManager = GetComponent<ARRaycastManager>();
    }

    void Update()
    {
        if (Input.touchCount == 0)
            return;
        var touch = Input.GetTouch(0);
        if (mRaycastManager.Raycast(touch.position, Hits, TrackableType.PlaneWithinPolygon | TrackableType.PlaneWithinBounds))
        {
            var hitPose = Hits[0].pose;
            if (spawnedObject == null)
            {
                spawnedObject = Instantiate(spawnPrefab, hitPose.position, hitPose.rotation);
            }
            else
            {
                spawnedObject.transform.position = hitPose.position;
            }
        }
    }
}

  在上段代碼中,首先我們使用[RequireComponent(typeof(ARRaycastManager))]屬性確保添加該腳本的對象上必須要有ARRaycastManager組件,因爲射線檢測需要用到ARRaycastManager組件。在Update()方法中,我們對手勢進行射線檢測,在檢測到的平面上放置一個虛擬物體,如果該虛擬物體已存在,則將該虛擬物體的移動到射線檢測與平面的碰撞點。

  經過以上步驟,整體AR應用框架已完全搭建起來了,最後,我們在Hierarchy窗口中製作一個Sphere,爲其賦上綠色材質,將其Scale縮放成(0.1,0.1,0.1),最後將其製作成Prefab並刪除Hierarchy場景中的Sphere,如下圖所示。
在這裏插入圖片描述
  最後,在Hierarchy窗口中選中AR Session Origin,爲其添加前面編寫的AppController腳本(可以使用Add Component在搜索框中搜索AppController添加,也可以直接把AppController腳本拖到AR Session Origin對象上),並將上一步製作的Sphere拖到AppController腳本的Spawn Prefab屬性框中。

在這裏插入圖片描述
  至此,Helloworld AR應用已完成環境搭建和功能開發。

(二)生成並配置XCode工程

  將iPhone手機通過USB線或者WiFi連接上電腦,直接按Command+Shift+B組合鍵(或者選擇File-> Build Settings)打開Build Settings對話框,如下圖所示。在打開的對話框中保證選中當前場景,點擊Build And Run將生成XCode工程,建議將工程保存到另一個工程文件夾下,設置發佈後的程序名,最後點擊“保存”按鈕開始編譯生成XCode工程,生成完成後會自動打開XCode IDE(如果沒有自動打開XCode,可以先啓動XCode選擇右下角的Open another Project,選擇我們用Unity發佈出來的Xcode工程並打開)。
在這裏插入圖片描述

在這裏插入圖片描述

  如若編譯沒有錯誤,在XCode打開生成的工程後,依次選擇XCode工程圖標 -->工程名,然後選擇發佈的設備iPhone手機,因爲我們是在要真機上測試應用,如下圖所示。
在這裏插入圖片描述  在工程屬性面板中,選擇General選項卡,填寫好Display Name(工程名)、Bundle Identifier(包ID)、Version、Build,Bundle Identifier也即是我們在Unity中設置好的Bundle Identifier,如果要發佈到AppStore上,Bundle Identifier必須與開發者網站上的設置一樣,Version、Build也要符合按遞增的要求,並選擇開發者證書,如下圖所示。
在這裏插入圖片描述
  如果還沒有開發者賬號,可點擊Team 框後的下攔菜單,選擇Add an Account 新建一個開發者賬號,具體操作請參見官方說明文檔,如下圖所示。

在這裏插入圖片描述
在這裏插入圖片描述

(三)運行Helloworld

  在XCode配置完後,點擊XCode IDE左上角的編譯運行圖標開始編譯、部署、運行。

在這裏插入圖片描述
  如果是iPhone手機是第一次運行XCode應用,還需要設置一下,第一步,打開手機設置–>通用,找到“設備管理”,如下圖所示。
在這裏插入圖片描述
  進入設備管理後,點擊開發者賬號,如下圖所示。
在這裏插入圖片描述
  在開發者應用管理界面點擊“驗證應用”,iPhone手機會對該開發者進行網絡認證,認證通過後,應用後會出現“已驗證”字樣,至此就可以通過XCode直接部署應用到手機並運行應用了。
在這裏插入圖片描述
  若整個過程沒有出現問題(有問題是必然的,出現問題後請查閱相應資料解決之),在Helloworld AR應用打開後,找一個相對平坦且紋理比較豐富的平面左右移動手機進行平面檢測,在檢測到平面後,手指點擊手機屏幕上已檢測到的平面,將會在該平面上加載一個小球,如下圖所示。至此,我們使用ARFoundation開發的iOS Helloworld AR應用已成功。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章