unity中使用射线碰撞来触发AR中的交互

来源:互联网 发布:多得美工学院 编辑:程序博客网 时间:2024/05/21 22:43

在用Vuforia或者是Esay AR插件开发应用时,我们需要通过点击物体触发一些事件,这时我们可以通过射线来判断是否点击到物体上并触发相应的事件。



using System.Collections;using System.Collections.Generic;using UnityEngine;public class PhysicsCollider : MonoBehaviour{    public Camera mainCrma;//这个相机用ARCamera下的相机    private RaycastHit objhit;    private Ray _ray;    void Update()    {        if (Input.GetMouseButtonDown(0))        {            _ray = mainCrma.ScreenPointToRay(Input.mousePosition);//从摄像机发出一条射线,到点击的坐标            Debug.DrawLine(_ray.origin, objhit.point, Color.red, 2);//显示一条射线,只有在scene视图中才能看到            if (Physics.Raycast(_ray, out objhit, 100))            {                GameObject gameObj = objhit.collider.gameObject;//获取到射线碰撞到的物体                                                                //TODO:然后进行你想要的事件处理                //if (gameObj.name=="fool")                //{                                    //}            }        }    }}