在unity中使用TimeLine和PlayableDirector来实现简单的运镜

说到运镜 这个可以说是可以把游戏提升很高一个档次
尤其是对于3D的游戏 之前我写过用cimerachine插件来实现的运镜 大家如果有兴趣可以去看下
然后这次我用最最普通的camera和PlayableDirector组件来实现一下我们的运镜

我之前写过TimeLine的用法 TimeLine用法链接
建议大家去看一下

在我看来PlayableDirector和动画组件是一样的 只不过两个各有特点
动画组件相对于PlayableDirector来说更加灵活 比如可以实现动画的切换等
这个功能是PlayableDirector做不到的 但是用PlayableDirector和TimeLine来结合使用之后
我们可以控制动画播放的时间(比如开场动画播放十秒 UI界面出现等)

接下来我就给大家分享一下很简单的运镜的效果

首先打开TimelIne的面板(上边链接写的很详细 如果不知道可以去查看)
在这里插入图片描述

然后我们把我们的摄像机设置上帧动画
在这里插入图片描述
强烈大家使用红点进行录制 这样真的很方便 而且效果也贼棒(录制过程我就不细说了)

现在已经完成了一半了
我们就开始使用代码来控制我们的PlayableDirector组件来实现到达某个时间出现UI

  public PlayableDirector playabledirector;//需要在unity赋值
    public GameObject UIs;
    private void Start()
    {
        UIs.SetActive(false);
    }
    private void Update()
    {
        if (playabledirector.time > 10f)//如果动画播放超过10s 
        {
            UIs.SetActive(true);
        }
    }

在unity中吧camera赋值上去即可
因为动态图太大所以没法上传效果 这里就用几张图片代替吧
在这里插入图片描述

在这里插入图片描述

希望对大家的项目有帮助或者是启发

如果你也喜欢游戏开发 欢迎关注我 我会在这里持续更新我自己的学习过程
另外有关unity的问题或者是代做可以联系我qq:1149293885
我是一名爱健身的准程序员 最后祝大家头发浓密,睡眠良好,财富自由

好的,以下是Unity使用Timeline的详细脚本示例: ```c# using UnityEngine; using UnityEngine.Playables; using UnityEngine.Timeline; public class ExampleTimeline : MonoBehaviour { public TimelineAsset timelineAsset; private PlayableDirector playableDirector; private void Start() { playableDirector = GetComponent<PlayableDirector>(); playableDirector.playableAsset = timelineAsset; } public void PlayTimeline() { playableDirector.Play(); } public void PauseTimeline() { playableDirector.Pause(); } public void StopTimeline() { playableDirector.Stop(); } public void SetTime(float time) { playableDirector.time = time; } public void SetSpeed(float speed) { playableDirector.playbackSpeed = speed; } } ``` 在这个例子,我们创建了一个名为 ExampleTimeline 的脚本。它包含一个 timelineAsset 变量,这是一个存储着时间轴数据的资产。我们还定义了一个 playableDirector 变量,这是一个可以播放时间轴的组件。 在 Start 方法,我们获取组件,并将 timelineAsset 赋值给 playableAsset 变量。这是指定时间轴资产的方式。 我们还定义了一些方法,这些方法将在游戏由其他组件调用: - PlayTimeline:播放时间轴。 - PauseTimeline:暂停时间轴。 - StopTimeline:停止时间轴。 - SetTime:设置时间轴的当前时间(以秒为单位)。 - SetSpeed:设置时间轴的播放速度。 我们可以将 ExampleTimeline 脚本附加到一个 GameObject 上,并将 timelineAsset 变量设置为我们想要播放的时间轴。我们可以在其他脚本调用 PlayTimeline、PauseTimeline、StopTimeline、SetTime 和 SetSpeed 方法,以控制时间轴的播放和停止,并设置播放时间和速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值