版本: Unity 6 (6000.0)
语言英语
  • C#

IVisualElementScheduler

UnityEngine.UIElements 中的接口

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

调度程序提供将操作排队以在特定时间或持续时间运行的功能。

您可以使用调度程序创建动画、更新 UI 或创建需要延迟或重复操作的任务。

要调度操作,请使用 IVisualElementScheduler.Execute 方法。调度程序将在下一帧运行该操作。

一个 VisualElement 与调度程序关联,您可以通过 VisualElement.schedule 属性访问它。它返回一个 IVisualElementScheduledItem 接口,该接口提供调度操作的方法。

例如,您可以使用 IVisualElementScheduledItem.StartingIn 方法延迟操作的运行。您还可以使用 IVisualElementScheduledItem.Until 方法指定一个条件来取消调度操作。

要以指定的间隔重复操作,请使用 IVisualElementScheduledItem.Every 方法。要移除调度程序,请使用 IVisualElementScheduledItem.Pause 方法。

调度程序仅在 VisualElement 附加到面板时处于活动状态。从面板分离 VisualElement 会暂停调度程序,重新附加它会恢复调度程序。

其他资源:VisualElement.scheduleVisualElement.panelIVisualElementScheduledItem

 // This example uses the scheduler to animate the title logo by changing its background image 
 // to the next frame every 200 milliseconds.
 int m_CurrentTitleLogoFrame = 0;
 public List<Texture2D> m_TitleLogoFrames = new List<Texture2D>();
 // Animate title logo.
 var titleLogo = root.Q("menu-title-image");
 titleLogo?.schedule.Execute(() =>
 {
     if (m_TitleLogoFrames.Count == 0)
         return;

m_CurrentTitleLogoFrame = (m_CurrentTitleLogoFrame + 1) % m_TitleLogoFrames.Count; var frame = m_TitleLogoFrames[m_CurrentTitleLogoFrame]; titleLogo.style.backgroundImage = frame; }).Every(200);

 // This example uses the scheduler to animate the scaling of a VisualElement.
 IVisualElementScheduledItem m_AnimationScheduler = null;
 
 public void DoScale()
 {
 // Scale the VisualElement.
 }  
 
 m_AnimationScheduler = this.schedule.Execute(DoScale).Every(1).StartingIn(0);
 
 // Stop the animation
 m_AnimationScheduler.Pause();

公共方法

Execute调度此操作以便稍后执行。