代码之家  ›  专栏  ›  技术社区  ›  Rakowu

脚本无法覆盖函数内的全局变量

  •  0
  • Rakowu  · 技术社区  · 4 年前

    我希望你能回答这个问题。我觉得很容易,但我被卡住了。我有一个叫做“CalcTransition”的函数。它为我计算转换的剩余时间。但是我的全局变量“time”永远不会被覆盖。它保持在零。有人知道吗?

        float duration = 1.0f;
        float startTime;
        float time;
    
        string lastTrigger = null;
    
        float TransitionTwoValues(float minVal,float maxVal){
            float vTemp = maxVal;
            maxVal = minVal;
            minVal = vTemp;
    
            return Mathf.SmoothStep(minVal,maxVal,time);
        }
    
        void ResetStartTimeOnce(string currentTriggerName,string lastTriggerName){
            if(currentTriggerName != lastTrigger){
                lastTrigger = lastTriggerName;
                startTime = Time.time;
            }
        }
        void CalcTransition(){
            time = (Time.time - startTime) / duration;
        }
    
        void Focus(){
            duration = 0.1f;
            ResetStartTimeOnce("FocusOn", lastTrigger);
            CalcTransition();
    
            _Vignette.intensity.value  = TransitionTwoValues( vignetteMaxVal, vignetteMinVal);
            _MotionBlur.intensity.value = TransitionTwoValues(motionBlurMaxVal,motionBlurMinVal);
            _ColorAdjustment.saturation.value = TransitionTwoValues(colorSaturationMaxVal,colorSaturationMinVal);
        }
        void FocusRelease(){
            duration = 0.5f;
            ResetStartTimeOnce("FocusOff", lastTrigger);
            CalcTransition();
    
            _Vignette.intensity.value  = TransitionTwoValues( vignetteMinVal, vignetteMaxVal);
            _MotionBlur.intensity.value = TransitionTwoValues(motionBlurMinVal,motionBlurMaxVal);
            _ColorAdjustment.saturation.value = TransitionTwoValues(colorSaturationMinVal,colorSaturationMaxVal);
        }
    
        void Update(){
    
            if(Input.GetMouseButtonDown(1)){
                Focus();
                Debug.Log(time); //** TIME ALWAYS 0 WHY?
            }
    
            if(Input.GetMouseButtonUp(1)){
                FocusRelease();
            }  
        }
    }
    
    0 回复  |  直到 4 年前
        1
  •  0
  •   Immersive    4 年前

    MouseDown