Lerp() public static méthode

public static Lerp ( HSBColor a, HSBColor b, float t ) : HSBColor
a HSBColor
b HSBColor
t float
Résultat HSBColor
Exemple #1
0
        public void Update()
        {
            if (!MultiplierController.isActiveAndEnabled)
            {
                return;
            }

            if (Config.SmoothTransition)
            {
                if (CurrentMultiplier == 1)
                {
                    BG.color = HSBColor.Lerp(HSBColor.FromColor(Config.One), HSBColor.FromColor(Config.Two), FG.fillAmount).ToColor().ColorWithAlpha(0.25f);
                    FG.color = HSBColor.Lerp(HSBColor.FromColor(Config.One), HSBColor.FromColor(Config.Two), FG.fillAmount).ToColor();
                }
                else if (CurrentMultiplier == 2)
                {
                    BG.color = HSBColor.Lerp(HSBColor.FromColor(Config.Two), HSBColor.FromColor(Config.Four), FG.fillAmount).ToColor().ColorWithAlpha(0.25f);
                    FG.color = HSBColor.Lerp(HSBColor.FromColor(Config.Two), HSBColor.FromColor(Config.Four), FG.fillAmount).ToColor();
                }
                else if (CurrentMultiplier == 4)
                {
                    BG.color = HSBColor.Lerp(HSBColor.FromColor(Config.Four), HSBColor.FromColor(Config.Eight), FG.fillAmount).ToColor().ColorWithAlpha(0.25f);
                    FG.color = HSBColor.Lerp(HSBColor.FromColor(Config.Four), HSBColor.FromColor(Config.Eight), FG.fillAmount).ToColor();
                }
            }

            if (CurrentMultiplier == 8 && Config.RainbowOnMaxMultiplier)
            {
                BG.color = HSBColor.ToColor(new HSBColor(Mathf.PingPong(Time.time * 0.5f, 1), 1, 1));
            }
        }
        private IEnumerator PrepareColorsForEnergyType(GameplayModifiers.EnergyType type)
        {
            yield return(new WaitUntil(() => EnergyPanel != null));

            if (type == GameplayModifiers.EnergyType.Battery)
            {
                List <Image> batterySegments = EnergyPanel.GetField <List <Image>, GameEnergyUIPanel>("_batteryLifeSegments");

                batterySegments[0].color = Config.Low;
                batterySegments[1].color = HSBColor.Lerp(HSBColor.FromColor(Config.Low), HSBColor.FromColor(Config.Mid), 0.34f).ToColor();
                batterySegments[2].color = HSBColor.Lerp(HSBColor.FromColor(Config.Mid), HSBColor.FromColor(Config.High), 0.66f).ToColor();
                batterySegments[3].color = Config.High;

                yield break;
            }

            else if (type == GameplayModifiers.EnergyType.Bar)
            {
                if (Modifiers.instaFail)
                {
                    EnergyBar       = EnergyPanel.transform.Find("BatteryLifeSegment(Clone)").GetComponent <ImageView>();
                    EnergyBar.color = Config.High;
                }
                else
                {
                    EnergyBar       = EnergyPanel.transform.Find("EnergyBarWrapper/EnergyBar").GetComponent <ImageView>();
                    EnergyBar.color = Config.Mid;
                }
            }

            EnergyCounter.gameEnergyDidChangeEvent += HandleEnergyDidChange;
        }
        // Update is called once per frame
        public override void Update()
        {
            if (Player != null)
            {
                if (HealthBar != null)
                {
                    HealthBar.fillAmount = Player.Status.DurabilityInPercent * 0.01f;
                    HealthBar.color      = HSBColor.ToColor(HSBColor.Lerp(Color.red, Color.green, HealthBar.fillAmount));
                }

                if (DamageIndicator != null)
                {
                    DamageIndicator.color = new Color(DamageIndicator.color.r, DamageIndicator.color.g, DamageIndicator.color.b, Mathf.Clamp01(1 - (Player.Status.DurabilityInPercent * 0.01f)));
                }

                if (InventorySlotBar != null)
                {
                    InventorySlotObject _slot = Player.Inventory.GetSlotByIndex(0);

                    if (_slot != null)
                    {
                        InventorySlotBar.fillAmount = _slot.AmountInPercent * 0.01f;
                        InventorySlotBar.color      = HSBColor.ToColor(HSBColor.Lerp(Color.red, Color.green, InventorySlotBar.fillAmount));
                    }
                }
            }

            DisplayEntityInfos();
        }
