私はバウンスボールをプログラムしたいと思います。実際のバウンスは実際の物理法則に従うべきではなく、むしろ絶対サイン波を作り上げるべきです。同様に、これまで非常に簡単です。このイメージ正弦波を遅くするには?
インチ添付のコードを参照してください。
しかし、私はボタンを押すとすぐにボールの動きを遅くしたいと思います。
移動速度が遅くなり、x軸の変換が遅くなります。しかし、正弦波の周波数も振幅も変化していないので、ボールはかなり速く上下に跳ね返っています。しかし、一方または両方を変更すると、これは奇妙な動作で終了します。
ボールが上から下の距離の20%でダウンモーブにいるとします。正弦波のパラメータを変更すると、ボールは即座にy軸上を移動し、実際には奇妙で滑らかに見えません。
私の実際の質問はどのようにして不安定な動きがない絶対正弦波(x/y軸変換)を遅くすることができますか? ( - 、より青い下FREQ - もっと赤い高い)
float _movementSpeed = 10.0f;
float _sineFrequency = 5.0f;
float _sineMagnitude = 2.5f;
Vector3 _axis;
Vector3 _direction;
Vector3 _position;
void Awake()
{
_position = transform.position;
_axis = transform.up;
_direction = transform.right;
}
void Update()
{
_position += _direction * Time.deltaTime * _movementSpeed;
// Time.time is the time since the start of the game
transform.position = _position + _axis * Mathf.Abs(Mathf.Sin(Time.time * _sineFrequency)) * _sineMagnitude;
}
y方向の速度は、x方向の速度に完全に依存しませんか? – Dziugas