Cinemachine使用

Cinemachine使用根据BeaverJoe教程总结笔记,素材来源:https://www.bilibili.com/video/BV1oa4y1s7gg创建相机后主相机会自动添加Brain组件,主相机决定使用哪个虚拟相机,虚拟相机的数值会同步调整到主相机上,主相机无法手动控制:此时相机已经会自动跟随物体;选择相机跟随哪个物体,一般2Dfollow,3Dlookat:Body部分saveduringplay:退出运行后会保存运行时的数值;x、y、zDamping控制缓慢移动的速度,值越大越慢;决定相机

大家好,又见面了,我是你们的朋友全栈君。

根据BeaverJoe教程总结笔记,素材来源:https://www.bilibili.com/video/BV1oa4y1s7gg
在这里插入图片描述
创建相机后主相机会自动添加Brain组件,主相机决定使用哪个虚拟相机,虚拟相机的数值会同步调整到主相机上,主相机无法手动控制:
此时相机已经会自动跟随物体;
在这里插入图片描述
选择相机跟随哪个物体,一般2Dfollow,3Dlookat:
在这里插入图片描述

Body部分

save during play:退出运行后会保存运行时的数值;
x、y、z Damping控制缓慢移动的速度,值越大越慢;

在这里插入图片描述
决定相机聚焦的中心位置,效果相当于控制人物显示在哪里
在这里插入图片描述
死区——人物在这个范围内移动时,相机不会移动,出了这个区域就会移动,即无色区域和蓝色区域;到达红色区域时相机会瞬间跟随;

在这里插入图片描述
蓝色区域调整
在这里插入图片描述

在这里插入图片描述

Lookahead Time数值调大时,相机中心点(黄色点)会向移动方向移动一段距离,可以看到更多的视野,如果跳跃时画面抖动太厉害可以勾选IgnoreY;
在这里插入图片描述
添加边界,保证摄像机不会拍摄到不想要的地方,步骤1:点击add extension
在这里插入图片描述
步骤二:创建空物体,添加box collider组件,勾选use by composite,再添加composite collider(因为这里类型要求需要composite collider),勾选istrigger,在Geometry type上勾选polygons,在自动添加的刚体上勾选static,防止空物体掉下来,最后拖进去;
在这里插入图片描述
更简单的方法:
直接给空物体添加polygon collider,勾选is trgger;

两个相机平滑过渡

首先两个相机没有相交;
方法一:将一个相机disable掉,就能直接实现;代码中设置进入(激活)和退出(失活)的触发事件;
方法二:调整虚拟相机的优先度,值越大越先使用;
在这里插入图片描述
相机过渡时间和速度曲线在主相机这里设置:
在这里插入图片描述

3D场景

1.创建virtual camera:此时调整视野需要选虚拟相机,不是主相机;
在这里插入图片描述
2.赋值look at:

在这里插入图片描述
3.噪声(可选):第一行为振动模式,第三、四行为振幅和频率
在这里插入图片描述
4.创建其他相机:每一个都先点solo再调整视角,不然可能会把之前的相机一起调整到当前视角;
**加粗样式
**
在这里插入图片描述
5.创建好后创建一个空物体,命名为TimeLine,点击timeline窗口create;
这里不需要动画轨道,删掉该轨道和空物体里的animator组件;
在这里插入图片描述
在这里插入图片描述
activation track是在某个时间段激活某个东西,其他也是相应功能;
在这里插入图片描述
方法一:使用Activation Track(通过激活和失活实现):右上角可以设置显示为时间
在这里插入图片描述
在这里插入图片描述
创建group方便管理:相当于空物体的作用
在这里插入图片描述
director组件中可以勾选循环:
在这里插入图片描述
方法二:
cinemachine track:
在这里插入图片描述
将主相机拖入:再分别把虚拟相机拖入,也可以右键add shot,组件赋值,一个效果;
在这里插入图片描述
此时是瞬间切换,把前面相机拖到后面的相机可以实现blend效果;

在这里插入图片描述
同时可以设置manual手动调整blend的曲线;
在这里插入图片描述

如何自定义Track

timeine需要三个脚本:track(轨道)、clip(片段资源)、behavior(执行逻辑)
以创建text为例:
track:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;
using UnityEngine.UI;

