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

问题描述 投票:0回答:2

当我将transform.up值设置为unity时会发生什么。具体来说,您可以在下面的链接中解释这个视频

https://youtu.be/_XdqA3xbP2A

我知道它会改变对象所看到的内容。但是,它看一个位置,或者它是如何工作的?当我改变直接transform.up时会发生什么?我似乎无法找到一个好的解释。为什么视频中的矢量会形成面向鼠标的方向,为什么不使用mousePosition本身而不是减去?

除此之外,您还可以解释视频中发生的事情吗?

提前致谢!

c# unity3d rotation 2d sprite
2个回答
1
投票

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

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

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

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

而你会得到错误的方向。


1
投票

变换对象使用此向上自动计算四元数旋转,例如从默认的Vector3.up到新的变换向量。

© www.soinside.com 2019 - 2024. All rights reserved.