欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

unity3D实现三维物体跟随鼠标

程序员文章站 2023-09-07 16:46:06
本文实例为大家分享了unity3d实现三维物体跟随鼠标的具体代码,供大家参考,具体内容如下 效果图: 1.创建一个三维物体cylinder圆柱体 target 2.创建词...

本文实例为大家分享了unity3d实现三维物体跟随鼠标的具体代码,供大家参考,具体内容如下

效果图:

unity3D实现三维物体跟随鼠标

1.创建一个三维物体cylinder圆柱体 target

unity3D实现三维物体跟随鼠标

2.创建词汇表yellow材质球

unity3D实现三维物体跟随鼠标

3.将材质球挂载到target物体上

unity3D实现三维物体跟随鼠标

4.创建脚本mousemove.cs

unity3D实现三维物体跟随鼠标

mousemove.cs代码

using unityengine;
/*
 让物体完全跟随鼠标
  */
public class mousemove : monobehaviour
{
 [header("主相机")]
 [tooltip("主相机")]
 /// <summary>
 /// 主相机
 /// </summary>
 public camera m_maincamera;
 [header("目标物体")]
 [tooltip("目标物体")]
 /// <summary>
 /// 目标物体
 /// </summary>
 public transform m_target;
 
 void start()
 {
  isdown = false;
  targetwtsp = m_maincamera.worldtoscreenpoint(m_target.position);
 }
 /// <summary>
 /// 是否按下
 /// </summary>
 private bool isdown;
 /// <summary>
 /// 记录初始化时候target世界坐标转屏幕坐标时候的位置 wtsp==worldtoscreenpoint
 /// </summary>
 private vector3 targetwtsp;
 void update()
 {
  if (input.getmousebuttondown(0)) {
   isdown = true;
  }
  if (input.getmousebuttonup(0))
  {
   isdown = false;
  }
 }
 private void lateupdate()
 {
  if (isdown)
  {
   vector3 mousevec3 = m_maincamera.screentoworldpoint(
    new vector3(input.mouseposition.x, input.mouseposition.y, targetwtsp.z)
   );
   m_target.position = mousevec3;
  }
 }
}

5.新建一个空物体script,并将mousemove.cs脚本挂载上去,再将相机和target物体拖拽到脚本上

unity3D实现三维物体跟随鼠标

完毕!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。