// Update is called once per frame void Update() { if (isRun == true) { if (runForward) { oriTime = Time.realtimeSinceStartup - recTime; } else { oriTime = TweenTime - (Time.realtimeSinceStartup - recTime); } Color color = from + (to - from) * mainAniCurve.Evaluate(oriTime / TweenTime); image.color = color; if (runForward) { if (oriTime >= TweenTime) { if (!isLoop) { isRun = false; if (runFinish != null) { runFinish.Invoke(this); } } else { recTime = Time.realtimeSinceStartup; } } } else { if (oriTime <= 0) { if (!isLoop) { isRun = false; if (runFinish != null) { runFinish.Invoke(this); } } else { recTime = Time.realtimeSinceStartup; } } } } }
// Update is called once per frame void Update() { if (isRun == true) { if (isPopupWnd) { showGameObject.SetActive(true); } if (runForward) { oriTime = Time.realtimeSinceStartup - recTime; } else { oriTime = TweenTime - (Time.realtimeSinceStartup - recTime); } Vector3 deltaV3 = from + (to - from) * mainAniCurve.Evaluate(oriTime / TweenTime); transform.localScale = deltaV3; if (runForward) { if (oriTime >= TweenTime) { isRun = false; if (runFinish != null) { runFinish.Invoke(this); } } } else { if (oriTime <= 0) { if (isPopupWnd) { showGameObject.SetActive(false); } isRun = false; if (runFinish != null) { runFinish.Invoke(this); } } } } }
/// <summary> /// 开始调试 /// </summary> public void Run() { // 初始化栈 stack = new Stack <StackFrame>(); entryStacks = new Stack <int>(); stacks.Add(stack); // 当前栈帧 currentStackFrame = new StackFrame(0); globalStackFrame = currentStackFrame; stack.Push(currentStackFrame); // 代码区长度 int length = codesArray.Count; // 初始化程序计数器 pc = 0; isStop = false; // 设置当前符号表 currentSymbolTable = globalSymbolTable; // 执行中间代码 while (pc < length && !isStop) { IntermediateCode code = codesArray[pc]; InterpretSingleInstruction(code); pc++; } // 停止运行 // 运行结束销毁 stacks.Remove(stack); RunFinish?.Invoke(); }