using UnityEngine;
using System.Collections;
public class ShakeCamera : MonoBehaviour {
public float shakeTime = 1f;
public float shakeStrength = 0.2f;
private Vector3 shakeOffset = Vector3.zero;
private Vector3 preShakeOffset = Vector3.zero;
void Start()
{
Shake(1.0f);
}
void LateUpdate()
{
transform.position = transform.position - preShakeOffset + shakeOffset;
}
public void Shake()
{
StopCoroutine("ShakeCoroutine");
StartCoroutine("ShakeCoroutine");
}
public void Shake(float time)
{
shakeTime = time;
Shake();
}
IEnumerator ShakeCoroutine()
{
float endTime = Time.time + shakeTime;
while (Time .time < endTime)
{
shakeOffset = Random.insideUnitSphere * shakeStrength;
yield return null;
}
shakeOffset = Vector3.zero;
}
}
using UnityEngine;
using System.Collections;
public class ShakeCamera : MonoBehaviour {
public float shakeTime = 1f;
public float shakeStrength = 0.2f;
private Vector3 shakeOffset = Vector3.zero;
private Vector3 preShakeOffset = Vector3.zero;
void Start()
{
Shake(1.0f);
}
void LateUpdate()
{
transform.position = transform.position - preShakeOffset + shakeOffset;
}
public void Shake()
{
StopCoroutine("ShakeCoroutine");
StartCoroutine("ShakeCoroutine");
}
public void Shake(float time)
{
shakeTime = time;
Shake();
}
IEnumerator ShakeCoroutine()
{
float endTime = Time.time + shakeTime;
while (Time .time < endTime)
{
shakeOffset = Random.insideUnitSphere * shakeStrength;
yield return null;
}
shakeOffset = Vector3.zero;
}
}