Unity 射线

作者: U3D界金城武 | 来源:发表于2017-02-27 17:47 被阅读114次

1,摄像机射线:

 Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0));
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit))
        {
            Debug.DrawLine(ray.origin, hit.point);  //显示出射线
            //Debug.DrawLine(transform.position, hit.point, Color.red);
            if (hit.collider.gameObject.name == "dogpoint") 
            {
                play.dog1();  
                hit.collider.gameObject.SetActive(false); //碰到的物体关闭
             }
         }

2, 物体发射射线:

//通过标签指定
//ray = new Ray(GameObject.FindGameObjectWithTag("Player").transform.position, GameObject.FindGameObjectWithTag("Player").transform.forward);
//通过cam 坐标
//ray = new Ray(game.position, game.forward);

 Vector3 fwd = transform.TransformDirection(Vector3.forward);
        RaycastHit hit;
        if (Physics.Raycast(transform.position,fwd,out hit))
        {
            Debug.DrawLine(ray.origin, hit.point);  //显示出射线
           //Debug.DrawLine(transform.position, hit.point, Color.red);
            if (hit.collider.gameObject.name == "dogpoint") 
            {
                play.dog1();  
                hit.collider.gameObject.SetActive(false); //碰到的物体关闭
             }
         }

3, 点击发出射线:

if (Input.GetMouseButtonDown(0))
        {    //首先判断是否点击了鼠标左键

            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);    //定义一条射线,这条射线从摄像机屏幕射向鼠标所在位置
            RaycastHit hit;    //声明一个碰撞的点(暂且理解为碰撞的交点)
            if (Physics.Raycast(ray, out hit))    //如果真的发生了碰撞,ray这条射线在hit点与别的物体碰撞了
            {
                if (hit.collider.gameObject.name == "Qingting")    //如果碰撞的点所在的物体的名字是“StartButton”(collider就是检测碰撞所需的碰撞器)
                {
                    print("蜻蜓");
                    play = ZT.s1;
                    }
                }
            }
        }

相关文章

  • Unity 射线

    1,摄像机射线: 2, 物体发射射线: 3, 点击发出射线:

  • Unity射线

    射线 与现实中激光手电(激光笔)类似,射线的两个要素:原点和方向。unity引擎引入了这种机制,可以通过代码在场景...

  • unity 射线过滤

    刚刚看了官方文档,推荐layers来做我直接翻译了一下官方文档这个是官方文档链接 https://docs.uni...

  • Unity 基础 - 射线

    Unity 中虚拟射线能够检测所碰撞到物体,使用 Physics 类的 Raycast 方法实现色心啊碰撞检测功能。

  • 射线检测-unity

    与最近物体碰撞取得位置: 与指定层的物体碰撞: 另外collider相当于游戏物体了

  • Unity射线检测

    Physics.RayCast方法发射射线,射线碰撞的信息存在RaycastHit中。 Camera.main.S...

  • Unity Physics.Raycast

    参考Unity - 射线检测[https://www.cnblogs.com/SouthBegonia/p/117...

  • API

    Plane.Raycast Plane 的介绍参考例子 Unity 之 plane.Raycast 射线检测 拷贝...

  • Unity Recast射线优化

    团队多人在开发游戏界面,很多时候都是复制黏贴,比如上一个图片是需要响应RaycastTarget,然后ctrl+d...

  • Unity 屏幕射线ScreenPointToRay

    如下图所示,点击屏幕时,会生成一条射线,从摄像机的的位置开始,指向屏幕点击的地方,射线继续往前,会穿透绿色的正方体...

网友评论

    本文标题:Unity 射线

    本文链接:https://www.haomeiwen.com/subject/azazwttx.html