3D拾取的原理请看本人博客的:DX9中的3D拾取,此文章只记录Unity中的3D拾取 。
1、创建一个Cube,当我们使用鼠标点击二维屏幕的时候,相当于从发出一条射线,然后将这条射线和三维世界中的物体进行判断相交,第一个相交的物体就是点击到的物体。
2、给Cube添加脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RayTest : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0))
{
// 获取从鼠标点击发射的射线
// Camera.main能够获取当前场景中的主摄影机
// ScreenPointToRay函数能够将屏幕点击的点转换成一条射线,参数就是屏幕