关于VR的一些事(初学:9)

关于识别照片的选择:
有棱有角,,无光泽的卡片最好,较硬的卡片不会有歪曲和褶皱的地方,可以更好的聚焦。
图片要包含细节,较高的对比度,最好没有重复的图像,例如街道,运动场的等。
注意:上传到网上的图片有%8的宽度被称为功能排斥缓冲区,,也就是说,这部分的内容不会被识别。
轮廓越多,棱角越分明,图片识别杜越好,进行图像识别的时候,光照也很重要,漫反射灯光,与光照适度明亮的情况,识别度是最好的。
关于识别的函数:
首先,当你想令摄像头检测到识别的照片,会出现一些你想要出现的图像的时候,需要在AR camera自带的脚本中修改功能,比如,我想要当摄像头追踪到某一张特定图片的时候,将艾希的人物模型显示出来应该这样重写代码:

protected virtual void OnTrackingFound()//在追踪到卡片的时候进行的操作
    {

        GameObject AX = GameObject.Instantiate(AiXiprefab);//首先将艾希的预制体实例化
        AX.transform.position = this.transform.position;//然后将艾希的位置固定于卡片的位置
        AX.transform.parent = this.transform;//将卡片设置成艾希预制体的父本,因为AR的追踪函数都是针对其父本的子物体而言的
        
    }

然后当所识别的图像丢失的时候,销毁模型

 protected virtual void OnTrackingLost()
    {
        Destroy(GameObject.Find("AiXi(Clone)"));
        //切换识别图片的功能
    }

实现AR长按屏幕,销毁模型的功能
新建脚本

void Update()
    {
        if (Input.GetMouseButton(0))//作用就是当单击寒冰,让寒冰自动消失
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//向手指点击的位置发射一条射线
            RaycastHit hitInfo = new RaycastHit();//接收返回的信息,射线触碰到谁就返回谁的信息??
            Debug.Log("点击事件");
            Debug.Log(Physics.Raycast(ray, out hitInfo,10000));
            if (Physics.Raycast(ray, out hitInfo))//若发射的射线与屏幕中的任意碰撞器发生碰撞,则返回碰撞器的详细信息
            {
                Debug.Log("判断事件");
                if (Input.touchCount == 1)
                {
                    Debug.Log("触摸事件");
                    Touch touch = Input.GetTouch(0);//获取到点击屏幕的事件

                    if (touch.phase == TouchPhase.Began)
                    {
                        newTouch = true;
                        touchTime = Time.time;
                    }
                    else if (touch.phase == TouchPhase.Stationary)//说明现在的点击状态是点击之后静止也就是长按
                    {
                        if (newTouch == true && Time.time - touchTime > 1F)
                        {
                            newTouch = false;
                            Destroy(hitInfo.collider.gameObject);//销毁所触碰到的物体
                        }
                    }
                    else
                    {
                        newTouch = false;
                    }

                }
            }
        }
    }
}

将此脚本挂在ARcamera上,切记切记,把MainCamera删除。

设置人物模型的大小的时候,如果我们把ARcamera 自带的Default Trackable EventHandler (Script)删掉,或者修改之后,InageTarget的大小可能会影响到我们动态生成的人物模型的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值