LoginSignup
0
0

More than 3 years have passed since last update.

constant force 2Dの解説

Last updated at Posted at 2020-08-04

今回はPhysics2Dの中にある機能の一つである
「Constant Force2D」について説明しようと思います。

Constant Force2Dとは?

Constant Force2Dとは、「一定の力を与え続ける機能」です。
簡単に言えば徐々に加速し続けるような感じです。
ちなみに、constant forceを和訳すると「一定の力」となります。

Constant Force2Dのそれぞれのパラメータ

constantForce2d_param.png
Constant Force2Dには「Force」、「Relative Force」、「Torque」という3つのパラメータ、更にforceとrelative forceには「X」と「Y」というパラメータがあります。
それを1つずつ解説していきます。

・Force

forceは、ワールド座標を基準にしています。
なので、物体が回ったとしても力が加わる方向は変わったりはしません
イメージとしては外部から一方向に押されている感じです。

X は右に押す力、Y は上に押す力です。
それぞれの力をマイナスの値にすると逆方向に力が加わります。
torokko_push_pig.pngForceのイメージ図

・Relative Force

forceとの違いはローカル座標を基準にしていることです。
なので、物体が回ると力が加わる方向が変わります
イメージとしてはロケットのエンジンのように物体からエネルギーが放たれて、その反作用で動いている感じです。
rocket_different_direction.pngRelative Forceのイメージ図

・Torque(トルク)

物体に回転力を加えます。
自転車を想像してください。自転車はペダルをこぐことによってタイヤに回転力が与えられ、前に進むという仕組みになっています。
1つ注意をしておくと、Torqueは反時計回りの方向が正の方向なので、そのまま「100」などの正の値を入れると左に転がって行ってしまいます。なので、右に行かせたい場合はTorqueに「-100」などの負の値を入れてください。

Torqueのイメージ図
pyoko05_fast.png

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の各機能について書いてくつもりなのでよろしくお願いします。

画像:いらすとや

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0