using UnityEngine; using System.Collections; public class ShakeCameraOnCollisionWithTags : MonoBehaviour { public float shakeMagnitude = 1.0f; public float shakeTime = 1.0f; public string[] collideWithTags; private float shakeTimer = 0; private Vector3 originalPosition; // Update is called once per frame void Update () { if(shakeTimer > 0) { Vector3 newPosition = originalPosition; newPosition += Random.insideUnitSphere*shakeMagnitude; Camera.main.transform.position = newPosition; shakeTimer-=Time.deltaTime; if(shakeTimer < 0) { Camera.main.transform.position = originalPosition; } } } void OnCollisionEnter( Collision collision ) { foreach(string tag in collideWithTags) { if(collision.collider.tag == tag) { shakeTimer = shakeTime; originalPosition = Camera.main.transform.position; } } } }