発生している問題
放物線上に物を投げるアクションゲームを作っていますが(横スクロール型)、
キャラクターが速く走るほど、飛距離が相対的に縮む格好になり、
最終的には背後に落ちるようになってしまいます。
マリオのファイアボールのように、ダッシュしてもキャラと一定間隔を保って飛ぶ、ということを実現したいと思っています。
単純に歩行速度を落としたり投げるスピードを上げれば、違和感はある程度なくなるかも知れませんが、
たとえばマリオ3でハンマーを投げるときのように、ゆっくりとした放物線を描く場合はどうしても違和感が残ってしまいます(マリオの場合、早く走ってもマリオとハンマーの着地点が縮まらない)。
根本的に、キャラとの相対距離を保つ方法はありますでしょうか?
該当のソースコード
//石(rock)を複製
GameObject rocks = Instantiate(rock) as GameObject;
//力(handforce)を加える
rocks.GetComponent<Rigidbody>().AddForce(handforce);
//位置をhandに調整
rocks.transform.position = hand.position;
試したこと
①投げた物をキャラにペアレント化(transform.SetParent)
⇒投げた物がずっとキャラに追従してしまい、不自然になってしまいました
②キャラのvelocityを、投げる物に加える(Vector3)
⇒キャラのvelocity(Rigidbody内)が0のままのせいか、上手くいかず
回答1件
あなたの回答
tips
プレビュー