/// <summary> /// Pass name of ActivityBase-derived class. /// Default to finishing current activity even /// if we don't find the new one. /// </summary> /// <param name="name"></param> /// <param name="finishCurrent"></param> public void SetActivity(string name, bool finishCurrent = true) { if (finishCurrent && currentActivity != null) { Debug.Log("Finishing current activity: " + currentActivity.GetType().Name); currentActivity.Finish(); currentActivity = null; } for (int i = 0; i < activities.Length; i++) { if (activities[i].GetType().Name == name) { Debug.Log("Starting new activity: " + name); currentActivity = activities[i]; currentActivity.Initialize(); break; } } if (!currentActivity) { Debug.LogWarning("Activity not found: " + name); } }
public void SetActivity(ActivityBase activity, bool finishCurrent = true) { if (finishCurrent && currentActivity != null) { Debug.Log("Finishing current activity: " + currentActivity.GetType().Name); currentActivity.Finish(); currentActivity = null; } currentActivity = activity; if (currentActivity) { currentActivity.Initialize(); } }
public void SetActivity(System.Type type, bool finishCurrent = true) { if (finishCurrent && currentActivity != null) { Debug.Log("Finishing current activity: " + currentActivity.GetType().Name); currentActivity.Finish(); currentActivity = null; } currentActivity = activities.SingleOrDefault(s => s.GetType() == type); Debug.Assert(currentActivity, "No activity found that matches type " + type); if (currentActivity) { currentActivity.Initialize(); } }