ネット等で調べましたが、実装の糸口が思いつかなかったため
皆様のお知恵を貸してください。
■状況
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}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 09:12