Unity3D C#. Пропорциональное изменение двух переменных

Есть две переменные:
A = от 0 до 1
B = от 1000 до 10000
Как сделать так, чтобы при изменении одной переменной, пропорционально изменялась в реальном времени и вторая?
То есть при A = 0, B = 1000. При A = 0.5, B = 5000 и так далее.

Нужно однострочное решение с помощью какой-нибудь функции, если таковая имеется


Ответы (1 шт):

Автор решения: tym32167

Если вам надо, чтобы при изменениий А, менялось В и наоборот, то, возможно, у вас не 2 переменные, а одна структура данных.

Пример

public class MyClass
{
    public double A
    {
        get => _holder;
        set =>_holder = value;      
    }
    
    public double B 
    {
        get => 1000 + (9000 * _holder);
        set => _holder = (value - 1000) / 9000;
    }
    
    private double _holder = 0;
}

Проверка

var test = new MyClass();
test.A = 0;
Console.WriteLine($"A:{test.A}, B:{test.B}");
test.A = 0.5;
Console.WriteLine($"A:{test.A}, B:{test.B}");
test.A = 1;
Console.WriteLine($"A:{test.A}, B:{test.B}");
test.B = 5000;
Console.WriteLine($"A:{test.A}, B:{test.B}");

Вывод

A:0, B:1000
A:0.5, B:5500
A:1, B:10000
A:0.444444444444444, B:5000

И да, как видите, ваше условие при A = 0, B = 1000. При A = 0.5, B = 5000 и так далее. не является пропорцией.

→ Ссылка