【问题标题】:Animation clip taking unexpectedly long time to finish动画剪辑需要很长时间才能完成
【发布时间】:2016-04-01 15:20:12
【问题描述】:

我正在尝试解决这个问题,这对我来说真的很惊喜。 我已经导入了一些最大动画(不同的火车对象动画)我在附加到所有火车对象的 GUI 单击上触发以下方法。 此代码同时在不同的火车对象上运行/触发。有些火车运行正常,动画及时完成,有些则需要很长时间才能完成。

 public void HourSwitcher(string playShunt)
    {
       gameObject.GetComponent<Animation>().Play(playShunt);
       gameObject.GetComponent<Animation>()[playShunt].speed = 20f;
    }

我还附上了我的调试日志。正如您在日志 1 图像中看到的那样 train12 到 16 动画在时间 0 运行时运行(令人惊讶)。

在图像中,两列火车 17 正常工作,但火车 20-21 正在运行

【问题讨论】:

  • 警告内容是什么?
  • 别担心我已经生成了警告

标签: c# animation unity3d


【解决方案1】:

参考我的这个question and answer。令人失望的是,没有人能够确定问题(可能对这个问题缺乏太多关注)。工作 4/5 天后,我终于得到了this

主要是动画Culling类型问题。 *为了将来的使用和对像我这样的初学者的帮助,我将回答我自己的问题。

答案:

我的动画剔除类型选择为 BasedOnRenderers,这意味着“当渲染器不可见时动画被禁用”。即,我的代码向我显示动画正在播放,但我的场景中没有发生任何实际情况,因为我的动画远离相机视图。

解决了这个问题,将动画剔除类型选择为AlwaysAnimate(参考this)。这意味着'对象即使在屏幕外也有动画效果'。

我的一些动画工作正常,因为它们在相机的视野下,而一些动画没有工作(代码显示它处于播放模式)并且连续播放/需要很长时间,因为它们远离我的相机视图。

希望对他人有所帮助

请参阅我被问到的这个问题(与这个问题密切相关):

  1. Animation unexpected behaviour - Why animation becomes complete If my camera walk through the scene

  2. Does culling affect animation.

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 2016-07-30
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多