質問するログイン新規登録

Q&A

2回答

1517閲覧

[Unity]マップチップの境目に着地した時の誤動作

Inkman

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2018/01/12 12:40

編集2018/01/13 08:33

0

1

Unityで2D横スクロールアクションの作り方を勉強中のプログラミング初心者です。

マップチップを並べて横スクアクションを作ってみたいのですが、
並べられたマップチップ(ブロック)の境目にジャンプをして着地をすると
自機がスライドしてしまう誤動作が起きました。
左右のキー入力などは行っていません。

イメージ説明

自機にはRigidBodypolygonコライダ(左右下の角を削った形)を、
マップチップ(ブロック)にはBoxコライダを使用しています。

イメージ説明

色々調べて自機にBoxコライダCircleコライダを組み合わせて
試してみましたが同じ誤動作が起きます。

自機にBoxコライダを使用した場合上手く着地してくれるのですが
左右に歩くときにマップチップの境目の
コライダに引っかかって移動できない症状が出たので
Polygonコライダで足元の角を削って使用しています。

おそらく自機の足元の削られたコライダ部分が
マップチップのコライダの角に反応して誤動作が起きていると
思うのですが対処方法が思い浮かびません。

追記
ジャンプ力を低く調節してみると、スライドは起きませんでした。
おそらく自機に重力がかかって加速している状態だと
一時的に自機コライダがマップチップのコライダを貫通して
それの位置補正時に左右にスライドするのだと思います。
追記2
コマ送り?機能でゲーム画面を動かしてみたところやはりプレイヤーのコライダが
着地時に貫通してブロックにめり込んでいました。
何か対処法はないでしょうか?よろしくお願いします。

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

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

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

guest

回答2

0

Fixed Timestepで検索して調べていたところ
キャラのRigidBodyにあるCollision DetectionをContinuousに設定すると
キャラのコライダがブロックのコライダを貫通することなく着地できるとの情報があり
設定してみたところうまく動作し問題が解消しました。

Bongo様、回答本当にありがとうございます。解決いたしました。

投稿2018/01/13 09:19

編集2018/01/13 09:25
Inkman

総合スコア8

Bongo

2018/01/13 09:28

おお、うまくいきましたか!この手の微妙な挙動の原因追及はなかなか面倒ですよね...ともかく解決されましたようで安心しました。
guest

0

シミュレーション精度をもっと上げてみると改善するでしょうか?
「Edit」→「Project Settings」→「Physics 2D」の「Velocity Iterations」を大きくしてみるとか、「Edit」→「Project Settings」→「Time」の「Fixed Timestep」を小さくしてみるとか...

投稿2018/01/12 21:39

Bongo

総合スコア10818

Inkman

2018/01/13 04:53

回答ありがとうございます。 両方試して見ましたが症状は改善していないです。
Bongo

2018/01/13 06:54 編集

ダメでしたか...追記いただきました様子を見るに、ユニティちゃんとブロックのぶつかる速度も影響していそうですね(でもそうだとすると、シミュレーション精度の上げ下げで変化が生じそうな気もするのですが...なぜでしょう...?)。 一つお伺いしますが、スクロール関連のコードを無効化してもズレ現象は発生するでしょうか? と言いますのは、ご提示の画像をよく見てみると、着地時には画面上のユニティちゃんの位置自体は左右にズレておらず、背景・地形全体が右にズレているように見えます。 スクロール関連のコードを無効化しても、ユニティちゃんが左へズレるようでしたらスクロールは関係ないかと思いますが、もしズレ現象が発生しなくなったとしたら、スクロール周りの処理が関係しているかもしれません。 それとも、スクロールは単純にカメラをユニティちゃんに合わせて動かしているだけで、その他のオブジェクトは操作していないという設計でしょうか?その場合ですとスクロールは関係なさそうですね...
Inkman

2018/01/13 08:32

回答ありがとうございます! スクロールはユニティちゃんが中心に来るように設定されているので スクロール処理を消しても同じ状態になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問