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

質問編集履歴

1

コードの説明の追加、検証の結果の追加

2021/07/18 13:51

投稿

Mr-WoodMan
Mr-WoodMan

スコア2

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,15 @@
1
+ #概要
1
2
  UnityでcharacterControllerを使ってFPSのコントローラーを今作っているのですが、ウォールラン中に壁がない方向に飛ぶウォールジャンプの機能がうまくできません。
3
+ #コードの説明
2
- コードの一番下書いてある部分がウォールランです。まくいてないのでAキー方向だけかいてます
4
+ Raycastで左か右かにウォールランできる壁があるかどかを検知、壁が右にある状態でDキー(右移キー)を押すまたは、壁が左にある状態でAキー(左移動キー)を押すウォールラン開始でウォールラン中は重力を与えなようにしおきます
3
- ifでスペースキーを認識して条件があったら加速度を入れるためのvector3のvelocityにXYに入して壁かジャンプる感じなのですがジャンプしてもX方向にしかきません。
5
+ その状態でスペースキーを押すと加速度のvector3のvelocityに値を壁のない方のX方向上のY方向に入れそしてvelocityはMove関数(コードの真ん中へん)でTime.deltatimeをかけてCharacterControlle.Moveで動かすのですが実際ジャンプしてもX方向にしかきません。
4
- 加速度を使うとうまくいかないのですか?
5
6
 
6
- ### 今のコード
7
7
 
8
+ #検証してことについて
9
+ 別のスクリプトでDキーを押したら横にCharacterControllerで動く、スペースキーをおしたら上に同じような方法でジャンプする、同じ方法で重力も与えるこの機能のスクリプトをゲームオブジェクトのカプセルにつけてキャラクターコントローラーもつけるこの状態でDを押して移動先にキューブを置いてぶつけるキューブにぶつけてDを押し続けてジャンプすると全く動きません壁キックできないのはこれと一緒の原因何のかなと思いますどう解決したらいいでしょうか?
10
+
11
+ # 今のコード
12
+
8
13
  ```c#
9
14
  using System.Collections;
10
15
  using System.Collections.Generic;