C# with Unity 3D:当用户移动鼠标时如何使相机围绕对象移动

2024-04-03

我正在尝试在 Unity 4 中进行 3D 观看模拟,用户可以选择一个对象并移动鼠标围绕它旋转(360 度)我已经拍摄了很多镜头来尝试让它工作,但每次都失败,任何我们将不胜感激,如果它是用 C# 编写的,那就太好了! (但没必要) 提前致谢!


这是一种不同且有趣的方式:)(我使用它)

(这里,立方体是目标)

1)创建球体 - 名称:“相机轨道” - 添加材质:透明(Alpha = 0) - 根据需要缩放 - 旋转:(0,0,0.1f)
2) 将相机作为“子”添加到相机轨道的表面。位置 = (0,"y = 相机轨道比例“,0) 旋转 = (90,0,0)
3) 创建空游戏对象 - 名称:输入控件。

输入控制.cs:

public class InputControl : MonoBehaviour
{
   public GameObject cameraOrbit;

   public float rotateSpeed = 8f;

   void Update()
   {
       if (Input.GetMouseButton(0))
       {
           float h = rotateSpeed * Input.GetAxis("Mouse X");
           float v = rotateSpeed * Input.GetAxis("Mouse Y");

           if (cameraOrbit.transform.eulerAngles.z + v <= 0.1f || cameraOrbit.transform.eulerAngles.z + v >= 179.9f)
                v = 0;

           cameraOrbit.transform.eulerAngles = new Vector3(cameraOrbit.transform.eulerAngles.x, cameraOrbit.transform.eulerAngles.y + h, cameraOrbit.transform.eulerAngles.z + v);
       }

       float scrollFactor = Input.GetAxis("Mouse ScrollWheel");

       if (scrollFactor != 0)
       {
           cameraOrbit.transform.localScale = cameraOrbit.transform.localScale * (1f - scrollFactor);
       }

   }
}

相机控制器.cs:

public class CameraController : MonoBehaviour
{
   public Transform cameraOrbit;
   public Transform target;

   void Start()
   {
       cameraOrbit.position = target.position;
   }

   void Update()
   {
       transform.rotation = Quaternion.Euler(transform.rotation.x, transform.rotation.y, 0);

       transform.LookAt(target.position);
   }
}

4)将CameraController.cs添加到Camera中。
5)将InputControl.cs添加到输入控件中。
6) 在脚本中设置公共变量。 (“相机轨道”和“目标”)

就这样。鼠标单击并拖动:旋转 - 鼠标滚轮:放大或缩小。

附:如果需要,您可以将目标更改为运行时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# with Unity 3D:当用户移动鼠标时如何使相机围绕对象移动 的相关文章