Exemple #4
0
    void OnDrawGizmos()
    {
        if (DrawHistory)
        {
            float angleDelta = (AngleRange * 2.0f) / (float)NumIncrements;

            for (int i = 0; i < m_history.Count; i++)
            {
                float startAngle = -AngleRange - m_history[i].riderAngle;
                float endAngle   = AngleRange - m_history[i].riderAngle;

                for (int increment = 0; increment < NumIncrements; ++increment)
                {
                    float angle = startAngle + (angleDelta * (float)increment);

                    Quaternion rotation  = Quaternion.Euler(new Vector3(0.0f, angle, 0.0f));
                    Vector3    direction = rotation * Vector3.forward;

                    HSBColor lineColor = HSBColor.Lerp(new HSBColor(Color.green), new HSBColor(Color.red), m_history[i].scores[increment]);

                    Gizmos.color = lineColor.ToColor();
                    Gizmos.DrawLine(m_history[i].position, m_history[i].position + direction * (i == (HistoryFocus % m_history.Count)? RaycastRange : 0.01f));

                    if (increment == m_history[i].winner && i == (HistoryFocus % m_history.Count))
                    {
                        Gizmos.color = Color.magenta;
                        Gizmos.DrawLine(m_history[i].position, m_history[i].position + direction * 1.3f);
                        Debug.Log("Angle: " + angle);
                    }
                }
            }
        }
    }
Exemple #5
0
    public void UpdateCustomerNumber()
    {
        customerNumberLabel.text = zoneModel.customers.Count.ToString();
        float    transparency = .3f;
        HSBColor red          = new HSBColor(new Color(1f, 0f, 0f, transparency));
        HSBColor green        = new HSBColor(new Color(0f, 1f, 0f, transparency));

        icon.color = HSBColor.ToColor(HSBColor.Lerp(green, red, (float)zoneModel.customers.Count / zoneModel.maxQueue));
        progressIndicator.color = icon.color;

        progressIndicator.fillAmount = 0f;
        //icon.color = Color.Lerp(Color.green, Color.red, (float) zone.customers.Count / zone.maxQueue );
    }
Exemple #6
0
        public Color LerpColor(Color endColor, float alpha)
        {
            HSBColor endColorHSB = HSBColor.FromColor(endColor);

            endColorHSB.s = 1.0f;
            endColorHSB.h = colors[activeColor];
            HSBColor newColor = HSBColor.FromColor(endColor);

            newColor.b -= .6f;
            newColor.s  = 1.0f;
            newColor.h  = colors[activeColor];
            return(HSBColor.Lerp(newColor, endColorHSB, alpha).ToColor());
        }
        public override void Apply()
        {
            //var f = MathHelper.SmoothStep(0, 1, (float)durationCurrent / StepCountTotal);
            var f = DurationCurrent / Duration;

            hsbValueCurrent = HSBColor.Lerp(hsbValueBegin, hsbValueEnd, f);

            ValueCurrent = hsbValueCurrent.ToColor();

            foreach (var material in Materials)
            {
                material.color = ValueCurrent;
            }
        }
        // Update is called once per frame
        public override void Update()
        {
            base.Update();

            if (Entity == null)
            {
                return;
            }

            if (HealthBar != null)
            {
                HealthBar.fillAmount = Entity.Status.DurabilityInPercent * 0.01f;
                HealthBar.color      = HSBColor.ToColor(HSBColor.Lerp(Color.red, Color.green, HealthBar.fillAmount));
            }
        }