[TrackBindingType(typeof(Text))] //绑定组件类型,可以添加text的track
[TrackClipType(typeof(SubClip))]//实现添加clip
public class SubTrack : TrackAsset
{ 
   

}

clip:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class SubClip : PlayableAsset
{ 
   
    public string originText;
    //实现抽象类
    //创建资源文件,就是graph,是playable类型,将它反馈出来才能在behavior中使用
    public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
    { 
   
        var playable = ScriptPlayable<Subbehavior>.Create(graph);
        Subbehavior sb=playable.GetBehaviour();
        sb.subtitleText = originText;
        return playable;


    }
}

behavior:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.UI;

public class Subbehavior : PlayableBehaviour
{ 
   
    //之后的clip片段资源将会赋值到这个变量中并且在这个behavior脚本中按照逻辑执行
    public string subtitleText;

    //相当于update方法
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    { 
   
        //info:当前帧传入的数据信息
        //playerData是最后要输出的数据
        Text _text = playerData as Text;
        _text.text = subtitleText;
        _text.color = new Color(0, 0, 0, info.weight);

    }
}

设置淡入淡出:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140173.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 密码暴力激活成功教程与防御

    密码暴力激活成功教程与防御密码暴力激活成功教程与防御密码安全概述漏洞利用权限管理不安全的密码默认密码弱口令裤子密码猜解思路字典专门字典python暴力激活成功教程BurpSuite暴力激活成功教程LowMediumHighBp其他攻击模式Impossible如何防御暴力激活成功教程其他暴力激活成功教程工具wfuzzpiachuHydraMudusaMSF密码安全概述加密、完整性、身份认证存储安全、传输安全、输入安全漏洞利用从数据库获取密码窃听通信数据直接从登录框猜测数据权限管理认证:你是谁?授权:你能做什么?不安全的密码默认密码0000001

    2022年8月22日
    7
  • 基于CBC模式和PKCS5padding的DES加解密模块

    基于CBC模式和PKCS5padding的DES加解密模块

    2021年8月26日
    90
  • 41. Vue组件传值-父组件向子组件传值

    41. Vue组件传值-父组件向子组件传值前言前面写了组件的创建、切换等等篇章,主要讲述了组件自身如何在父组件app中如何渲染使用。这里存在一个问题,就是父组件的数据如何传递到子组件中。这是一个很常见的情况,如果是jQuery那么都是直接传参数就是了,而在Vue框架中,这里就要使用子组件中props属性来处理了。官网介绍props地址:https://cn.vuejs.org/v2/guide/components-props.ht…

    2022年5月31日
    37
  • 《Android应用开发揭秘》连载3

    《Android应用开发揭秘》连载3《Android应用开发揭秘》  书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010年3月(1版2次)开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China-pub预订地址:http://www.china-pub.

    2022年6月10日
    40
  • PS2手柄移植到STM32上面的小笔记[通俗易懂]

    PS2手柄移植到STM32上面的小笔记[通俗易懂]一、硬件准备:战舰开发板、PS2手柄接收器、PS2手柄、连接线二、硬件连接:PS2手柄接收器有六个引脚,和单片机连接IO口连接,如下图:接收器信号单片机IOGNDGNDVCC3.3VDI/DATPB12DO/CMDPB13CSPB14CLKPB15三、PS2通信简介通讯时序如下,感觉和SPI很像,也是四线DI与DO是一对同时传输的8bit串行数据,传输的时候需要CS为低电平,CLK由高变低。DO是单片机发送给接收器的信号。

    2022年6月11日
    56
  • Python(含PyCharm及配置)下载安装以及简单使用(Idea)「建议收藏」

    Python(含PyCharm及配置)下载安装以及简单使用(Idea)「建议收藏」下载Python官网下载地址:Python下载不同参数解释,小伙伴们根据自己情况进行下载即可(此处博主用的是3.7.3版本):–web-basedinstaller:在线安装。下载的是一个exe可执行程序,双击后,该程序自动下载安装文件进行安装。网络安装版,需联网–executableinstaller:程序安装。下载的是一个exe可执行程序,双击进行安装。本地安装,可执行程序(***)–embeddablezipfile:解压安装。下载的是一个压缩文件,解压后即表示安装完成。嵌入式版

    2022年5月31日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号