【问题标题】:Weird behavior from local scale flip局部尺度翻转的奇怪行为
【发布时间】:2023-03-14 23:08:01
【问题描述】:

我目前正在开发一个带有精灵和类似东西的 2D 游戏。

当我尝试通过代码翻转精灵时,我发现了一些非常奇怪的东西,代码如下:

Vector3 theScale = transform.localScale;
theScale.x = isMovingLeft ? 1 : -1;
transform.localScale = theScale;

// Same code but in one line
//transform.localScale = Vector3.right * (isMovingLeft ? 1 : -1);

基本上,当精灵到达航点列表的末尾时,它只是翻转到相反的方向。

但是如果我使用上面代码中注释的一行,精灵就会消失(但继续在检查器中正常翻转),如果我使用三行代码(带有局部变量),精灵就会完美地工作。

有人能知道为什么会这样吗?它是一个错误还是一个参考/价值的东西?

谢谢:)

【问题讨论】:

    标签: unity3d sprite scale flip


    【解决方案1】:

    Vector3.right 将是 0,0,1。所以只有 一个 维度实际上会有大小(因为其余的都乘以 0)。它有点被“压扁”了。

    在您当前未注释的代码中,您实际上使用了localScale。我假设.y.z 属性将不为零。因此,当您反转 .x 属性时,您仍然会看到它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多