public void AddFixedUpadateCallback(PHSceneBehaviourCallback phSceneBehaviourCallback, CallbackPriority callbackPriority, int subPriority = 0) { var newItem = new PHSceneBehaviourCallbackItem(subPriority, phSceneBehaviourCallback); fixedUpdateCallbacks[callbackPriority].Add(newItem); fixedUpdateCallbacks[callbackPriority].Sort((a, b) => a.subPriority - b.subPriority); }
public void DeleteFixedUpadateCallback(PHSceneBehaviourCallback phSceneBehaviourCallback, CallbackPriority callbackPriority, int subPriority = 0) { var callBackItems = fixedUpdateCallbacks[callbackPriority]; PHSceneBehaviourCallbackItem deleteCallBackItem = null; foreach (var item in callBackItems) { if (item.subPriority == subPriority && item.callback == phSceneBehaviourCallback) { deleteCallBackItem = item; break; } } callBackItems.Remove(deleteCallBackItem); }
public PHSceneBehaviourCallbackItem(int subPriority, PHSceneBehaviourCallback callback) { this.subPriority = subPriority; this.callback = callback; }