Table of Contents
Introduction
DeepAR engine supports custom JavaScript scripts and exposes a number of JavaScript callbacks, functions and methods that allow you to fully customize the effect to your needs.
Quickstart
Using new DeepAR Studio
First, create a JavaScript file HelloWorld.js
containing the following code.
function onStart() {
Debug.log('Hello world!');
}
Then open DeepAR Studio and create a new project. On the Root
node, attach the Script
component.
Drag and drop the HelloWorld.js
file into the DeepAR Studio and click Import
in the Import Resource
window which had just appeared.
Now in the Properties
tabbed window, find the Script
slot of the Script
component and drag and drop the imported HelloWorld.js
script resource (from the Resources
tabbed window) into it.
Finally, you can preview the effect and see the "Hello world!"
message appear in the Scripting Console
window.
Using legacy DeepAR Studio
First, create a JavaScript file HelloWorld.js
containing the following code.
function onStart() {
Debug.log('Hello world!');
}
Then open DeepAR Studio and create a new effect. On the Root
node, attach the Script
component.
On the right side properties view, find the Source Code
property of the Script
component and click on the "Choose Script File..."
button.
Select the HelloWorld.js
script file.
On the left side, in the tabs view you can see the Console
tab view. It shows the number of new (unread) console logs. Click on it to see them.
The console output will show the info log message "Hello world!"
.
Callbacks
onStart()
Called once when the script component is started.
onPreUpdate()
Called before each frame update.
onUpdate()
Called on each frame update.
onFlush()
Called after each frame update.
onCollisionEnter(firstNode, secondNode)
Called when two physics bodies start colliding. Both firstNode
and secondNode
are instances of Node class.
onCollisionInside(firstNode, secondNode)
Called when two physics bodies are colliding. Both firstNode
and secondNode
are instances of Node class.
onCollisionLeave(firstNode, secondNode)
Called when two physics bodies stop colliding. Both firstNode
and secondNode
are instances of Node class.
onTouchOccurred(touch, type)
Called when a touch event occurs. The touch
parameter is of Touch class and the type
parameter is of Touch.TouchType enum.
onTriggerStateChanged(triggerType, state, faceId)
Called when a trigger state changes. The triggerType
parameter is of Utility.TriggerType enum and represents the type of trigger that has changed. The state
is a boolean which represents the new trigger state. The faceId
is an integer that represents the face index on which the trigger state has changed (value ranges from 0 to 3).
onCustomTriggerFired(triggerName)
Called when a custom trigger is fired. The triggerName
is a string that represents the fired trigger name.