【Unity|Cinemachine】代码修改Cinemachine的属性

文章介绍了如何在Unity中使用Cinemachine插件来实现虚拟摄像机的属性设置,特别是通过GetCinemachineComponent<T>()和AddCinemachineComponent<T>()方法来修改和添加组件,如实现屏幕抖动效果。作者还推荐了Cinemachine的ExampleScenes作为学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        今天无意中接触到了Cinemachine,因为想实现多人联网角色生成,又使用了Cinemachine插件来实现跟随,又不想改用代码控制camera(简言之就是懒)。

        所以想要代码设置Cinemachine的属性,但是搜了很多关于Cinemachine的用法教程都没搜到,最后在google上搜到一篇很有用的博客,故分享一下。

原文链接:Cinemachine代码修改属性 - 李大柱 - 博客园 (cnblogs.com)

————————————以下是原文内容————————————————————————

我在使用Cinemachine时,有时候想要修改它的属性(以CinemachineVirtualCamera的Body中的Transposer为例)

 发现CinemachineVirtualCamera类没有直接提供接口供人使用,它是通过方法

1

GetCinemachineComponent<T>()

来间接提供的。

 这样的话就可以获取CinemachineTransposer 对象了(这里截一点给大伙看看里面的属性),从而达到修改Body中的Transposer属性:

聪明的小伙伴看到这里就已经活学活用了,我既然能获取那也就能添加,利用

1

AddCinemachineComponent<T>()

没错,比如,我们可以通过这个方法添加动态添加噪点(可以实现屏幕抖动)

如:

public CinemachineVirtualCamera cv;
public NoiseSettings noiseSettings;

void TestNoise()
{
     //屏幕抖动
     CinemachineBasicMultiChannelPerlin noise = cv.AddCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
     noise.m_NoiseProfile = noiseSettings;
    //1s后销毁
     new Task(Utils.Delay(1f)).Finished += (bool b) =>
     {
            cv.DestroyCinemachineComponent<CinemachineBasicMultiChannelPerlin>();
      };
}

Unity工程:

这个NoiseSettings可以早Packages里面找到,里面的噪点类型电影机已经给了很多个了,基本能满足日常开发使用

有用的话麻烦给个赞再走吧!

好了,小伙伴们快去试一试吧!

对了,安利一波,Cinemachine插件里的Example Scenes(在Package  Manager里下载)可以查看官方人员怎么使用的。其中有个场景(Free Look character)写了个人物移动的功能,使用起来那是十分舒服,脚本也是十分简短,有兴趣的小伙伴去看看吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值