예제 #1
0
 public void clearCallback()
 {
     mRotatingCallback   = null;
     mRotatingUserData   = null;
     mRotateDoneCallback = null;
     mRotateDoneUserData = null;
 }
예제 #2
0
    public void doneRotateCallback(RotateToTargetCallback curDoneCallback, object curDoneUserData, ComponentRotateToTarget component)
    {
        // 先保存回调,然后再调用回调之前就清空回调,确保在回调函数执行时已经完全完成
        RotateToTargetCallback rotateCallback = curDoneCallback;
        object tempUserData = curDoneUserData;

        clearCallback();
        if (rotateCallback != null)
        {
            rotateCallback(component, tempUserData, false, true);
        }
    }
예제 #3
0
 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;
 }
예제 #4
0
    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;
    }
예제 #5
0
 public void setRotateDoneCallback(RotateToTargetCallback callback, object userData)
 {
     setRotateCallback(callback, userData, ref mRotateDoneCallback, ref mRotateDoneUserData, this);
 }
예제 #6
0
    // 窗口匀速旋转至指定角度,并且可以设置回调函数
    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);
    }
예제 #7
0
 public void setRotateDoneCallback(RotateToTargetCallback callback, object userData)
 {
     mRotateDoneCallback = callback;
     mRotateDoneUserData = userData;
 }