GameObject:
У меня есть игровой объект "Сфера" со следующими свойствами:
- Начальная шкала 1,5 (x, y, z).
- Сценарий, который проверяет, что масштаб находится в диапазоне от 0 до 150.
Что у меня есть:
Теперь я реализовал функцию, которая позволяет пользователю масштабировать GameObject с помощью контроллеров HTC Vive (мы используем виртуальную реальность).
Эта функция проверяет расстояние между контроллерами (часто между -1 и 1, чтобы решить, хотим ли мы увеличить или уменьшить объект).
Поэтому, когда у меня есть это значение от -1 до 1, я масштабирую GameObject на значение, кратное чувствительности (это редактируется в редакторе Unity).
Что я хочу:
Это работает довольно хорошо, хотя я хочу увеличить чувствительность с течением времени не жестко запрограммированным способом. Поэтому, когда GameObject очень маленький, масштабирование будет очень медленным. Когда GameObject довольно большой, масштабирование будет быстрым.
Что я пробовал:
У меня есть это значение (от -1 до 1), тогда я умножу это значение на чувствительность.
Тогда я умножу на текущую / максимальную шкалу.
Однако это вызывает проблему, заключающуюся в том, что увеличение происходит быстрее, чем уменьшение.
Код, который я использую, выглядит следующим образом:
float currentControllerDistance = Vector3.Distance(LeftHand.transform.position, RightHand.transform.position);
float currentZoomAmount = currentControllerDistance - ControllersStartPostionDifference; // Value is between -1 and 1.
currentZoomAmount = currentZoomAmount * ScalingSensitivity; // Multiplying by the value in the Unity Editor.
float currentPercentage = ObjectToScale.transform.localScale.x / ObjectMaximumScale.x; // Current scale percentage in comparison to the maximum scale.
currentZoomAmount = currentZoomAmount * currentPercentage; // Changing the ObjectToScale by adding the currentZoomAmount.
ObjectToScale.transform.localScale = new Vector3(ObjectCurrentScale.x + currentZoomAmount, ObjectCurrentScale.y + currentZoomAmount, ObjectCurrentScale.z + currentZoomAmount);
Кто-нибудь знает, как сделать такое масштабирование?
Спасибо вперед.