我正在为我的UI元素制作一个简单的动画。
我有一个动画组件,它有2个不同的动画-ZoomIn和ZoomOut。
每当需要在屏幕上显示UI元素(如按钮)时,就会显示这些动画。
我通常更喜欢在不显示时停用游戏对象。
我为动画编写了以下方法:
private IEnumerator ToggleObjectWithAnimation (GameObject gameObj) { Animator gameObjectAnimator = gameObj.GetComponent (); // Animator is set to unscaled time if (gameObj.activeSelf == false) { gameObj.transform.localScale = new Vector3 (0, 0, 1.0f); gameObj.SetActive (true); gameObjectAnimator.SetTrigger ("ZoomIn"); yield return new WaitForSeconds (0.5f); } else if(gameObj.activeSelf == true) { gameObjectAnimator.SetTrigger ("ZoomOut"); yield return new WaitForSeconds (0.5f); gameObj.SetActive (false); // code not execute when timescale = 0 } yield return null; }
对于大多数屏幕,代码工作正常,但当我使用timescale=0暂停游戏时,代码显示问题。
当时间刻度为0时,线gameObj。SetActive(false)不工作。
我知道可能有点晚了,但是:
问题不在于SetActive
,而在于WaitForSeconds
si受时间的影响。时间刻度
!
实际暂停时间等于给定时间乘以Time.timeScale
。如果希望使用未缩放时间等待,请参见WaitFor秒dsRealtime
。
所以如果你有时间。timescale=0
等待秒将永远不会结束!
你应该使用WaitFor秒dsRealtime
private IEnumerator ToggleObjectWithAnimation (GameObject gameObj)
{
Animator gameObjectAnimator = gameObj.GetComponent (); // Animator is set to unscaled time
if (gameObj.activeSelf == false)
{
gameObj.transform.localScale = new Vector3 (0, 0, 1.0f);
gameObj.SetActive (true);
gameObjectAnimator.SetTrigger ("ZoomIn");
yield return new WaitForSecondsRealtime(0.5f);
}
else if(gameObj.activeSelf == true)
{
gameObjectAnimator.SetTrigger ("ZoomOut");
yield return new WaitForSecondsRealtime(0.5f);
gameObj.SetActive (false); // code not execute when timescale = 0
}
yieldr eturn null;
}
我编写了一个程序来测试的速度。然而,内存的分配方式对速度有很大的影响。 为什么memcpy()的速度每4KB就会急剧下降? 原因与GCC编译器有关,我用不同版本的GCC编译运行了这个程序: GCC版本------------------------
问题内容: 我对 写 时 复制的 理解是:“每个人都有相同数据的单个共享副本,直到被写入,然后再创建一个副本”。 同一数据的共享副本是由堆和bss段组成还是仅由堆组成? 哪些内存段将被共享,这取决于操作系统吗? 问题答案: 操作系统可以设置所需的任何“写时复制”策略,但是通常,它们都执行相同的操作(即最有意义的操作)。 松散地,对于类似POSIX的系统(Linux,BSD,OSX),有四个感兴趣的
我们有一个IPlanet Web服务器,它通过非SSL(HTTP)端口与WebLogic(应用服务器)通信。我们在WebLogic中没有使用HTTPS,Web服务器和应用程序服务器位于防火墙后面。weblog服务器实例上安装了证书,但我们不使用HTTPS端口。IPlanet web服务器运行在HTTPS端口和负载平衡器后面。 LB to(HTTPSWebServer to(HTTP)Weblogi
问题内容: 我发现有很多方法可以将exec语句用于PDO,但是我不确定它是否对我有帮助。我的理解是我必须对准备好的语句使用execute()函数。我正在使用来自用户输入的数据更新一行,因此我想使用一个准备好的语句而不是query()调用。 我的代码如下: 问题是查询本身没有错误并且可以正常执行,因此在$ f中存储没有错误。但是,我需要知道它是否确实找到要更新的行,然后成功更新了它。换句话说,我需要
问题内容: 如何与决定在HTML堆叠元素的订单时,有关系吗? 当我保持小于由具有一些元件上的发言权。元素落后于没有元素的元素。 问题答案: 具有“自动”以外的z索引值的定位元素和不透明度值小于1的元素将生成堆叠上下文。请参阅有关喷漆顺序的规则。 在您的第一个示例中,我们具有带有多个后代的根堆栈上下文,包括: 定位的Z-index为正的绿色框 带有z-index的蓝色框 带有z-index 的蓝色框
问题内容: 如何访问受以下因素影响的行数: 问题答案: 尝试使用: 将包含一个元素为的元组。因此找到行数: 或者,如果您愿意一口气做到这一点: PS。最好在可能的情况下使用参数化的参数,因为它可以在需要时自动为您引用参数,并防止sql注入。 参数化参数的正确语法取决于您的python /数据库适配器(例如mysqldb,psycopg2或sqlite3)。它看起来像