射线Physics.Raycast

这一节我们做一个鼠标悬停在某一个物体上后,打印出该物体的标签tag

首先我们创建两个物体立方体Cube和球Sphere,并把立方体的tag设置为Cube,球体的tag设置为Sphere

然后我们创建脚本Raycast.ca并挂在主摄像机上

代码如下

public class Raycast : MonoBehaviour {

	// Update is called once per frame
	void Update () {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit,10000))
        {
            Debug.Log(hit.collider.tag);
        }
    }
}

效果如下



如果我们想使立方体接受不到射线,我们可以这样做

我们在layers中增加Cube层,位于第8层,把立方体的layer设置为Cube

然后代码这样写,立方体就接收不到射线了

public class Raycast : MonoBehaviour {
    void Start() {

    }
	// Update is called once per frame
	void Update () {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        int removeMask = Camera.main.cullingMask &~(1 << 8);
        if (Physics.Raycast(ray, out hit, 10000, removeMask)) 
        {
            Debug.Log(hit.collider.tag);
        }
    }
}

效果




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值