もくじ
https://tera1707.com/entry/2022/02/06/144447
やりたいこと
あるオブジェクトから、別のオブジェクトに向けて、力を加えたい。 (あるオブジェクトから、別のオブジェクトに向かうベクトルを取得したい。それをAddForceに与えてやったら、その方向に力を加える、ってことにできそう)
やりかた
下記のようにすると、あるゲームオブジェクトから、別のゲームオブジェクトに向かうベクトルを取れる。
※playerとthisがゲームオブジェクト。
player.transform.position - this.transform.position
これだと、this
から、player
に向かうベクトルになる。
これを、AddForceに与えると、その向きに力を加えられる。
GetComponent<Rigidbody>().AddForce((player.transform.position - this.transform.position).normalized);
ただし、player.transform.position - this.transform.position
は大きさも持っているので、オブジェクトどうしが離れれば離れるほど、大きな力になってしまう。
その場合は、(player.transform.position - this.transform.position).normalized
とすると、大きさが最大1.0のベクトルを取れる。
GetComponent<Rigidbody>().AddForce((player.transform.position - this.transform.position).normalized);