本文整理汇总了C#中Action.Run方法的典型用法代码示例。如果您正苦于以下问题:C# Action.Run方法的具体用法?C# Action.Run怎么用?C# Action.Run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Action
的用法示例。
在下文中一共展示了Action.Run方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RunAction
private IEnumerator RunAction(Action action)
{
if (useParameters)
{
action.AssignValues (parameters);
}
else
{
action.AssignValues (null);
}
if (isSkipping)
{
action.Skip ();
}
else
{
if (action is ActionRunActionList)
{
ActionRunActionList actionRunActionList = (ActionRunActionList) action;
actionRunActionList.isSkippable = IsSkippable ();
}
action.isRunning = false;
float waitTime = action.Run ();
if (action is ActionParallel)
{}
else if (waitTime != 0f)
{
while (action.isRunning)
{
if (this is RuntimeActionList && actionListType == ActionListType.PauseGameplay && !unfreezePauseMenus)
{
float endTime = Time.realtimeSinceStartup + waitTime;
while (Time.realtimeSinceStartup < endTime)
{
yield return null;
}
}
else
{
yield return new WaitForSeconds (waitTime);
}
if (!action.isRunning)
{
// In rare cases (once an actionlist is reset) isRunning may be false but this while loop will still run
ResetList ();
break;
}
waitTime = action.Run ();
}
}
}
if (action is ActionParallel)
{
EndActionParallel ((ActionParallel) action);
}
else
{
EndAction (action);
}
}
示例2: RunAction
private IEnumerator RunAction (Action action)
{
if (useParameters)
{
action.AssignValues (parameters);
}
else
{
action.AssignValues (null);
}
if (isSkipping)
{
action.Skip ();
}
else
{
action.isRunning = false;
float waitTime = action.Run ();
if (action is ActionCheck || action is ActionCheckMultiple)
{
yield return new WaitForFixedUpdate ();
}
else if (waitTime > 0f)
{
while (action.isRunning)
{
if (this is RuntimeActionList && actionListType == ActionListType.PauseGameplay && !unfreezePauseMenus)
{
float endTime = Time.realtimeSinceStartup + waitTime;
while (Time.realtimeSinceStartup < endTime)
{
yield return null;
}
}
else
{
yield return new WaitForSeconds (waitTime);
}
waitTime = action.Run ();
}
}
}
EndAction (action);
}
示例3: Accept
private void Accept(Action action)
{
if (running.Contains(action)) return;
// Debug.Log("Accept: " + action.name);
if (queue.Contains(action)) queue.Remove(action);
running.Add(action);
action.Restart();
action.Run();
}
示例4: Deliver
private void Deliver(Action action)
{
if (queue.Contains(action)) return;
//Debug.Log("Deliver: " + action.name);
if (running.Contains(action)) running.Remove(action);
queue.Add(action);
action.Queue();
action.Run();
}
示例5: PerformAction
IEnumerator PerformAction(Battler user, ActionType ActionType, Action action, int actionIndex, Battler target, IList<Battler> allCharacters, IList<Battler> allEnemies)
{
switch (ActionType)
{
case ActionType.Attack:
yield return user.BattleBehavior.StandardAttack(user, target);
break;
case ActionType.Special:
action.UseSP(user);
yield return action.Run(user, target, allCharacters, allEnemies, this);
break;
case ActionType.Item:
user.Inventory[actionIndex].RemoveFromInventory(user);
user.Inventory[actionIndex].Use(user, target);
break;
case ActionType.Defend:
Shield shield = Shields[user.BattlerIndex];
user.BattleBehavior.Defending = true;
shield.StartCoroutine(shield.Enter());
break;
}
}