物体の速度がなくなった時のみ力を加える方法

今日は物体が停止した時のみ力を加える方法を書き記す。

基本はif文で条件に速度が0を付け加えればいい。

 

// Rigidbodyコンポーネントを入れる変数"rb"を宣言する。
    public Rigidbody rb;

    void Start()
    {
      // Rigidbodyコンポーネントを取得する
        rb = GetComponent<Rigidbody>();
    }

    void Update()
    {
 
  if (Input.GetMouseButtonUp(0) && this.rb.velocity.y == 0)
        {
            ・・・
        }

  Rigidbodyコンポーネントを入れる変数"rb"を宣言して、

今回はマウスクリックを離した時とアタッチした物体の速度が0の時に

if文の中身を実行する。

 

今回は確実に速度を0にするストッパーを用意した。

下のスクリプトでストッパーに接触した時速度が0になる。

ストッパーにはstopperとタグ付けしている

    private void OnCollisionEnter(Collision other)
    {
        if (other.gameObject.tag == "stopper")
        {
            rb.velocity = Vector3.zero;
        }
    } 


 

f:id:sashimimayonezu:20200903200859p:plain

球が落ちると黒いストッパーで速度0になる

 ただ今回の方法だとストッパーに接触した時のみ

力を加える条件にすればよさそう。

 

 
https://help.hatenablog.com/entry/developer-option?_gl=1*ojnx55*_gcl_au*NzA5NzY1Mzc3LjE3MTA2NTgyODA.