snapchat lens

268 阅读1分钟

最近有用在做snapchat lens,这里记录一下常用的代码片段

倒计时

var delayedEvent =script.createEvent("DelayedCallbackEvent");
delayedEvent.bind(function(){
    // 这里写逻辑、、、
    
    if (end) {
        // 如想要结束、、、
        
    } else {
        count--;
        delayedEvent.reset(1);
    }
});
delayedEvent.reset(1);

Tween动画使用

// 启动动画
global.tweenManager.startTween(SceneObject sceneObject, string, tweenName [, function onComplete, function onStart, function onStop])
// 暂停动画
global.tweenManager.stopTween(SceneObject sceneObject, string tweenName)
// 重置动画
global.tweenManager.resetObject(SceneObject sceneObject, string tweenName)

动态替换材质

script.obj.getComponent("Component.RenderMeshVisual").getMaterial(0).mainPass.baseTex = ‘texture’

设置材质球属性emissiveIntensity

script.tieMaterial.mainPass.emissiveIntensity = ‘float ’

播放2d动画帧

script.huohua.getComponent("Component.Image").getMaterial(0).getPass(0).baseTex.control.play(1, 0.0);

3d模型附加到摄像机

// -----JS CODE-----
//@input Component.Camera cam 
// 模型的x轴y轴偏移
//@input vec2 screenPoint 
// 模型距离摄像机距离
//@input float distFromNear = 40.0 
 
script.createEvent("LateUpdateEvent").bind(function(){ 
    var pos = script.cam.screenSpaceToWorldSpace(script.screenPoint, 
    script.distFromNear );
    script.getTransform().setWorldPosition(pos);
});