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上时会发生碰撞,并打印碰撞点。
U3D Ray射线的创建和碰撞检测
最新推荐文章于 2024-07-08 20:25:41 发布