目的:
1.閱讀學習Vuforia for Unity開發,實作手機平台上的AR效果.
2.自主思考編寫用于AR中視訊背景shader,用于AR書籍中有效覆寫書頁中特定部分。第3-4周完成實驗1,打分方法,在自己的手機上實作基本AR效果填寫基本AR功能實驗報告,提出AR中視訊背景shader的思路,實作有效的AR中視訊背景shader。
實作步驟:
1. 首先閱讀Vuforia for Unity的教程。
2. 在vuforia上進行了注冊,然後下載下傳了vuforia的檔案到unity裡面。
3. 加入了ARCamera錄影機。
4. 我們把一張照片上傳到vuforia上,然後再unity的三維空間内建立了一個平面把這張圖檔作為這個平面的材質。并調整了相機的位置。
5. 然後擷取AR的Key,黏貼到所在位置
6. 這時候就完成了錄影機和畫面的互動。
7. 導入模型到裡面,然後就會發現當你把圖對着攝像頭,就會有模型浮現在平面上。
8.建立一個新場景,建立imageplane,同樣使用上一個實驗已經識别的圖檔。
9.建立兩個按鈕,在text中命名為next和front。
10.設定ARcamera和button到合适的角度。
11.建立C#腳本。
Int count作為向前或向後翻頁的表示,lastorder為目前頁數。以page方法得到将要翻到的頁數。
public void paging(int count)
{
Bookorder = Mathf.Clamp(Bookorder + count, 0, 11);
}
進行翻頁,為了防止書頁重疊到一起,翻頁的角度有微小的差别。
void Update()
{
Hashtable args = new Hashtable();
args.Add("x", 0);
args.Add("y", 0);
args.Add("delay", 0f);
args.Add("easeType", iTween.EaseType.easeOutCubic);
if (Bookorder - lastBookorder > 0)
{
switch (Bookorder)
{
case 1:
args.Add("z", 180f);
iTween.RotateAdd(page1.gameObject, args);
//iTween.RotateAdd (page1.gameObject, null, time, 0, 0, 180, iTween.EaseType.easeOutCubic);
break;
case 2:
args.Add("z", 179.9f);
iTween.RotateAdd(page2.gameObject,args);
//iTween.RotateAdd (page2.gameObject, null, time, 0, 0, 179.999f, iTween.EaseType.easeOutCubic);
break;
case 3:
args.Add("z", 179.8f);
iTween.RotateAdd(page3.gameObject, args);
//iTween.RotateAdd (page3.gameObject, null, time, 0, 0, 179.998f, iTween.EaseType.easeOutCubic);
break;
}
}
else if (Bookorder - lastBookorder < 0)
{
switch (Bookorder)
{
case 0:
args.Add("z",-180f);
iTween.RotateAdd(page1.gameObject, args);
//iTween.RotateAdd (page1.gameObject, null, time, 0, 0, -180f, iTween.EaseType.easeOutCubic);
break;
case 1:
args.Add("z", -179.999f);
iTween.RotateAdd(page2.gameObject, args);
//iTween.RotateAdd (page2.gameObject, null, time,
0, 0, -179.999f, iTween.EaseType.easeOutCubic);
break;
case 2:
args.Add("z", -179.998f);
iTween.RotateAdd(page3.gameObject, args);
//iTween.RotateAdd (page3.gameObject, null, time, 0, 0, -179.998f, iTween.EaseType.easeOutCubic);
break;
}
}
lastBookorder = Bookorder;
}
儲存腳本。
12.在unity中設定腳本要求的各個參數。