Exemple #9
0
        public void SetColors(Color def, Color?selected = null, Color?abandoned = null)
        {
            Color s = (selected == null)
                                ? Color.red
                                : (Color)selected;

            Color a = (abandoned == null)
                                ? HSBColor.Lerp(HSBColor.FromColor(def), HSBColor.Black, 0.67f).ToColor()
                                : (Color)abandoned;

            AddColor("default", def);
            AddColor("selected", s);
            AddColor("abandoned", a);
            SetColor("default");
        }
    private void setColor(float value, float topThreshold, float botThreshold, float topRange, float botRange)
    {
        var color = lowColor;

        if (value > topThreshold)
        {
            color = HSBColor.Lerp(lowHSB, hightHSB, (value - topThreshold) / topRange).ToColor();
            //color = Color.Lerp(lowColor, hightColor, (value-topThreshold)/topRange);
        }
        else if (value < botThreshold)
        {
            color = HSBColor.Lerp(lowHSB, hightHSB, (value - botThreshold) / botRange).ToColor();
            //color = Color.Lerp(lowColor, hightColor, (value-botThreshold)/botRange);
        }
        GL.Color(color);
    }
        private void Update()
        {
            if (!canBeUsed)
            {
                return;
            }

            // The performance impact of this is unmeasured but probably negligable. I do want to find a way to do this without using Update()
            if (Config.UseFadeDisplayType)
            {
                BarComponents[0].color = HSBColor.Lerp(
                    HSBColor.FromColor(Config.StartColor),
                    HSBColor.FromColor(Config.EndColor),
                    SyncController.songTime / SyncController.songLength).ToColor();
            }
        }
Exemple #12
0
    void FixedUpdate()
    {
        float temperatureDifference = ambientTemperature - CurrentTemperature;

        CurrentTemperature += temperatureDifference * temperatureDissapationRate * Time.fixedDeltaTime;

        if (temperatureReadoutText != null)
        {
            temperatureReadoutText.color = HSBColor.Lerp(HSBColor.FromColor(Color.green), HSBColor.FromColor(Color.red), GetSafeness()).ToColor();

            string text = moduleName + ": " + CurrentTemperature.ToString("0") + "c";
            if (GetSafeness() >= 1f)
            {
                text += "!!!";
            }
            temperatureReadoutText.text = text;
        }
    }
 private void HandleEnergyDidChange(float energy)
 {
     if (energy == 0.5f)
     {
         EnergyBar.color = Config.Mid;
     }
     else if (energy > 0.5f)
     {
         EnergyBar.color = HSBColor.Lerp(
             HSBColor.FromColor(Config.Mid),
             HSBColor.FromColor(Config.High),
             (energy - 0.5f) * 2).ToColor();
     }
     else if (energy < 0.5f)
     {
         EnergyBar.color = HSBColor.Lerp(
             HSBColor.FromColor(Config.Low),
             HSBColor.FromColor(Config.Mid),
             energy * 2).ToColor();
     }
 }
Exemple #14
0
 public void Update()
 {
     if (lerping)
     {
         timer += Time.deltaTime;
         if (timer >= .49f)
         {
             timer   = 0.0f;
             lerping = false;
         }
         else
         {
             float    alpha    = timer / .49f;
             HSBColor endColor = GameManager.Instance.ActiveColorHSB;
             endColor.b = .5f;
             HSBColor beginColor = HSBColor.FromColor(this.prevColor);
             beginColor.b         = .5f;
             spriteRenderer.color = HSBColor.Lerp(beginColor, endColor, alpha).ToColor();
         }
     }
 }
Exemple #15
0
    void OnDrawGizmos()
    {
        return;

        HSBColor red   = new HSBColor(Color.red);
        HSBColor green = new HSBColor(Color.green);

        for (int y = 0; y < Height; ++y)
        {
            for (int x = 0; x < Width; ++x)
            {
                float xPos = -m_halfWidth + (CellSize / 2.0f) + x * CellSize;
                float yPos = (CellSize / 2.0f) + y * CellSize;

                Color cellColor = HSBColor.Lerp(green, red, Mathf.Clamp01(m_heat[x, y])).ToColor();
                cellColor.a = 1.0f;

                Gizmos.color = cellColor;
                Gizmos.DrawCube(new Vector3(transform.position.x + xPos, transform.position.y, transform.position.z + yPos), new Vector3(CellSize, 0.001f, CellSize));
            }
        }
    }
