質問: GetComponent(); } // Update is called once per frame void Update() { } void OnTriggerEnter2D(Collider2D col) { Rig.AddForce(new Vector2(-10.0f * 1, 2.0f), ForceMode2D.Impulse); } } ``` ### 試したこと 吹っ飛ぶ様なモーションはAddForceだと思うんですが、 このまま実行してしまうと、人が範囲内に入った際に 斜めではなく真上に吹っ飛んでしまいます。 ### 補足情報 * この"hito_hutto"は人となるオブジェクトに入っています。 * 人にRigidbody2DとFreeze RotationのZが有効になっています。
回答: 文章から察するに、パンチをした時に人が吹っ飛ぶのは、AddForceで間違っていません。 が、問題はその方向です。 モーション時に腕のボーンの1つ前のフレームのポイントと現在のポイントをマイナスすれば、方向が取れますよ。こんな感じかな? ``` Vector2 前フレームポイント void Update() { 前フレームポイント = 現在のフレームポイント } void OnTriggerEnter2D(Collider2D col) { Rig.AddForce(前フレームポイントと現在のフレームポイントの差分, ForceMode2D.Impulse); } ```