脚本具体代码如下:
using UnityEngine;
public class CameraShakeTest : MonoBehaviour {
float shake = 5;
float setShake;
bool shakeSwitch = false;
Vector3 originalPos;
void Start()
{
setShake = shake;
originalPos = gameObject.transform.position;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.S)) {
shake = setShake;
shakeSwitch = true;
}
if (shakeSwitch == true)
{
CameraShake();
}
}
void CameraShake() {
gameObject.transform.position = new Vector3(
Random.Range(0f, shake * 2f) - shake + originalPos.x,
Random.Range(0f, shake * 1f) - shake + originalPos.y,
Random.Range(0f, shake * 2f) - shake + originalPos.z);
shake = shake / 1.05f;
if (shake < 0.05)
{
shake = 0;
shakeSwitch = false;
gameObject.transform.position = originalPos;
}
}
}