質問: Instantiate(Ballpb, transform.position, transform.rotation); Ball.GetComponent().AddForce(Vec); //投射成功 //Ball.GetComponent().AddForce(Vec, ForceMode2D.Force); //投射成功 //Ball.GetComponent().AddForce(Vec, mode: ForceMode2D.Impulse); //ベクトル方向の彼方へぶっ飛ぶ パワー倍率1倍のせい? } } ``` ### 疑問のまとめ直し 『TouchPhase.Endedとそれ以外ではAddForceの結果が異なること』の原因を学習したいです。 I:Ended内では“AddForce()”の働きがその他と異なる II:Ended内でも、“AddForce(Vec, mode: ForceMode2D.Impulse)”の際はボールがぶっ飛ぶ (III:本件とはズレるが、なぜ命令位置でAddForceの力の掛かり具合が変化するのだろう...?) 「バッカだなあ、それはかくかくしかじかだから」 「ここを読んで勉強しろや。 “https://~~”」 など、ご教授いただきたいです。
回答: トラブルの発生点が、自身で勝手に設定した「Ghostボールの投射パワー:power = 0.02f」にあるとわかりました。自己解決しました。 そもそもこの「0.02f」という数字はLineRendererでボール軌道予測線を描画させる際、実際のボールの軌道と描画ラインを一致させるために手作業で出した数字でした。 この、「LineRendererで使っていた数値をAddForceでも運用した」のが問題点でした。そこに「Impulseだと正しく動作している」ように見えたために誤解がかさなりました。