Ещё: чтобы каждый раз не доставать экземпляр скрипта через
CameraShake shaker = camera.GetComponent<CameraShake>();
можно сделать статическую переменную в классе CameraShake и статический метод тряски, и обращаться напрямую через имя класса:
private static CameraShake Instance;
void Awake() {
Instance = this;
}
private void ShakeStartLocal(float shakeOver) {
this.shakeOver = shakeOver;
shakeTime = 0f;
OriginalPos = CameraTransform.position;
isShake = true;
}
public static void ShakeStart(float shakeOver) {
Instance.ShakeStartLocal(shakeOver);
}
............
CameraShaker.ShakeStart(0.5f);