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

但是,如果我只想在子弹击中物体时才摇晃相机,该如何使用呢?

最佳答案

在您发布的链接中有:

    // 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的运行速度确实很慢,因此您可能希望通过在场景中将CameraCamke的指针设置为静态变量来优化代码。

关于android - 当子弹击中物体时,如何在Unity中摇晃相机?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28035330/

10-15 22:37