Last active
January 8, 2021 14:25
-
-
Save pedrorocha-net/07a04771e472063302c0cda53b8fbb80 to your computer and use it in GitHub Desktop.
Spark AR script that uses Persistence module to save the number of taps a user does on screen
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const Scene = require('Scene'); | |
const Persistence = require('Persistence'); | |
const Diagnostics = require('Diagnostics'); | |
const Patches = require('Patches'); | |
// Esperamos por todos os itens que iremos usar do SparkAR ficarem disponíveis | |
Promise.all([ | |
Patches.outputs.getPulse('wasTapped'), | |
Scene.root.findFirst('2dText0'), | |
]).then(results => { | |
// Criamos variáveis com nomes mais interessantes de usar, após os itens ficarem prontos | |
let tapPulse = results[0]; | |
let textElement = results[1]; | |
// Iniciamos nossos dados | |
let data = { counter: 0 }; | |
// Iniciamos o texto com 0, enquanto buscamos os dados do Persistence | |
textElement.text = data.counter.toString(); | |
// Nos inscrevemos para "ouvir" os taps e executar nossa lógica quando estiver "On" | |
tapPulse.subscribe(() => { | |
// Incrementamos o counter | |
data.counter++; | |
// Atualizamos o texto com o counter | |
textElement.text = data.counter.toString(); | |
// Salvamos o novo valor do counter | |
Persistence.userScope.set('data', data); | |
}); | |
Persistence.userScope.get('data').then(result => { | |
/* | |
* Quando alguém inicia o efeito pela primeira vez, os dados vem vazios, então somente podemos | |
* alterar a variavel data caso a result tenha algum valor (que acontecerá nas próximos acessos) | |
*/ | |
if(result) { | |
data = result; | |
} | |
// Atualizamos o texto com o counter | |
textElement.text = data.counter.toString(); | |
}).catch(error => { | |
// Caso algum error aconteça ao buscar os dados, exibimos no console | |
Diagnostics.log('There is an error ' + error); | |
}) | |
}).catch(error => { | |
// Caso algum error aconteça ao esperar pelos itens do SparkAR, exibimos no console | |
Diagnostics.log('There is an error ' + error); | |
}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Estou tentanto usar esse script mas esta dando erro. Aparece "There is an error Trying to get signal to Script with name (wasTapped). Please make sure to define a ToScript patch with that name and correct type in the patch editor"