跳转到内容

如何使用电影相机功能

如何使用电影相机功能

使用相机API类(Camera)时需要注意区分,对于操控主相机的API,不需要指定实例id。而一部分API是针对元件【电影相机】(MovieCamera,常用于制作过场动画等)生效的,对于这部分API,需要指定相机的实例Id。下面介绍,如何通过编程元件,使用电影相机。

首先在编辑器中,设置电影相机。

image52(1)在场景摆放好若干电影相机。
image53(2)记录电影相机的实例ID,方便脚本中调用。
image54(3)如果需要使用锁定功能,那么在编辑器先完成配置。

然后编辑脚本。

GameClient.lua

--注意:全部Camera类型API,都需要运行在客户端环境下。
-- 客户端游戏开始时
function GameClient:OnStart()
Log:PrintLog("[GameClient:OnStart]")
local movie_camera_1=226
local movie_camera_2=227
local movie_camera_3=228
--开始movie_camera_1电影相机
Camera:MovieCameraStart(movie_camera_1)
--1秒后,开始movie_camera_2电影相机;备注,开始新电影相机后,会自动停止上一个生效的电影相机;此外,在电影相机生效时,针对主相机的设置也不会被观察到。
TimerManager:AddTimer(1,function ()
Camera:MovieCameraStart(movie_camera_2)
end)
--2秒后,开始movie_camera_3电影相机
TimerManager:AddTimer(2,function ()
Camera:MovieCameraStart(movie_camera_3)
--因为电影相机是元件类型,因此可以直接使用Element类来操作
Element:MoveTo(movie_camera_3,Element:GetPosition(movie_camera_3)+Engine.Vector(1000,0,0),2,Element.CURVE.linear)
end)
TimerManager:AddTimer(4,function ()
--使用电影相机的锁定功能,注意需要在这个电影相机激活状态下使用
Camera:MovieCameraStartLock(movie_camera_3,1) --参数1:电影相机id,参数2:锁定信息的index,也就是编辑器中相机锁定栏锁定信息的编号。
--这里电影相机追踪id=239的元件,请先在编辑器中设置相机锁定
Element:MoveTo(239,Element:GetPosition(239)+Engine.Vector(0,1000,0),2,Element.CURVE.linear)
end)
TimerManager:AddTimer(10,function ()
--停止电影相机,返回主相机视角
Camera:MovieCameraStop(movie_camera_3)
end)
end