今回はPhysics2Dの中にある機能の一つである
「Constant Force2D」について説明しようと思います。
#Constant Force2Dとは?
Constant Force2Dとは、「一定の力を与え続ける機能
」です。
簡単に言えば徐々に加速し続けるような感じです。
ちなみに、constant forceを和訳すると「一定の力」となります。
#Constant Force2Dのそれぞれのパラメータ
Constant Force2Dには「Force
」、「Relative Force
」、「Torque
」という3つのパラメータ、更にforceとrelative forceには「X」と「Y」というパラメータがあります。
それを1つずつ解説していきます。
###・Force
forceは、ワールド座標を基準にしています。
なので、物体が回ったとしても力が加わる方向は変わったりはしません
。
イメージとしては外部から一方向に押されている感じです。
X は右に押す力、Y は上に押す力です。
それぞれの力をマイナスの値にすると逆方向に力が加わります。
Forceのイメージ図
###・Relative Force
forceとの違いはローカル座標を基準にしていることです。
なので、物体が回ると力が加わる方向が変わります
。
イメージとしてはロケットのエンジンのように物体からエネルギーが放たれて、その反作用で動いている感じです。
Relative Forceのイメージ図
###・Torque(トルク)
物体に回転力を加えます。
自転車を想像してください。自転車はペダルをこぐことによってタイヤに回転力が与えられ、前に進むという仕組みになっています。
1つ注意をしておくと、Torqueは反時計回りの方向が正の方向なので、そのまま「100」などの正の値を入れると左に転がって行ってしまいます。なので、右に行かせたい場合はTorqueに「-100」などの負の値を入れてください。
#Constan Force2Dをスクリプト上で変更する
Constan Force2Dのパラメータをスクリプト上で変更するときの書き方
this.GetComponent<ConstantForce2D>().force = new Vector2(10, 0);
this.GetComponent<ConstantForce2D>().relativeForce = new Vector2(10, 0);
this.GetComponent<ConstantForce2D>().torque = -300;
##終わりに
Constant Force2Dについて日本語でまとめられたものがUnityマニュアル以外見つからなかったのでこのブログを書いてみました。
これからいくつかPhisics2Dの各機能について書いてくつもりなのでよろしくお願いします。
画像:いらすとや