Exemple #16
0
    IEnumerator FlashScoreBar(Image scoreBar)
    {
        Color darkerColor = scoreBar.color;

        darkerColor.r *= 0.5f;
        darkerColor.g *= 0.5f;
        darkerColor.b *= 0.5f;
        HSBColor darkColor    = HSBColor.FromColor(darkerColor);
        HSBColor flashColor   = HSBColor.FromColor(Color.yellow);
        HSBColor currentColor = darkColor;
        bool     pingPong     = true;
        float    time         = 0.0f;

        while (true)
        {
            float elapsedTime = Time.deltaTime * 2.0f;
            if (pingPong)
            {
                time += elapsedTime;
            }
            else
            {
                time -= elapsedTime;
            }
            time = Mathf.Clamp01(time);
            if (time == 0.0f)
            {
                pingPong = true;
            }
            else if (time == 1.0f)
            {
                pingPong = false;
            }

            currentColor   = HSBColor.Lerp(darkColor, flashColor, time);
            scoreBar.color = currentColor.ToColor();
            yield return(new WaitForEndOfFrame());
        }
    }
Exemple #17
0
    IEnumerator ResetScoreBarColor(Image scoreBar, Color originalColor)
    {
        float    time         = 0.0f;
        HSBColor startColor   = HSBColor.FromColor(scoreBar.color);
        HSBColor endColor     = HSBColor.FromColor(originalColor);
        HSBColor currentColor = startColor;

        while (true)
        {
            time          += Time.deltaTime * 2.0f;
            time           = Mathf.Clamp01(time);
            currentColor   = HSBColor.Lerp(startColor, endColor, time);
            scoreBar.color = currentColor.ToColor();
            if (time >= 0.90f)
            {
                scoreBar.color = originalColor;
                break;
            }
            yield return(new WaitForEndOfFrame());
        }
        yield return(null);
    }
Exemple #18
0
    void lightColor()
    {
        if (flip || nLeft == 0 || nRight == 0)
        {
            sat = 0;
        }
        else
        {
            sat = 1 - anis;
        }
        HSBColor col2 = new HSBColor(hue, sat, 1, 0);
        HSBColor col1 = HSBColor.FromColor(lightC.color);
        //Color col = (new HSBColor(hue,  sat, 1, 0)).ToColor();
        //Color lerpedColor = Color.Lerp(lightC.color, col, Time.deltaTime);
        Color col = (HSBColor.Lerp(col1, col2, Time.deltaTime)).ToColor();

        lightC.color = col;
        if (flip)
        {
            if (hue == 0)
            {
                hue = 120f / 360f;
            }
            else
            {
                hue = 0;
            }
            flip = !flip;
            col1 = col2;
            col2 = new HSBColor(hue, sat, 1, 0);
            //Color col = (new HSBColor(hue,  sat, 1, 0)).ToColor();
            //Color lerpedColor = Color.Lerp(lightC.color, col, Time.deltaTime);
            col          = (HSBColor.Lerp(col1, col2, Time.deltaTime)).ToColor();
            lightC.color = col;
        }
    }
Exemple #19
0
        // These functions are accessible from any Color struct.
        // (Put this script in the Plugins folder for Javascript access)

        public static UnityEngine.Color Slerp(this UnityEngine.Color a, UnityEngine.Color b, float t)
        {
            return((HSBColor.Lerp(HSBColor.FromColor(a), HSBColor.FromColor(b), t)).ToColor());
        }
