利用射线检测,判断鼠标与物体的碰撞。
在场景中随意放置一个物体,eg:Cube; 编写脚本,附在场景的摄像机上。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cube : MonoBehaviour {
private Camera _camera;
// Use this for initialization
void Start () {
_camera =GetComponent<Camera> ();//获取场景中摄像机对象的组件接口
}
void OnGUI()
{
Ray ray = _camera.ScreenPointToRay (Input.mousePosition); //定义一条射线,这条射线从摄像机屏幕射向鼠标所在位置
RaycastHit hit; //声明一个碰撞的点
if (Physics.Raycast (ray, out hit)) { //如果真的发生了碰撞,ray这条射线在hit点与物体碰撞了
if (hit.transform.name == "Cube") {//判断碰撞体是不是Cube
GUI.Box (new Rect (Input.mousePosition.x, Screen.height - Input.mousePosition.y, 100, 100), "aaaaa");
}
}