【Unity3D 灵巧小知识点】☀️ | Unity通过 射线 获取 鼠标的世界坐标 和 鼠标点击的物体信息

2021-09-14 14:44:58 浏览数 (1)

Unity 小科普

老规矩,先介绍一下 Unity 的科普小知识:

  • Unity是 实时3D互动内容创作和运营平台 。
  • 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!

Unity小知识点学习

Unity通过 射线 获取 鼠标的世界坐标

通过从相机发射出一条射线,根据射线碰到的点来获取当前鼠标的世界坐标信息当前鼠标点击的物体信息

代码语言:javascript复制
using UnityEngine;
public class test1 : MonoBehaviour
{
    private Ray ray;
    private RaycastHit hit;
    Vector3 target;
    GameObject _curGameObject;

  void  Update()
    {
        //当按下鼠标左键时
        if(Input.GetMouseButton(0))
        {
            //鼠标在屏幕的位置
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray, out hit))
            {
                //绘制出一条从相机射出的红色射线
                Debug.DrawLine(Camera.main.transform.position, hit.point, Color.red);
            }
            target = hit.point;//获取鼠标的坐标位置
            _curGameObject = hit.transform.gameObject;//获取鼠标点击的物体信息

            Debug.Log("获取鼠标的世界坐标位置:"   target);
            Debug.Log("鼠标点击的物体信息:"   _curGameObject);
        }
    }
}

效果如下:


0 人点赞