10491人加入学习
(62人评价)
AR系列教程 - Vuforia入门 ( Unity 2017.3 )

制作完成于2018-01-16

价格 免费

ImageTarget 组件用来进行图像识别。

直接将Aixi 

[展开全文]

删除ARcamera后还会有调用摄像头的情况,可以在build setting里面取消勾选AR开发。

[展开全文]

Image target 脚本分析

if(VuforiaRuntimeUtilities.IsVuforiaEnable()):判断是否检查到摄像头。

DefaultTrackableEvenHandlier.cs脚本很为关键

里面主要有Change、Found、Lost三个方法。调用不同的方法即可实现不同的工作。

 

AR主要思路就是。一开始将场景中的物体的meshrender等组件给注释掉,然后若是通过摄像头检测到相对应的图片,即执行现实meshrender等组件的方法。就能

 

 

[展开全文]

1.上传图片至database,然后下载package包

2.导入package包,editor->vuforia->ImageTargetTexture.

 

3.选AR camera  -》open vuforia..->勾选database里面选项。

4.在图片上建子物体即可在摄像头检测到图片时现实子物体。

 

[展开全文]

图片内容棱角分明

对比度强

[展开全文]

//放大缩小
Vector2 oldPos1;
Vector2 oldPos2;
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);
            }
            if(isEnlarge(oldPos1,oldPos2,temPos1,temPos2))
            {
                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;
    }
}

[展开全文]

AR:增强显示技术

AR技术的原理:

1用摄像机拍摄场景

[展开全文]

ImageTarget:识别图片

官网创建数据库、导入图片,然后下载

ImageTarget的Database勾选需要的数据库和图片

ARCamera的open vuforia configura下勾选前述database并设置active

[展开全文]

ARCamera

1. 调用设备摄像机

2. behavior接口

 

[展开全文]

(1)图片识别

(2)手势识别

 

(3)图片选择

 

 

[展开全文]

public class PlayerRotate : MonoBehaviour {
    float xSpeed = 150f;

    // 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);
                }
            }

        }    
    }
}

[展开全文]

1.触屏检测

        if (Input.GetMouseButtonDown(0))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hitInfo;
            if (Physics.Raycast(ray,out hitInfo))
            {
                if (Input.touchCount==1&&Input.GetTouch(0).phase==TouchPhase.Began)
                {
if(Input.GetTouch(0).tapCount==2)                    Destroy(hitInfo.collider.gameObject);
                }
            }
        }

[展开全文]

1.AudioSource和AudioClip的区别

2.Invoke()函数的用法

[展开全文]
zb28 · 2018-02-23 · 15-音效添加 0

利用renderTexture进行阴影模拟。rederTexture上的东西就是某个被指定的相机看到的东西。其实它还是一张贴图,可以把它赋给某个物体上的材质上。

关于Camera dont clean 未明

[展开全文]
Kirds · 2018-02-14 · 14-阴影制作 0

RendTexture渲染纹理

TenderTexture rt=new TenderTexture(Screen.width,Screen.height.)

arCamera.targetTexture=rt;

arCamera.Render();

RenderTexture.active=rt;

 

//重置

arCamera.targetTexture=null;

RenderTexture.active=null;

Destory(rt);

 

[展开全文]

ScreenShot 截屏功能

ARscreenShot 

点击按钮,截屏

截屏逻辑:获得系统时间,存放文件位置,命名。

获得当前系统时间

System.DateTime now=System.System.DateTime.Now;

 

[展开全文]

Mathf.Sqrt 开根号的方法 (勾股定理)

[展开全文]

授课教师

SIKI学院老师

课程特色

图文(1)
下载资料(1)
视频(24)

学员动态