U3D Ray射线的创建和碰撞检测

using UnityEngine;
using System.Collections;

public class CubeController : MonoBehaviour {

    // Use this for initialization
    void Awake () {
        //创建一条射线
        //Ray ray = new Ray (new Vector3 (1f, 1f, 1f), Vector3.up);
    }
    
    // Update is called once per frame
    void Update () {
        
        /*
        //创建一条从主摄像机到鼠标触摸点的射线
        Ray ray1 = Camera.main.ScreenPointToRay (Input.mousePosition);
        //发射射线并进行碰撞检测
        bool isCollision = Physics.Raycast (ray1);
        if (isCollision) {
            Debug.Log("ray1");
        }
        */
        if (Input.GetMouseButtonDown (0)) {
            Ray ray2 = Camera.main.ScreenPointToRay(Input.mousePosition);
            //RaycastHit  是一个结构体对象,返回储存的碰撞信息
            RaycastHit hitInfo = new RaycastHit();
            if( Physics.Raycast(ray2,out hitInfo)){
                if (hitInfo.collider.gameObject.name == "Cube"){
                    Debug.Log("hit_point = "+hitInfo.point);
                }
            }
        }
    }
}
//新建一个Cube,inspector的Layer属性自定义个一个名为Cube的层。当鼠标点击在Cube上时会发生碰撞,并打印碰撞点。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值