【问题标题】:Camera Shake Effect When Camera Following Player相机跟随播放器时的相机抖动效果
【发布时间】:2019-11-23 00:56:45
【问题描述】:

我正在开发一个 3d 游戏,其中相机不断跟随玩家对象。 现在,当炸弹击中玩家对象时,我想播放带有爆炸粒子效果的相机抖动。

我已经为相机抖动编码了这个:

public IEnumerator PlayCameraShakeAnimation(float duration, float magnitude)
{
    Vector3 originalPosition = transform.localPosition;
    float elapsedTime = 0f;

    while(elapsedTime < duration)
    {
        float x = Random.Range(-1f, 1f) * magnitude;
        float y = Random.Range(-1f, 1f) * magnitude;

        transform.localPosition = new Vector3(x, y,originalPosition.z);
        elapsedTime += Time.deltaTime;

        yield return null;
    }

    transform.localPosition = originalPosition;
}

Camera Follow 是我为跟随玩家而编写的普通脚本。 由于 Camera Follow 脚本正在运行,我们无法在屏幕上显示相机抖动效果。

如果我关闭相机跟随脚本,那么我们可以清楚地看到相机抖动,否则就不会。

如果我关闭相机跟随脚本一小段时间,那么我在跟随玩家时会失去流畅性,因为玩家位置会在爆炸后更新。因此,当我重新开始跟随玩家时,它会在运动中猛烈地到达目标位置。

此外,相机在两个区域中都跟随玩家的位置和旋转。现在给我一些建议来实现跟随玩家时的相机抖动效果。

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    这其实很简单:

    把它分成两个GameObjects:

    parentObject
    |--Camera
    
    • parentObject 关注玩家。
    • CameralocalPosition 中摇晃 &rightarrow;相对于parentObject

    结果:当parentObject 跟随玩家时,Camera 会自动随之移动。无需打开任何东西;)

    【讨论】:

    • 好吧,让我试试 - 你说的 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    相关资源
    最近更新 更多