2018-10-19物理射线 Ray

从一个点向一个方向,发射一根无线长的射线,这根射线与场景中其他对象物体的碰撞体组件发生碰撞,射线即结束。

由于射线可以与物理组建Collider相交互,所以“射线”也称之为“物理射线”。

 

物理射线相关方法

通过摄像机创建射线。

Camera.main代表tag设置为“MainCamera”的摄像机的camera组件的引用。

m_Camera.ScreenPointToRay(Vector3)

屏幕点转化为射线,这个方法返回一个Ray类型的射线。

这个屏幕点通常写鼠标的点击位置,这样的话,就代表从摄像机的位置开始,往鼠标点击点这个方向,发射一条射线。

Input.MousePosition//鼠标所在的位置值。

 

Ray 射线,一个结构体。

 

代码完整格式:

Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);

Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);

检查射线与其他物体碰撞

RaycastHit//一个结构体,用于存储射线的碰撞信息。

Physics.Raycas(Ray,out RaycastHit)

物理类下面有一个静态方法叫做Raycast(),射线检查。

共有16种重载方式,我们用第三种。

检查这根射线,如果射线与场景中的物理组件 碰撞了,返回值为真,并且将碰撞信息返回给RaycastHit。

    RaycastHit hit;
	void Update ()
    {
        if(Input.GetMouseButton(0))
        {
           Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit))
            {
                if (hit.collider.gameObject.tag == "gold")
                {
                    Destroy(hit.collider.gameObject);
                }
            }
        }

	}

RaycastHit.Point

获取射线碰撞点。

 

 

物理射线使用步骤:

第一步:创建一根射线。

第二步:检查这个射线与其他物体的碰撞,得到碰撞信息。

第三步:通过碰撞信息对碰撞到的物体进行处理。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值