写点什么

【100 个 Unity 实用技能】| 游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置

  • 2022 年 6 月 06 日
  • 本文字数:982 字

    阅读完需:约 3 分钟

Unity 小科普

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

  • Unity 是 实时 3D 互动内容创作和运营平台 。

  • 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。

  • Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的 2D 和 3D 内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。

  • 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!



Unity 实用小技能学习

游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置

作用:在游戏中实现鼠标点击的时候,获取到鼠标点的的这个坐标,并将某个游戏对象移动到这个坐标上。


将脚本代码挂在场景中,并将希望跟随鼠标移动的对象拖到脚本上即可。


具体效果如下;



完整代码如下:


using UnityEngine;public class Vector3Test : MonoBehaviour{    [Header("需要跟随鼠标移动的游戏对象")]    public GameObject targetPos;
Vector3 screenPosition;//将物体从世界坐标转换为屏幕坐标 Vector3 mousePositionOnScreen;//获取到点击屏幕的屏幕坐标 Vector3 mousePositionInWorld;//将点击屏幕的屏幕坐标转换为世界坐标
private void LateUpdate() { if (Input.GetMouseButton(0)) { MouseFollow(); } }
/// <summary> /// 获取鼠标点击坐标的方法 /// </summary> public Vector3 MouseFollow() { //获取游戏对象在世界坐标中的位置,并转换为屏幕坐标; screenPosition = Camera.main.WorldToScreenPoint(targetPos.transform.position);
//获取鼠标在场景中坐标 mousePositionOnScreen = Input.mousePosition;
//让鼠标坐标的Z轴坐标 等于 场景中游戏对象的Z轴坐标 mousePositionOnScreen.z = screenPosition.z;
//将鼠标的屏幕坐标转化为世界坐标 mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);
//将游戏对象的坐标改为鼠标的世界坐标,物体跟随鼠标移动 targetPos.transform.position = mousePositionInWorld;
//物体跟随鼠标X轴移动 return new Vector3(mousePositionInWorld.x, mousePositionInWorld.y, mousePositionInWorld.z); }}
复制代码





发布于: 2022 年 06 月 06 日阅读数: 18
用户头像

还未添加个人签名 2022.05.25 加入

还未添加个人简介

评论

发布
暂无评论
【100个 Unity实用技能】| 游戏中获取鼠标点击的坐标,并将游戏对象移动到鼠标的点击位置_呆呆敲代码的小Y_InfoQ写作社区