public class CamShake : MonoBehaviour {
private float shake_Decay;
private Quaternion originRotation;
void Update()
{
if (shake_Intensity > 0)
{
transform.position = originPosition + Random.insideUnitSphere * shake_Intensity;
transform.rotation = new Quaternion(
originRotation.x + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.y + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.z + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.w + Random.Range(-shake_Intensity, shake_Intensity) * .1f);
shake_Intensity -= shake_Decay;
}
}
void Shake()
{
originPosition = transform.position;
shake_Decay = shake_Cut;
}
/// <summary>
/// 开始震动;
/// </summary>
public void SetCameraShaking()
{
Shake();
}
}
private float shake_Decay;
private float shake_Intensity;
private Quaternion originRotation;
public float shake_Cut;
[Range(0.1f, 0.5f)]
void Update()
{
if (shake_Intensity > 0)
{
transform.position = originPosition + Random.insideUnitSphere * shake_Intensity;
transform.rotation = new Quaternion(
originRotation.x + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.y + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.z + Random.Range(-shake_Intensity, shake_Intensity) * .1f,
originRotation.w + Random.Range(-shake_Intensity, shake_Intensity) * .1f);
shake_Intensity -= shake_Decay;
}
}
void Shake()
{
originPosition = transform.position;
originRotation = transform.rotation;
shake_Decay = shake_Cut;
}
/// <summary>
/// 开始震动;
/// </summary>
public void SetCameraShaking()
{
Shake();
}
}