コード例 #1
0
 private void Update()
 {
     if (UpdateOnFrame < 1)
     {
         UpdateOnFrame = 1;
     }
     if (Time.frameCount % UpdateOnFrame != 0)
     {
         return;
     }
     for (int i = 0; i < dataLength; i++)
     {
         CandleFlickerData candleFlickerData = FlickerData[i];
         float             num = animCurveTime[i] + candleFlickerData.AnimStep;
         if (num < 0f)
         {
             num = candleFlickerData.AnimTime;
         }
         else if (num > candleFlickerData.AnimTime)
         {
             num = 0f;
         }
         animCurveTime[i] = num;
         float num2 = candleFlickerData.flickerCurve.Evaluate(num);
         flickerColor.r = Mathf.Clamp(origAdditiveColor[i].r + candleFlickerData.BaseColor.r * num2, 0f, 1f);
         flickerColor.g = Mathf.Clamp(origAdditiveColor[i].g + candleFlickerData.BaseColor.g * num2, 0f, 1f);
         flickerColor.b = Mathf.Clamp(origAdditiveColor[i].b + candleFlickerData.BaseColor.b * num2, 0f, 1f);
         candleFlickerData.PumpkinMaterial.SetColor("_AdditiveColor", flickerColor);
     }
 }
コード例 #2
0
 private void restoreMaterials()
 {
     for (int i = 0; i < dataLength; i++)
     {
         CandleFlickerData candleFlickerData = FlickerData[i];
         candleFlickerData.PumpkinMaterial.SetColor("_AdditiveColor", origAdditiveColor[i]);
     }
 }
コード例 #3
0
 private void Start()
 {
     dataLength        = FlickerData.Length;
     origAdditiveColor = new Color[dataLength];
     animCurveTime     = new float[dataLength];
     for (int i = 0; i < dataLength; i++)
     {
         CandleFlickerData candleFlickerData = FlickerData[i];
         if (candleFlickerData.PumpkinMaterial != null)
         {
             origAdditiveColor[i] = candleFlickerData.PumpkinMaterial.GetColor("_AdditiveColor");
         }
         else
         {
             Log.LogError(this, $"Error: Missing a material on {base.gameObject.GetPath()}");
         }
         animCurveTime[i] = Random.Range(0f, candleFlickerData.AnimTime);
     }
 }