Exemple #20
0
    public float UpdateSteering(float angleToGlobalTarget, float riderAngle)
    {
        if (Input.GetKeyDown(KeyCode.PageUp))
        {
            HistoryFocus++;
        }
        if (Input.GetKeyDown(KeyCode.PageDown))
        {
            HistoryFocus--;
        }

        if (GameTime.Instance.Paused == true)
        {
            return(0.0f);
        }

        float angleDelta = (AngleRange * 2.0f) / (float)NumIncrements;

        float startAngle = -AngleRange + riderAngle;
        float endAngle   = AngleRange + riderAngle;

        // Debug.Log("Angle: " + angleToGlobalTarget);

        bool previousBlocked = false;

        float[] scores = new float[NumIncrements];

        for (int increment = 0; increment < NumIncrements; ++increment)
        {
            float angle = startAngle + (angleDelta * (float)increment);

            Quaternion rotation  = Quaternion.Euler(new Vector3(0.0f, angle, 0.0f));
            Vector3    direction = rotation * Vector3.forward;

            Vector3 targetVec = Quaternion.Euler(new Vector3(0.0f, angleToGlobalTarget, 0.0f)) * Vector3.forward;

            scores[increment] = 1.0f - Mathf.Pow(Vector3.Dot(targetVec, direction), 4.0f);

            if (previousBlocked)
            {
                scores[increment] += 0.3f;
                previousBlocked    = false;
            }

            //TODO: Check out of bounds:
            // Get offsetX at transform.position.y + direction.y and check to see if further out

            RaycastHit hitInfo;
            if (Physics.Raycast(transform.position, direction, out hitInfo, RaycastRange, CollisionLayers.value))
            {
                // Increase the heat from a hit proportional to distance of the hit, so closer obstacles are more dangerous
                scores[increment] = 1.0f - Mathf.Pow(hitInfo.distance / RaycastRange, 2.0f);
                previousBlocked   = true;

                if (increment > 0)
                {
                    scores[increment - 1] += 0.3f;
                }
            }
        }

        const int kernelSize     = 5;
        const int halfKernelSize = kernelSize / 2;

        float[] blurredScores = new float[NumIncrements];

        // Blur score values
        for (int increment = 0; increment < NumIncrements; ++increment)
        {
            float total         = 0.0f;
            float contributions = 0;

            for (int otherIncrement = Mathf.Max(increment - halfKernelSize, 0); otherIncrement < Mathf.Min(increment + halfKernelSize, NumIncrements); ++otherIncrement)
            {
                total += scores[otherIncrement];
                contributions++;
            }

            blurredScores[increment] = total / (float)contributions;
        }

        int   maxIndex = -1;
        float minScore = 100.0f;

        for (int increment = 0; increment < NumIncrements; ++increment)
        {
            float angle = startAngle + (angleDelta * (float)increment);

            Quaternion rotation  = Quaternion.Euler(new Vector3(0.0f, angle, 0.0f));
            Vector3    direction = rotation * Vector3.forward;

            HSBColor lineColor = HSBColor.Lerp(new HSBColor(Color.green), new HSBColor(Color.red), blurredScores[increment]);

            //Debug.DrawLine(transform.position, transform.position + direction * RaycastRange, lineColor.ToColor());

            if (blurredScores[increment] < minScore)
            {
                minScore = blurredScores[increment];
                maxIndex = increment;
            }
        }

        float winnerAngle = startAngle + (angleDelta * (float)maxIndex) - riderAngle;

        Quaternion winnerRotation  = Quaternion.Euler(new Vector3(0.0f, winnerAngle, 0.0f));
        Vector3    winnerDirection = winnerRotation * Vector3.forward;
        // Debug.DrawLine(transform.position, transform.position + winnerDirection * 1.3f, Color.magenta);

        HistoricalSteeringData newData = new HistoricalSteeringData();

        newData.position   = transform.position;
        newData.scores     = blurredScores;
        newData.winner     = maxIndex;
        newData.riderAngle = riderAngle;

        m_history.Insert(0, newData);

        if (m_history.Count > 10)
        {
            m_history.RemoveAt(m_history.Count - 1);
        }



        return(winnerDirection.x);
    }
Exemple #21
0
    // These functions are accessible from any Color struct.
    // (Put this script in the Plugins folder for Javascript access)

    public static Color Slerp(this Color a, Color b, float t)
    {
        return((HSBColor.Lerp(HSBColor.FromColor(a), HSBColor.FromColor(b), t)).ToColor());
    }
Exemple #22
0
    public void Update()
    {
        HealthImage.fillAmount = m_rider.Health;

        HealthImage.color = HSBColor.Lerp(new HSBColor(Color.red), new HSBColor(Color.green), m_rider.Health).ToColor();
    }
Exemple #23
0
 public static HSBColor RandomBetween(HSBColor a, HSBColor b)
 {
     return(HSBColor.Lerp(a, b, Random.value));
 }
Exemple #24
0
 // color //
 public static Color HSBLerp(this Color _from, Color _to, float _f)
 {
     return((HSBColor.Lerp(HSBColor.FromColor(_from), HSBColor.FromColor(_to), _f)).ToColor());
 }