WorldSpace 上的动画师 Canvas
Animator on a WorldSpace Canvas
好的,所以我将我的世界 space canvas 附加到玩家对象。在我的脚本中,我有这样的参考:
GameObject myWorldCanvas;
Awake()
{
myWorldCanvas= transform.FindChild("nameOfObject").gameObject;
}
然后当满足正确的条件时,我只需像这样激活对象:
myWorldCanvas.SeActive(true);
在我为该对象添加动画师之前,这一直很有效。如果我手动 enable/disable 场景中的对象,动画会完美运行(它只是改变比例以赋予它弹出效果),但是当我的脚本激活对象时,动画仍然播放并更改比例值但是没有渲染。在播放模式下,如果我手动 enable/disable 动画有效。
有什么想法吗?如果您需要更多信息或屏幕,请告诉我。
编辑:canvas 有一些子按钮,当我将鼠标悬停在某些东西上时似乎会刷新并且图像会显示在屏幕上。
编辑:进一步的测试表明,手动禁用和启用 Canvas 组件也会显示图像,但是如果从脚本中启用 canvas 和游戏对象,则屏幕上不会显示任何内容.
编辑:我通过在动画的第一个键上禁用 canvas 组件然后在 Y 比例设置为 0 的第二个键上启用它来解决问题。这看起来更像是 hack我不喜欢它。有谁知道为什么会这样吗?
我知道这个问题。这是因为Unity的动画特性window.
动画 window 允许您将对象的状态记录到动画中。这可以通过按下动画左上角的红色圆圈开关来关闭 window。但如果您忘记这样做,它会自动记录您的每一个动作,包括激活和停用 canvas.
这是一个非常烦人的功能,但我不知道如何禁用它。所以不用的时候记得关闭动画window
好的,问题是动画在 xyz 轴上从 0 开始缩放 canvas。更改动画以从 0.1 开始缩放解决了这个问题。
好的,所以我将我的世界 space canvas 附加到玩家对象。在我的脚本中,我有这样的参考:
GameObject myWorldCanvas;
Awake()
{
myWorldCanvas= transform.FindChild("nameOfObject").gameObject;
}
然后当满足正确的条件时,我只需像这样激活对象:
myWorldCanvas.SeActive(true);
在我为该对象添加动画师之前,这一直很有效。如果我手动 enable/disable 场景中的对象,动画会完美运行(它只是改变比例以赋予它弹出效果),但是当我的脚本激活对象时,动画仍然播放并更改比例值但是没有渲染。在播放模式下,如果我手动 enable/disable 动画有效。
有什么想法吗?如果您需要更多信息或屏幕,请告诉我。
编辑:canvas 有一些子按钮,当我将鼠标悬停在某些东西上时似乎会刷新并且图像会显示在屏幕上。
编辑:进一步的测试表明,手动禁用和启用 Canvas 组件也会显示图像,但是如果从脚本中启用 canvas 和游戏对象,则屏幕上不会显示任何内容.
编辑:我通过在动画的第一个键上禁用 canvas 组件然后在 Y 比例设置为 0 的第二个键上启用它来解决问题。这看起来更像是 hack我不喜欢它。有谁知道为什么会这样吗?
我知道这个问题。这是因为Unity的动画特性window.
动画 window 允许您将对象的状态记录到动画中。这可以通过按下动画左上角的红色圆圈开关来关闭 window。但如果您忘记这样做,它会自动记录您的每一个动作,包括激活和停用 canvas.
这是一个非常烦人的功能,但我不知道如何禁用它。所以不用的时候记得关闭动画window
好的,问题是动画在 xyz 轴上从 0 开始缩放 canvas。更改动画以从 0.1 开始缩放解决了这个问题。