rayPosition.positionにその値を足す事で開始地点に飛ばす先の位置を足したので終了地点となります。charaRayRangeとなります。レイが地面と接触していればisGroundにtrueを入れます。接触していなければfalseを入れます。今回はレイを飛ばして接触した相手を指定していないので、地面じゃない物にレイが接触した場合もisGroundにtrueが入ってしまいます。通常は地面にするゲームオブジェクトにレイヤーを指定し、そのレイヤーと接触していたかどうかで判断します。LayerMask.GetMask("Field"))とレイヤーを指定します。jumpPower;}}isGroudedだけで判断していた接地にisGroundがtrueである時も加えます。接地していた時はvelocityにVector3.zeroを入れていましたが、レイを飛ばして当たった場合は方向キーの値だけを初期化し、重力の値はそのままにします。レイが地面に当たっていた時のisGroundはあくまでジャンプする時に使用するものなので、重力値の初期化はisGroudedプロパティがtrueであった時だけにします。重力の処理以外は通常のキャラクターの移動と同じです。下り坂を移動中にジャンプ出来るかどうかを確認それでは機能が出来上がったので設定をしてUnityの実行ボタンを押して確認してみます。MoveTest(キャラクターを移動させるスクリプト)のインスペクタでcharaRayにEthanHips、charaRayRangeに0.85を設定します。キャラクターによって設定する位置や距離は異なります。上のような感じで、レイが地面より少し下に到達するような感じで指定します。上の動画のように坂を下っている途中でもジャンプが出来るようになりました。ジャンプが出来ないようであればレイの距離を少し伸ばしてみてください。上のようにCharacterControllerのコライダが接地している時はレイを飛ばさず、接地していない時にレイを飛ばしています。前述したようにコライダは坂を下る時は接地判定されません(動いている時)レイを使わないで坂を下っている時にジャンプする方法2018年07月27日に追記した内容になります。レイを使わずとも坂道を下っている時にジャンプする事が出来たのでそちらの方法もやってみましょう。接地が確認出来ないのは横に移動した時に空中にいる状態になってCharacterControllerのisGroundedがfalseになってしまう事でジャンプが出来ませんでした。そこでisGroundedがtrueになった時に下向きのオフセットの移動値を加えることによって空中状態をなくします。Time.deltaTime);}}addForceDownPowerが強制的に加える下向きの力になります。ジャンプボタンを押していない時は移動速度の下向きにaddForceDownPowerを足します。これで坂を下っている時もジャンプ出来るようになりました。レイを使うよりスクリプトの流れもわかりやすくなって処理もうまくいっているようなのでこちらの方がいいかも?これでUnityのCharacterControllerの接地をスクリプトで判断する事が出来るようになりました。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事プログラムキャラクターのラジコン操作機能を作成するUnityでキャラクターをラジコン操作で動かす為の機能を作成していきます。プログラムUnityで操作キャラクターの回りを旋回する攻撃ユニットの作成Unityで操作キャラクターの回りを旋回するユニットを作成し、ユニットの攻撃ボタンを押したら弾を発射する機能を作成していきます。プログラムUnityでキャラクターが乗ったらシーソーする床を作成するUnityでCharacterControllerで操作するキャラクターが乗ったらシーソーする床を作成します。プログラムUnityのラグドールを使ったダウンアニメーション後の起き上り機能を作成するUnityのラグドールを使ったダウンアニメーションをした後にAnimatorControllerの機能に戻し、起き上がる機能を作成していきます。プログラム銃を撃った時に空薬莢を飛ばす機能をUnityで作成するUnityのゲームで銃を撃った時に銃から空薬莢を飛ばす機能を作成していきます。プログラムUnityのキャラクターのアニメーションの動きに応じてコライダのサイズを変更するUnityで使う当たり判定(コライダ)のサイズをアニメーションに応じて変更し、ジャンプ中のキャラクターのコライダのサイズを変更し狭い空間を通過出来るようにしてみます。Unityで銃に弾を装填する機能を作成してみるUnityでキーやゲームパッドで操作するステータス画面の作成ホームプログラムスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。