Unity3D游戏开发 宣雨松 著。射线及其碰撞检测
using UnityEngine;
using System.Collections;
public class Script_06_09 : MonoBehaviour {
// 靶心贴图
public Texture texture;
// 提示信息
private string info;
// Update is called once per frame
void Update () {
// 创建摄像机到鼠标的射线
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
// 判断该射线是否打中游戏对象
if (Physics.Raycast(ray, out hit))
{
info = "打中靶心";
}
else
info = "未打中靶心";
}
void OnGUI() {
// 计算中心贴图的坐标
Rect rect = new Rect(Input.mousePosition.x - (texture.width >> 1), Screen.height - Input.mousePosition.y - (texture.height >> 1),
texture.width, texture.height);
// 绘制准心贴图
GUI.DrawTexture(rect, texture);
// 输入打靶子的信息
GUILayout.Label(info + ", 打中的坐标为: " + Input.mousePosition);
}
}