Example #1
0
 void Update()
 {
     if (targets.Count > 0)
     {
         int        completeTarget = -1;
         Vector3    newPosition    = targets[0].position;
         Quaternion newRotation    = targets[0].rotation;
         for (int i = 1; i < targets.Count; i++)
         {
             targets[i].weight += Time.deltaTime * targets[i].speed;
             if (targets[i].weight >= 1f)
             {
                 targets[i].weight = 1f;
                 completeTarget    = i;
             }
             newPosition = Vector3.Lerp(newPosition, targets[i].position, QuadraticStep.Calc(targets[i].weight));
             newRotation = Quaternion.Lerp(newRotation, targets[i].rotation, QuadraticStep.Calc(targets[i].weight));
         }
         if (localSpace)
         {
             transform.localPosition = newPosition;
             transform.localRotation = newRotation;
         }
         else
         {
             transform.position = newPosition;
             transform.rotation = newRotation;
         }
         if (completeTarget > 0)
         {
             targets.RemoveRange(0, completeTarget);
         }
     }
 }
 void Update()
 {
     phase += Time.deltaTime * 1f;
     if (phase >= 1f)
     {
         enabled            = false;
         RenderSettings.fog = false;
         flare1.localScale  = new Vector3(flare1Scale, flare1Scale, flare1Scale);
         flare2.localScale  = new Vector3(flare2Scale, flare2Scale, flare2Scale);
     }
     else
     {
         float quadraticPhase = QuadraticStep.Calc(phase);
         RenderSettings.fogStartDistance = Mathf.Lerp(near, 100, quadraticPhase);
         RenderSettings.fogEndDistance   = Mathf.Lerp(far, 200, quadraticPhase);
         float flarePhase = QuadraticStep.Calc(Mathf.Min(phase * 2f, 1f));
         float flare1Lerp = Mathf.Lerp(0f, flare1Scale, flarePhase);
         float flare2Lerp = Mathf.Lerp(0f, flare2Scale, flarePhase);
         flare1.localScale = new Vector3(flare1Lerp, flare1Lerp, flare1Lerp);
         flare2.localScale = new Vector3(flare2Lerp, flare2Lerp, flare2Lerp);
     }
 }