当子弹击中某物时,如何在Unity中摇动相机?

时间:2015-01-19 23:30:34

标签: android unity3d shake

在这里,我找到了一个震动相机的代码:https://gist.github.com/ftvs/5822103

但如果我只想在子弹击中某物时摇动相机,该如何使用它呢?

1 个答案:

答案 0 :(得分:2)

在您发布的链接中有:

    // How long the object should shake for.
    public float shake = 0f;

如果将shake变量设置为例如1,则只要相机大于1,相机就会抖动。代码正在减小该值,以便您设置的数字等于您希望摇动持续的秒数。

然后当子弹击中某物时如何摇动?您可以将代码添加到开始摇动的项目符号中。这可以在子弹的碰撞中完成。使用这样的东西:

public class BulletScript : MonoBehaviour {
    void OnCollisionEnter2D(Collision2D coll) {
       GameObject.Find("Main Camera").GetComponent<CameraShake>().shake = 0.25f;
    }
}

为此,您需要子弹和计数器部件才能拥有2D对撞机。

PS。 Find操作非常慢,因此您可能希望通过在场景中将指向CameraShake的指针设置为静态变量来优化代码。