videoMgr的使用
1346 字约 4 分钟
2024-12-17
一、资源
1. 视频存放路径
Video
的资源和Sound
同级,有使用的资源需要在SmallGame/AssetsId.txt中增加,同样,Pack.txt的打包信息也要修改(Files:Bundle/Video
和Bundle/Prefab/VideoMgr
)。
2. Shader
视频在使用剔除材质的时候会用到一些Shader,已上传到框架中,在SmallGame/Bundle/Shader
下
二、快速上手
普通使用
Globals.videoMgr:Play({
url = "Video/Cutscene_NGtoFG", -- 你的视频url
})
进阶使用
-- 在init中准备视频
function TransitionView:Initialize()
-- 使用rawImage可以处理视频翻转问题
self.rawImage = self:GetChild("rawImage", ClassType.RawImage)
self.videoAsset = {
url = "Video/Cutscene_NGtoFG", -- 你的视频url
renderMode = UnityEngine.Video.VideoRenderMode.RenderTexture,
isPrepare = true, -- 准备
rawImage = self.rawImage,
frameListener = {
[-5] = callback(self, "OnVideoComplete")
},
}
-- 准备视频
Globals.videoMgr:Play(self.videoAsset)
end
-- 在某个节点play视频
function TranstionView:Play()
self.videoAsset.isPrepare = false -- 准备完成
self.rawImage.gameObject:SetActive(true)
Globals.videoMgr:Play(self.videoAsset)
end
-- 视频播放完成
function TransitionView:OnVideoComplete()
Globals.videoMgr:Stop(self.videoAsset)
-- 接下来的操作TODD
end
三、VideoItem API
1、说明
API已被更新,具体使用查看VideoItem.lua
6、DOAlpha(alpha, time)
参数及返回值
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
alpha | number | 透明度(取值为0~1) | |
time | number | 持续时间 |
返回值的类型 | 说明 |
---|---|
VideoItem | 返回self,主要用于链式 |
方法说明
在time秒之后把视频的透明度平滑地修改为alpha。
使用
7、SetMaterial(materialType, param)
参数及返回值
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
materialType | enum | 可以选的类型为Const.VideoMaterialType.Color 、Const.VideoMaterialType.Image | |
param | table | 传入的参数,image类型:{maskTex:Texture},Color类型:{removeColor:Color} |
返回值的类型 | 说明 |
---|---|
VideoItem | 返回self,主要用于链式 |
方法说明
有需求播放具有透明通道的视频,可以使用shader对视频进行剔除,现在能使用的类型有静态的图片、或者是每帧下的颜色。
使用
左边是正常的视频播放,右边的是把黑色剔除了之后的视频。
右边是进行剔除的图片,左边是根据图片剔除之后的效果视频。ps:剔除的部分为图片中透明的部分。