--@input float curTime = 0.0{"widget":"slider","min":0,"max":3.0} local exports = exports or {} local SeekModeScript = SeekModeScript or {} SeekModeScript.__index = SeekModeScript function SeekModeScript.new(construct, ...) local self = setmetatable({}, SeekModeScript) if construct and SeekModeScript.constructor then SeekModeScript.constructor(self, ...) end self.startTime = 0.0 self.endTime = 3.0 self.curTime = 0.0 self.first = nil return self end function SeekModeScript:constructor() end function SeekModeScript:onUpdate(comp, detalTime) self.curTim = self.curTime + detalTime self:seekToTime(comp, self.curTime - self.startTime) end function SeekModeScript:onStart(comp) self.pass6Material = comp.entity.scene:findEntityBy("SeekModeScript"):getComponent("MeshRenderer").material end function SeekModeScript:seekToTime(comp, time) local w = Amaz.BuiltinObject:getInputTextureWidth() local h = Amaz.BuiltinObject:getInputTextureHeight() self.pass6Material:setFloat("ratio",w/h) self.pass6Material:setInt("imageWidth", w) self.pass6Material:setInt("imageHeight", h) -- self.pass6Material:setFloat("scale", 0.9) end function SeekModeScript:onEvent(sys, event) if("Internal_Size" == event.args:get(0)) then local intensity = event.args:get(1) self.pass6Material:setFloat("scale", intensity) end if("Internal_Radius" == event.args:get(0)) then local intensity = event.args:get(1) self.pass6Material:setFloat("radius", 0.25*intensity) end end exports.SeekModeScript = SeekModeScript return exports