c# - 在 Unity 中设置 transform.up 时会发生什么

标签 c# unity3d rotation 2d sprite

当我在 unity 中设置 transform.up 值时会发生什么。您能否在下面的链接中具体解释一下这个视频

https://youtu.be/_XdqA3xbP2A

我知道它会改变对象正在看的东西。但是,它是看一个位置,还是如何看 工作?当我更改直接 transform.up 时会发生什么?我似乎找不到很好的解释。为什么视频中的矢量做一个方向是面向鼠标的,为什么不使用mousePosition本身而不是相减呢?

除此之外,您能否解释一下视频中发生的事情?

提前致谢!

最佳答案

基本上,当您移动一个对象时,您会将其位置和旋转作为引用,因此如果您在对象的 Y 位置上增加 +1 并且该对象发生旋转,您将在该方向上增加。 enter image description here

但是对于 Vector3.up,你使用世界空间作为引用,所以 enter image description here

我想在这里给你一个完整的答案,但我必须输入一些数学,简化,transform.up 是 Sprite 指向的方向,他得到的方向是这样说的: enter image description here

"mousePosition.y"(GREEN) 是鼠标的位置 Y,"mousePosition.x"(RED) 是鼠标的 X 位置,有了这两个值,你就有了一个坐标,或者一个方向(蓝色追踪线),统一转换为四元数并将值应用于您的旋转(这在 2d 中)。你想使用使用世界空间引用的 Vector3,因为如果你使用本地引用,会发生这样的事情 enter image description here

你会得到错误的方向。

关于c# - 在 Unity 中设置 transform.up 时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52507139/

相关文章:

c# - 将参数插入 ASP.Net SQL 查询

javascript - 如何找到物体相对于相机的旋转

unity3d - 我如何集成 Unity APP 和 Ionic

c# - 为什么 Physics2D 会针对 AddForce() 与速度产生不同的结果?

android - 如何将 "com.unity3d.player.UnityPlayer"导入我的 Android 库?

ios - 在 iOS6 中使用自动布局进行旋转和缩放

javascript - CSS3 图像旋转和重新定位以适应 div

c# - C++ 在 Visual Studio 2010 中从二进制文件读取 void* 数据作为 utf8

c# - 为什么通过 API 在 Windows 容器/任务中获取 AWS 凭证会超时?

c# - 如何使用 Web 客户端解析 json 并将其显示在控制台中?