質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%

Q&A

1回答

2523閲覧

2Dゲームの曲線移動

hatena

総合スコア12

0グッド

0クリップ

投稿2017/08/05 04:12

ネット等で調べましたが、実装の糸口が思いつかなかったため
皆様のお知恵を貸してください。

■状況
Unity(C#)で2Dゲーム作成しております。
玉乗りゲームなのですが、
転がっていくと、地面から上側(Y座標)にAddForceをしていて
玉と乗っている人が離れる箇所があります。

■実現したいこと
玉と人が離れた後に、先に玉が地面につき、その後人が玉に着地して、
また玉乗りする時に、玉の上側に人が乗るように移動したいです。
(文字にすると伝わり辛いかもしれないのですが、現実と同じ玉乗りの感じで動かしたいです)

現在は、玉に着地後は着地した場所にくっ付いたままになっています。
(人と玉のオフセットを、OnCollisionEnter2Dの関数内で設定して、
玉のtransform.positionを決めているためです)

伝わり辛い部分もあると思いますが、皆様のお知恵を貸してください。

C#

1public class FollowPlayer : MonoBehaviour { 2 3 public Transform target; 4 private Vector3 offset; 5 public static bool groundFlg; 6 7 void Start () { 8 FollowPlayer.groundFlg = false; 9 } 10 11 void Update () { 12 13 } 14 void FixedUpdate(){ 15 if (groundFlg) { 16 transform.position = target.position + this.offset; 17 } 18 } 19 void OnCollisionEnter2D(Collision2D other) { 20 if (other.gameObject.name == "人") { 21 this.offset = transform.position - target.position; 22 FollowPlayer.groundFlg = true; 23 } 24 } 25 26 void OnCollisionExit2D(Collision2D other){ 27 if (other.gameObject.name == "人") { 28 FollowPlayer.groundFlg = false; 29 } 30 } 31}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

FollowPlayerは玉オブジェクトに付いているという認識でいいなら、
OnCollisionEnter2D内で
「"人"オブジェクトに触れたらFollowPlayer.groundFlgをtrue」
にしていますが、これは「地面オブジェクトに触れたら」ではないでしょうか?
(OnCollisionExit2Dも同様かと思います)

(ただ、玉乗りなら「玉に人が乗っている(=まず玉ありき)」となるので、
「プレイヤーの下に玉が追随している」というのは物理的に正しく動くのか若干疑問です。
物理演算無し、PSソフトのXI[sai]のようなプレイヤーの動作が主体なら問題無いとは思いますが……)

投稿2017/08/08 08:58

sakura_hana

総合スコア11425

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena

2017/08/09 09:12

回答ありがとうございます。 フラグの名前ががイケてないのですが、玉も人も跳ねた後、玉と人が接触した時のオフセットをフラグ管理させておりました。 追随させているように見せる為で、実際は人しか動かしていません。(跳ねている時だけフラグをfalseにしています) 妥協案にはなるのですが、オフセットのx座標が離れすぎると玉から落ちるようにして、なるべく玉に乗っているときには現実に即した動きにしようと思っています。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問