前提・実現したいこと
タイトル通り、物を持たせたいです
Unityの2Dです
イメージとしてはマリオが甲羅を持っている感じです
発生している問題・エラーメッセージ
発生している問題は
物をキャラクタの手(腕)辺りの上に移動させようとすると、なぜか足部分に移動しくっついてしまうことがあります。うまくいくときもありますが、3割くらいの確率で足に移動してしまいます。
該当のソースコード
C#
1if (collision.gameObject.tag == "Mario") { 2//rb2d.isKinematic = true; 3if (Input.GetKey (KeyCode.RightArrow)) { 4if (facingRight == true) { 5w = Mario.transform.position; 6w.x += 1.3f; 7w.y += 0.15f; 8transform.position = w; 9Debug.Log (w); 10} 11} else if (Input.GetKey (KeyCode.LeftArrow)) { 12if (facingRight == false) { 13w = Mario.transform.position; 14w.x -= 1.3f; 15w.y += 0.15f; 16transform.position = w; 17} 18} 19transform.parent = GameObject.Find ("マリオ").transform;
試したこと
キャラの腕の位置のほんの少し上に物を移動させ、とても短い距離を落下させてキャラと物を接触させています
物を移動させる位置を修正したりしましたが解決できません
補足情報(FW/ツールのバージョンなど)
キャラと物のリジッドボディはオンのままです
物のリジッドボディをオフにすると移動してくっつきはしますが、何も操作していないと、キャラが物に押されているような現象が起き、その場にとどまることができません
他にしていることは、キャラと物に摩擦を加えています。これはキャラが止まったとき、物が腕からストーーーんと飛んで行ってしまうからです。接触時は親子関係にもしていますが、それでもうまく行かなかったので摩擦を加え、飛んでいくことを減らしました
ソースコードのfacingRightは、キャラの向きによって腕の位置も変わるので、向きを判定してそれにあわせた位置に物を移動させています
些細なことでもコメントよろしくお願いします
回答1件
あなたの回答
tips
プレビュー