目的:
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中设置脚本要求的各个参数。