Вы захотите сделать это при нескольких обновлениях, чтобы каждое различие можно было отобразить на экране, что-то вроде этого, я бы рекомендовал
private Vector3 initialPosition;
Vector3 directionOfShake = transform.forward;
public float amplitude; // the amount it moves
public float frequency; // the period of the earthquake
void Start(){
initialPosition; = transform.position // store this to avoid floating point error drift
}
void FixedUpdate(){
transform.position = initialPosition + directionOfShake*Mathf.Sin(frequency * Time.FixedDeltaTime)*amplitude;
}
Это позволяет вам изменять землетрясение из редактора .
Или, если хотите чего-то резче
void FixedUpdate(){
transform.position = initialPosition + directionOfShake*(-amplitude + Mathf.PingPong(frequency * Time.FixedDeltaTime, 2.f*amplitude);
}