Ограничить позиции джостика

124
24 июля 2021, 15:20

Есть метод:

public void OnDrag(PointerEventData data) {
    if (data.pointerId == lastId) {
        isFree = false;
        Vector3 position = bl_JoystickUtils.TouchPosition(m_Canvas, GetTouchID);
        if (Vector2.Distance(DeathArea, position) < radio) {
            StickRect.position = position;
        } else {
            StickRect.position = DeathArea + (position - DeathArea).normalized * radio;
        }
    }
}

Как сделать так, чтобы при перемещении джостика, значения наклонения и поворота были меньше, чтобы, когда выходим за пределы джостика значения не увеличивались.

Нужно как-бы ограничить, чтобы углы наклона и перемещения были меньше, чем сейчас.

Не могу врубиться как это сделать.

UPD: Видать не то дал, джостик не причем, скорее всего дело тут:

private void TiltProcess() {
    hTilt.x = Mathf.Lerp(hTilt.x, hMove.x * 30f, Time.deltaTime);
    hTilt.y = Mathf.Lerp(hTilt.y, hMove.y * 20f, Time.deltaTime);
    rb.transform.localRotation = Quaternion.Euler(hTilt.y, rb.transform.localEulerAngles.y, -hTilt.x);
}

На сколько понял, это и отвечает за наклон или поворот, как его уменьшить, чтобы меньше поворот был и наклон?

Answer 1

Проблема была в мов кортроллере, решилась через Clamp

hMove.x = Mathf.Clamp(hHor, -1, 1);
hMove.y = Mathf.Clamp(hVer, -1, 1);
READ ALSO
Маршалинг строки Unicode 32

Маршалинг строки Unicode 32

Атоловская "libfptr10so" в линуксе работает с 4-х байтовыми символами в строке - Unicode 32

197
C# Unity Найти пустые элементы в List и удалить их

C# Unity Найти пустые элементы в List и удалить их

Есть List, в котором изначально хранится множество ссылок на объекты в юнитиВ процессе выполнения кода, какие-то из объектов перестают существовать,...

206
Как изменить разрешение картинке в контроллере? ASP.NET Core

Как изменить разрешение картинке в контроллере? ASP.NET Core

В контроллер заходит файл-картинкаСигнатура контроллера

184