我实例化了下面的gameObject,其中包含一个Animator模式"总是动画" on,动画持续340ms,之后我销毁了gameObject。
我使用以下代码实例化它:
instancia = (Instantiate(cardAnimation, new Vector3(0, 0, 0), Quaternion.identity) as GameObject).GetComponent<Image>();
instancia.rectTransform.SetParent(transform);
StartCoroutine(KillOnAnimationEnd());
这是Coroutine:
private IEnumerator KillOnAnimationEnd()
{
yield return new WaitForSeconds(0.34f);
DestroyImmediate(instancia);
}
以下是在Unity(PC-Windows)中进行模拟时动画的样子:
但是在我打开胸部之后它会在没有任何事情发生的情况下等待340毫秒,然后显示上面的信息,这是否与plataform有关或是某些统一或可能与代码相关的问题?
注意:我在另一个场景中还有另一个动画,它只是层次结构中已经实例化的游戏对象,并且始终是动画的,它可以在Android上运行。
- EDIT-- 所以我在模拟器中运行了最新版本的应用程序,几乎大约1080x480,动画显示就像PC一样,也运行在720p智能手机上完成了这项工作,我唯一仍然遇到的问题是我的来自Galaxy S6的QuadHD分辨率,除了动画之外的所有其他内容,我甚至尝试在没有任何脚本的情况下运行动画,因此它在循环中运行,但它不会出现在星系屏幕中。
鉴于有关该问题的消息,我认为这可能会改变一些答案的观点,并可能帮助其他人在未来解决同样的问题。
答案 0 :(得分:0)
好的,想出了问题,它与在2D模式下使用Unity3D的动画中的“旋转”有关,将从Unity报告它以便修复。
解决方案:仅使用比例/位置为UI设置动画,如果使用旋转,则不会在高分辨率显示屏上显示。
答案 1 :(得分:-1)
我很确定您的WaitForSeconds(0.34f)
无法正常工作,因为Java中没有yield
关键字。我建议您使用invoke方法来调用破坏GameObject的方法。