public void clearCallback() { mRotatingCallback = null; mRotatingUserData = null; mRotateDoneCallback = null; mRotateDoneUserData = null; }
public void doneRotateCallback(RotateToTargetCallback curDoneCallback, object curDoneUserData, ComponentRotateToTarget component) { // 先保存回调,然后再调用回调之前就清空回调,确保在回调函数执行时已经完全完成 RotateToTargetCallback rotateCallback = curDoneCallback; object tempUserData = curDoneUserData; clearCallback(); if (rotateCallback != null) { rotateCallback(component, tempUserData, false, true); } }
public override void init() { base.init(); mStartAngle = Vector3.zero; mTargetAngle = Vector3.zero; mRotateTime = 1.0f; mTimeOffset = 0.0f; mRotatingCallback = null; mRotateDoneCallback = null; mRotatingUserData = null; mRotateDoneUserData = null; }
public void setRotateCallback(RotateToTargetCallback callback, object userData, ref RotateToTargetCallback curCallback, ref object curUserData, ComponentRotateToTarget component) { RotateToTargetCallback rotateCallback = curCallback; object tempUserData = curUserData; curCallback = null; curUserData = null; // 如果回调函数当前不为空,则是中断了正在进行的变化 if (rotateCallback != null) { rotateCallback(component, tempUserData, true, false); } curCallback = callback; curUserData = userData; }
public void setRotateDoneCallback(RotateToTargetCallback callback, object userData) { setRotateCallback(callback, userData, ref mRotateDoneCallback, ref mRotateDoneUserData, this); }
// 窗口匀速旋转至指定角度,并且可以设置回调函数 public static void ROTATE_TARGET_WINDOW_EX(txUIObject obj, Vector3 start, Vector3 target, float time, RotateToTargetCallback rotatingCallback, object rotatingUserData, RotateToTargetCallback doneCallback, object doneUserData) { CommandWindowRotateToTarget cmdRotate = mCommandSystem.newCmd <CommandWindowRotateToTarget>(false); cmdRotate.mStartAngle = start; cmdRotate.mTargetAngle = target; cmdRotate.mRotateTime = time; cmdRotate.setRotatingCallback(rotatingCallback, rotatingUserData); cmdRotate.setRotateDoneCallback(doneCallback, doneUserData); mCommandSystem.pushCommand(cmdRotate, obj); }
public void setRotateDoneCallback(RotateToTargetCallback callback, object userData) { mRotateDoneCallback = callback; mRotateDoneUserData = userData; }