随机推荐

  • Objective-C 变量...指向自身?

    我在 Apple 的一些用于处理键值观察的示例代码中发现了这种构造 添加观察者时 您可以添加一个上下文 以 void 变量的形式 该上下文可以唯一标识 KVO 调用 如果您希望多个 KVO 调用触发相同的操作 则特别有用 因为单个上下文可以
  • Pandas/Python 中的分块、处理和合并数据集

    有一个很大的数据集 其中包含字符串 我只想使用宽度通过 read fwf 打开它 如下所示 widths 3 7 9 7 tp pandas read fwf file widths widths header None 这会帮助我标记数据
  • 使用 MXnet 时如何保存模型

    我正在使用 MXnet 训练 CNN 在 R 中 并且可以使用以下代码训练模型 不会出现任何错误 model lt mx model FeedForward create symbol network X train iter ctx mx
  • 学习 UML 的最佳来源是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 共享内存上的 spsc_queue

    我尝试了几个小时 这个问题几乎让我发疯 我想创建一个spsc queue在共享内存上 队列中的每个元素都是一个mq item t结构如下 typedef struct mq item t mq item type type union st
  • Eloquent 关系同步也会删除吗?

    更新模型并同步关系时 如果我不传入所有已存在的 id 该关系是否会被删除 你决定 sync有第二个参数 默认为true并负责分离 model gt relationship gt sync 1 2 3 model gt relationsh
  • 从 UIWebView 读取 HTML 内容

    是否可以读取已加载到的网页的原始 HTML 内容UIWebView 如果没有 是否有另一种方法可以从 iPhone SDK 中的网页提取原始 HTML 内容 例如 NET 的等效方法 WebClient openRead 第二个问题其实更容
  • Julia 多次调度失败

    v06 我想写一个需要 2 到 3 个参数的签名 第一个是整数或整数向量 第二个是整数向量或整数矩阵 第三个是整数向量或未指定 我第一次尝试是这样的 function foo a Union Integer Vector Integer b
  • Django 模型与管理器

    不太确定有什么区别 看起来 Manager 所做的只是拥有一堆与模型相关的功能 但这些功能也可以放在模型中 Django 文档对 Manager 的描述如下 Manager 是数据库查询操作的接口 提供给 Django 模型 那么 除了这个
  • 唯一导入*仅允许在模块级别[重复]

    这个问题在这里已经有答案了 我正在制作一个实用程序 其中内置了多个程序 但我对程序进行了一些更改 以便在用户提示时重新运行 然后由于某种原因 我面临错误 import only allowed at module level 这是我的代码
  • 打字稿错误:“请求”类型中不存在属性“用户”

    我的 Express 应用程序中有以下代码 router get auth userInfo this validateUser req res gt res json req user 我的 IDE 似乎在抱怨这个错误 错误 TS2339
  • 不同编译器中的 pure/const 函数属性

    pure是一个函数属性 表示函数不会修改任何全局内存 const是一个函数属性 表示函数不读取 修改任何全局内存 有了这些信息 编译器就可以进行一些额外的优化 海湾合作委员会示例 float sigmoid float x attribut
  • 无法从 android studio 中删除模拟器/avd?

    我一直在通过 Android Studio 运行 AVD 模拟器 它一直按预期工作 然而 模拟器 AVD 每次都开始崩溃 现在似乎处于损坏状态 我尝试通过 AS VDM 删除 AVD 但尝试执行此操作时会显示一条警报 其中包含以下错误消息
  • 将数据写入android中的远程文本文件

    如何将数据写入 android 中的远程文本文件 我可以读取文本文件的内容 但无法向其中写入数据 我的目标是将文本文件的内容更改为新文件 我使用 xampp 作为远程服务器 因为我家里没有互联网连接 这是我的代码 package com e
  • 如何滚动故事板预览?

    故事板有一个水平滚动条 供您滚动查看其他场景 但预览故事板场景时滚动条不存在 如何滚动故事板预览 假设我没有使用魔术鼠标 关于什么Shift Mouse Scroll 或者 如果您使用的是 Macbook 请在触控板上向左或向右滑动两根手指
  • 附加到 div 的 Bootstrap 箭头

    总的来说 我对引导程序和前端框架非常陌生 但是 我能够注意到使用 bootstrap 的网站的共同特征 下图包含我发现在引导网站中非常普遍的东西 指向其下方文本的向下 或任何方向 蓝色箭头也是我所指的 我使用 firebug 检查了这些元素
  • 如何从 svn 热复制备份中恢复

    我们当前的备份过程是每晚执行 SVN HOTCOPY 到另一台机器上的备份位置 我可以以某种方式从该备份中恢复并保留所有修订历史记录吗 或者我需要使用 svn dump load 吗 谢谢 钱德拉吉特 svnadmin hotcopy 实际
  • 纪元时间和 MySQL 查询

    我有一个这样的表 id date 1 1319043263 2 1319043578 纪元中的日期字段格式 我必须对属于同一天的每一行进行分组 并将它们显示在单独的组中 我怎样才能在 MySQL 中做到这一点 Thanks 通过 分组 SE
  • 如何阻止乌龟在提笔的情况下绘图?

    我正在Python中使用turtle模块 问题是 每当我让乌龟移动时 即使笔在上面 我也会画画 例如 如果我运行这个程序 import turtle turtle penup turtle goto 0 50 海龟移动到 0 50 时仍会画
  • C# with Unity 3D:当用户移动鼠标时如何使相机围绕对象移动

    我正在尝试在 Unity 4 中进行 3D 观看模拟 用户可以选择一个对象并移动鼠标围绕它旋转 360 度 我已经拍摄了很多镜头来尝试让它工作 但每次都失败 任何我们将不胜感激 如果它是用 C 编写的 那就太好了 但没必要 提前致谢 这是一