如何正确地调用GenerateImpulse()来通过ImpulseSource实现Cinemachine的相机ImpulseListener (相机抖动)?我可以让它工作,如果我把一个CollisionImpuleSource的球员,但我不想那样。我想用脉冲源,然后用代码,确定什么时候摇。
我正在查看https://docs.unity3d.com/Packages/com.unity.cinemachine@2.3/manual/CinemachineImpulseSource.html文档,但没有看到如何正确地启动ImpulseSource。
我设了个私人..。
public CinemachineVirtualCamera vCamera;
private CinemachineImpulseSource _impulseSource;我可以叫generateImpulse..。
_impulseSource.GenerateImpulse();但我不知道如何获得组件
private void Start(){
_impulseSource = vCamera.GetCinemachineComponent<CinemachineImpulseSource>();
}我有个错误..。
必须将类型‘Cinemachine.CinemachineVirtualCamera.GetCinemachineComponent()’‘转换为'Cinemachine.CinemachineComponentBase’,以便将其用作泛型方法'T‘中的参数'T’。
但如果我也换了私人..。
private CinemachineComponentBase _impulseSource;这没什么用。需要一些关于如何引用这方面的指导。
发布于 2020-07-31 06:48:04
将CinemachineImpulseSource视为自定义GameObject上的组件。
将CinemachineImpulseSource脚本组件附加到新的游戏对象。您可能可以将它添加到附加问题的脚本所在的相同位置,但是没有测试这个。根据您的需要配置脉冲源组件并参考它。如果它位于同一个GameObject上,创建一个公共字段,就像使用相机引用一样,并在检查器或中分配它,使用GetComponent<CinemachineImpulseSource>()获取它。然后你可以在上面打电话给GenerateImpulse()。
public CinemachineVirtualCamera vCamera;
public CinemachineImpulseSource ImpulseSource; // Assign in inspector
...
ImpulseSource.GenerateImpulse();https://stackoverflow.com/questions/63184457
复制相似问题