前提・実現したいこと
現在、unity2Dでrpgを作成しているプログラミング初心者です。
操作キャラとモブの会話をさせたいのですが、接触判定で行き詰っています。
下記のc#のコードでプレイアブルキャラクターをキー入力で操作できるようにしたのですが、colliderでの衝突判定では衝突したオブジェクトに向かって無理やり移動を続けると少しだけめり込んでしまいます。(キーを離すと元に戻ります。)
イメージとしては昔のドラクエやffのようにモブに当たるとその方向にはピクリとも動かないというようにしたいのですが、、、
アセットストアも探しましたが見つかりませんでした。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
void FixedUpdate() //f_posには操作キャラの座標が入ります。 //前方向への移動用スクリプト if (Input.GetKey(KeyCode.DownArrow)) { //移動処理 f_pos.y = f_pos.y - 0.075f } //上方向への移動用スクリプト if (Input.GetKey(KeyCode(UpArrow)) { //移動処理 f_pos.y = f_pos.y + 0.075f; } //右方向への移動スクリプト if (Input.GetKey(KeyCode.RightArrow)) { //移動処理 f_pos.x = f_pos.x + 0.075f; } //左方向への移動スクリプト if (Input.GetKey(KeyCode.LeftArrow)) { //移動処理 f_pos.x = f_pos.x - 0.075f; }
試したこと
反発係数をいじったりはしてみましたが、うまくいきませんでした、、、
colliderとrigidbodyはあくまで物理的な演算を行うもののようで、ある意味非現実的な衝突処理はやりづらいようです。
ほかには、スクリプトで座標を上書きしたりもしてみましたが、やはりめり込みます。
1から自分で実装すると、他のアニメーションやスプライトの管理もあってややこしくなりそうで、、、
collider側で対処できたら楽なのですが。
補足情報(FW/ツールのバージョンなど)
unityのバージョンは5.6.f03?です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/13 10:17
2018/02/13 10:47