首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用碰撞源的情况下发射出Cinemachine脉冲源?

如何在不使用碰撞源的情况下发射出Cinemachine脉冲源?
EN

Stack Overflow用户
提问于 2020-07-31 01:20:45
回答 1查看 1.8K关注 0票数 1

如何正确地调用GenerateImpulse()来通过ImpulseSource实现Cinemachine的相机ImpulseListener (相机抖动)?我可以让它工作,如果我把一个CollisionImpuleSource的球员,但我不想那样。我想用脉冲源,然后用代码,确定什么时候摇。

我正在查看https://docs.unity3d.com/Packages/com.unity.cinemachine@2.3/manual/CinemachineImpulseSource.html文档,但没有看到如何正确地启动ImpulseSource。

我设了个私人..。

代码语言:javascript
复制
public CinemachineVirtualCamera vCamera;
private CinemachineImpulseSource  _impulseSource;

我可以叫generateImpulse..。

代码语言:javascript
复制
_impulseSource.GenerateImpulse();

但我不知道如何获得组件

代码语言:javascript
复制
private void Start(){

_impulseSource = vCamera.GetCinemachineComponent<CinemachineImpulseSource>();

}

我有个错误..。

必须将类型‘Cinemachine.CinemachineVirtualCamera.GetCinemachineComponent()’‘转换为'Cinemachine.CinemachineComponentBase’,以便将其用作泛型方法'T‘中的参数'T’。

但如果我也换了私人..。

代码语言:javascript
复制
private CinemachineComponentBase  _impulseSource;

这没什么用。需要一些关于如何引用这方面的指导。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-31 06:48:04

CinemachineImpulseSource视为自定义GameObject上的组件。

CinemachineImpulseSource脚本组件附加到新的游戏对象。您可能可以将它添加到附加问题的脚本所在的相同位置,但是没有测试这个。根据您的需要配置脉冲源组件并参考它。如果它位于同一个GameObject上,创建一个公共字段,就像使用相机引用一样,并在检查器中分配它,使用GetComponent<CinemachineImpulseSource>()获取它。然后你可以在上面打电话给GenerateImpulse()

代码语言:javascript
复制
public CinemachineVirtualCamera vCamera;
public CinemachineImpulseSource  ImpulseSource; // Assign in inspector

...

ImpulseSource.GenerateImpulse();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63184457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档