【发布时间】: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