Unity画面缩放器以高分辨率显示隐藏动画

时间:2016-03-30 19:08:51

标签: android unity3d

我实例化了下面的gameObject,其中包含一个Animator模式"总是动画" on,动画持续340ms,之后我销毁了gameObject。

gameObject Inspector属性: enter image description here

我使用以下代码实例化它:

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)中进行模拟时动画的样子: enter image description here

但是在我打开胸部之后它会在没有任何事情发生的情况下等待340毫秒,然后显示上面的信息,这是否与plataform有关或是某些统一或可能与代码相关的问题?

注意:我在另一个场景中还有另一个动画,它只是层次结构中已经实例化的游戏对象,并且始终是动画的,它可以在Android上运行。

- EDIT-- 所以我在模拟器中运行了最新版本的应用程序,几乎大约1080x480,动画显示就像PC一样,也运行在720p智能手机上完成了这项工作,我唯一仍然遇到的问题是我的来自Galaxy S6的QuadHD分辨率,除了动画之外的所有其他内容,我甚至尝试在没有任何脚本的情况下运行动画,因此它在循环中运行,但它不会出现在星系屏幕中。

鉴于有关该问题的消息,我认为这可能会改变一些答案的观点,并可能帮助其他人在未来解决同样的问题。

2 个答案:

答案 0 :(得分:0)

好的,想出了问题,它与在2D模式下使用Unity3D的动画中的“旋转”有关,将从Unity报告它以便修复。

解决方案:仅使用比例/位置为UI设置动画,如果使用旋转,则不会在高分辨率显示屏上显示。

答案 1 :(得分:-1)

我很确定您的WaitForSeconds(0.34f)无法正常工作,因为Java中没有yield关键字。我建议您使用invoke方法来调用破坏GameObject的方法。