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 и так далее. не является пропорцией.