"Swipe Up/Down To Change" Script Incremental and decremental object + Counter text

Options
Apprentice
Apprentice Posts: 41 🔥
edited April 2023 in General #1

Hi guys
Swipe up = increment your objects
Swipe down = decrement your objects
Threshold can be set

Don't forget to import the "Swipe" library

Does with Chat GPT

Have fun (You can add tween alpha script to your text object to disappear her after a swipe)

//@input Component.Text textObject
//@input int initialValue
//@input int incrementValue
//@input int decrementValue

//@input SceneObject[] faceMasks
//@input float swipeThreshold = 0.2

var touchStartPosition = {x: 0, y: 0};

// Initialise la valeur du compteur
script.textObject.enabled = true;
var currentFaceMaskIndex = script.initialValue - 1;
displayCurrentFaceMask(currentFaceMaskIndex);

// Fonction appelée lorsque l'utilisateur effectue un swipe sur l'objet texte
function onSwipe(eventData) {
    var currentValue = parseInt(script.textObject.text);
    var touchEndPosition = {x: eventData.getTouchPosition().x, y: eventData.getTouchPosition().y};
    var swipeDirection = touchEndPosition.y - touchStartPosition.y;

    if (Math.abs(swipeDirection) > script.swipeThreshold * script.faceMasks[0].getTransform().getWorldScale().y) {
        if (swipeDirection > 0) {
            // Mouvement de swipe vers le bas : décrémente le compteur
            var newValue = currentValue - script.decrementValue;
            if (newValue < 1) {
                newValue = script.faceMasks.length;
            }
            script.textObject.text = newValue.toString();
            displayCurrentFaceMask(newValue - 1);
            print("Décrémenter la valeur : " + newValue);
        } else if (swipeDirection < 0) {
            // Mouvement de swipe vers le haut : incrémente le compteur
            var newValue = currentValue + script.incrementValue;
            if (newValue > script.faceMasks.length) {
                newValue = 1;
            }
            script.textObject.text = newValue.toString();
            displayCurrentFaceMask(newValue - 1);
            print("Incrémenter la valeur : " + newValue);
        }
    }
}

// Fonction appelée pour afficher le Face Mask correspondant à l'index donné
function displayCurrentFaceMask(index) {
    currentFaceMaskIndex = index;
    for (var i = 0; i < script.faceMasks.length; i++) {
        script.faceMasks[i].enabled = (i == currentFaceMaskIndex);
    }
}

// Associe la fonction onSwipe() à l'événement TouchStartEvent de l'objet texte
script.createEvent("TouchStartEvent").bind(function(eventData) {
    touchStartPosition = {x: eventData.getTouchPosition().x, y: eventData.getTouchPosition().y};
});

// Associe la fonction onSwipe() à l'événement TouchEndEvent de l'objet texte
script.createEvent("TouchEndEvent").bind(onSwipe);