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

时间:2018-09-25 21:50:12

标签: c# unity3d rotation 2d sprite

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

https://youtu.be/_XdqA3xbP2A

我知道它会更改对象的外观。但是,它是在看头寸还是如何看待 工作?更改直接transform.up时会发生什么?我似乎找不到很好的解释。为什么视频中的矢量朝着鼠标的方向移动,为什么不使用mousePosition本身而不是减去?

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

但是使用Vector3.up,您将世界空间用作参考,因此 enter image description here

我想在这里为您提供完整的答案,但是我必须进行一些数学运算,简化操作,transform.up是精灵指向的方向,他得到的方向是这样的: enter image description here

“ mousePosition.y”(绿色)是鼠标的位置Y,“ mousePosition.x”(红色)是鼠标的X位置,使用这两个值,您可以得到一个坐标或一个方向(蓝色线条),该单位会统一转换为四元数并将其值应用于旋转(此值在2d中)。您想使用使用世界空间参考的Vector3,因为如果使用本地参考,则会发生类似enter image description here

的情况

您会得到错误的方向。

答案 1 :(得分:1)

Transform对象使用此up Vector(例如从默认Vector3.up到新的upup up矢量)自动计算四元数旋转。