【问题标题】:Animator on a WorldSpace CanvasWorldSpace 画布上的动画师
【发布时间】:2016-04-18 15:40:18
【问题描述】:

好的,所以我将世界空间画布附加到播放器对象上。在我的脚本中,我有这样的参考:

 GameObject myWorldCanvas;

Awake()
{
 myWorldCanvas= transform.FindChild("nameOfObject").gameObject;
}

然后,当满足正确的条件时,我只需像这样激活对象:

myWorldCanvas.SeActive(true);

在我向对象添加动画师之前,这非常有效。如果我手动启用/禁用场景中的对象,则动画效果很好(它只是更改比例以使其具有流行效果),但是当我的脚本激活对象时,动画仍然会播放并更改比例值,但什么都没有呈现。如果我手动启用/禁用动画作品,则在播放模式下。

有什么想法吗?如果您需要更多信息或屏幕,请告诉我。

编辑:画布有一些子按钮,当我将鼠标悬停在某些东西上时,似乎刷新了图像,并且图像显示在屏幕上。

编辑:进一步的测试表明,手动禁用和启用 Canvas 组件也会显示图像,但如果通过脚本启用画布和游戏对象,则屏幕上不会显示任何内容。

编辑:我通过在动画的第一个键上禁用画布组件然后在 Y 比例设置为 0 的第二个键上启用它来解决问题。这看起来更像是一个 hack,我不喜欢它。有谁知道为什么会这样?

【问题讨论】:

    标签: c# animation unity3d unity5


    【解决方案1】:

    我知道这个问题。这是因为Unity的动画窗口特性。

    动画窗口允许您将对象的状态记录到动画中。这可以通过按下动画窗口左上角的红色圆圈开关来关闭。但如果您忘记这样做,它会自动记录您的每一个动作,包括激活和停用画布。

    这是一个相当烦人的功能,但我不知道如何禁用。所以只要记得在不使用的时候关闭动画窗口即可。

    【讨论】:

    • 你似乎没有明白。将禁用/启用添加到动画解决了我的问题。问题出在画布本身
    • 您的意思是禁用动画师解决了您的问题?
    • 不,我的意思是在动画的前两个键中禁用和启用画布组件解决了我的问题
    【解决方案2】:

    好的,问题是动画在 xyz 轴上从 0 开始缩放画布。更改动画以从 0.1 开始缩放修复了该问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-19
      • 2016-12-03
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      相关资源
      最近更新 更多