//新增:物理运动更新 protected void FixedUpdate() { foreach (SSAction ac in waitingAdd) { actions[ac.GetInstanceID()] = ac; } waitingAdd.Clear(); foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction ac = kv.Value; if (ac.destroy) { waitingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.FixedUpdate(); } } foreach (int key in waitingDelete) { SSAction ac = actions[key]; actions.Remove(key); DestroyObject(ac); } waitingDelete.Clear(); }
protected void Update() { foreach (SSAction action in waitingAdd) { actions[action.GetInstanceID()] = action; } waitingAdd.Clear(); foreach (KeyValuePair <int, SSAction> i in actions) { SSAction value = i.Value; if (value.destroy) { waitingDelete.Add(value.GetInstanceID()); } else if (value.enable && flag) { value.Update(); } else if (value.enable && flag == false) { value.FixedUpdate(); } } foreach (int i in waitingDelete) { SSAction ac = actions[i]; actions.Remove(i); DestroyObject(ac); } }
private List <int> waitingDelete = new List <int>(); //等待删除动作的key的列表 protected void Update() { //获取动作实例将等待执行的动作加入字典并清空待执行列表 foreach (SSAction ac in waitingAdd) { actions[ac.GetInstanceID()] = ac; } waitingAdd.Clear(); //对于字典中每一个pair,看是执行还是删除 foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction ac = kv.Value; if (ac.destroy) { waitingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.Update(); ac.FixedUpdate(); } } //删除所有已完成的动作并清空待删除列表 foreach (int key in waitingDelete) { SSAction ac = actions[key]; actions.Remove(key); Object.Destroy(ac); } waitingDelete.Clear(); }
private List <int> waitingDelete = new List <int>(); // actions need to be deleted protected void Update() { foreach (SSAction action in waitingAdd) { actions[action.GetInstanceID()] = action; } waitingAdd.Clear(); foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction action = kv.Value; if (action.destroy) // delete this action { waitingDelete.Add(action.GetInstanceID()); } else if (action.enable) // run this action { action.Update(); action.FixedUpdate(); } } foreach (int key in waitingDelete) { SSAction action = actions[key]; actions.Remove(key); Destroy(action); } waitingDelete.Clear(); }
// Update is called once per frame protected void FixedUpdate() { //把等待队列里所有的动作注册到动作管理器里 foreach (SSAction ac in waitingAdd) { actions[ac.GetInstanceID()] = ac; } waitingAdd.Clear(); //管理所有的动作,如果动作被标志为删除,则把它加入删除队列,被标志为激活,则调用其对应的Update函数 foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction ac = kv.Value; if (ac.destroy) { waitingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.FixedUpdate(); } } //把删除队列里所有的动作删除 foreach (int key in waitingDelete) { SSAction ac = actions[key]; actions.Remove(key); DestroyObject(ac); } waitingDelete.Clear(); }
public void FixedUpdate() { if (roundCtrl.status == "暂停") //停止更新action { return; } foreach (SSAction ac in waitingAdd) { actions[ac.GetInstanceID()] = ac; } waitingAdd.Clear(); foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction ac = kv.Value; if (ac.gameobject.active == false || ac.destroy) //gameobject的active是false就不更新action了 { waitingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.FixedUpdate(); } } foreach (int key in waitingDelete) { SSAction ac = actions[key]; actions.Remove(key); DestroyObject(ac); } waitingDelete.Clear(); }
protected void Update() { foreach (SSAction action in actionToRun) { actionsRunning[action.GetInstanceID()] = action; } actionToRun.Clear(); foreach (KeyValuePair <int, SSAction> actionKV in actionsRunning) { SSAction action = actionKV.Value; if (action.enable) { action.Update(); action.FixedUpdate(); } else { actionToDel.Add(action.GetInstanceID()); } } foreach (int key in actionToDel) { SSAction action = actionsRunning[key]; actionsRunning.Remove(key); Object.Destroy(action); } actionToDel.Clear(); }
protected void FixedUpdate() { foreach (SSAction ac in watingAddAction) { dictionary[ac.GetInstanceID()] = ac; } watingAddAction.Clear(); foreach (KeyValuePair <int, SSAction> dic in dictionary) { SSAction ac = dic.Value; if (ac.destroy) { watingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.FixedUpdate(); } } foreach (int id in watingDelete) { SSAction ac = dictionary[id]; dictionary.Remove(id); DestroyObject(ac); } watingDelete.Clear(); }
protected void FixedUpdate() { controller = Director.getInstance().currentSceneController as Controller; foreach (SSAction action in waitingForAdd) { actions[action.GetInstanceID()] = action; } waitingForAdd.Clear(); foreach (KeyValuePair <int, SSAction> pair in actions) { SSAction action = pair.Value; if (action.destroy) { waitingForDelete.Add(action.GetInstanceID()); } else if (action.enable) { action.FixedUpdate(); } } foreach (int key in waitingForDelete) { SSAction action = actions[key]; actions.Remove(key); Destroy(action); } waitingForDelete.Clear(); }
protected void FixedUpdate() { if (sceneController.moveMode == FirstSceneController.MoveMode.PhysicsMove) { if (sceneController.isPaused == false && sceneController.isStarted == true) { foreach (SSAction ac in waitingAdd) { actions[ac.GetInstanceID()] = ac; } waitingAdd.Clear(); foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction ac = kv.Value; if (ac.destroy) { waitingDelete.Add(ac.GetInstanceID()); } else if (ac.enable) { ac.FixedUpdate(); } } foreach (int key in waitingDelete) { SSAction ac = actions[key]; actions.Remove(key); DestroyObject(ac); sceneController.diskComp++; } waitingDelete.Clear(); } } }
protected void FixedUpdate() { if (sceneController.currentMoveMode == FirstController.MoveMode.PhysicsMove) { if (sceneController.isPaused == false && sceneController.isStarted == true) { foreach (SSAction act in waitAdd) { actions [act.GetInstanceID()] = act; } waitAdd.Clear(); foreach (KeyValuePair <int, SSAction> kv in actions) { SSAction act = kv.Value; if (act.destory) { waitDel.Add(act.GetInstanceID()); } else if (act.enable) { act.FixedUpdate(); } } foreach (int _key in waitDel) { SSAction act = actions [_key]; actions.Remove(_key); DestroyObject(act); sceneController.diskComp++; } waitDel.Clear(); } } }