ここから本文です

Unityのrigidbodyについて 私はUnityを使ってスキーゲームを作成しています。

kat********さん

2015/4/1001:02:32

Unityのrigidbodyについて
私はUnityを使ってスキーゲームを作成しています。

この前rigidbodyを導入してキャラクターを雪の斜面から滑走させてみたのですが、少しの段差があるとバウンドしてしまいます。キャラクターがバウンドせずに雪斜面を滑走できる方法はないでしょうか?
現象が起こっているのを動画に取りましたのでURLを貼っておきます。https://youtu.be/xgvi-TLRQxU
以下はキャラクターのプログラムです。
using UnityEngine;
using System.Collections;

public class bbbbb : MonoBehaviour
{
// Update is called once per frame
void Update()
{
//Vertical Motion
if(Input.GetKey("up") || Input.GetKey("down"))
{
var verticalSign = Input.GetAxis("Vertical") / Mathf.Abs(Input.GetAxis("Vertical"));
rigidbody.AddForce (verticalSign * transform.forward.normalized * 20);
}

//Horizontal Motion
if(Input.GetKey("left") || Input.GetKey("right"))
{
var horizontalSign = Input.GetAxis ("Horizontal") / Mathf.Abs (Input.GetAxis ("Horizontal"));
rigidbody.AddForce (horizontalSign * transform.right.normalized * 20);
}
}
}

何かしらの解決策を教えていただけたら幸いです。

閲覧数:
531
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

ゑふさん

2015/4/1011:55:48

恐らく、前進する速度が斜面の傾斜に対して速すぎるのが問題かと思われます。
いくつか考えられる方法としては・・・

・移動速度を遅くする
・コースの凹凸を可能な限り平らにする
・キャラに下向きの荷重をかけ続ける

くらいでしょうか。
いずれにしても、物理挙動でキャラを動かしている以上、移動速度が速くなれば、こうした”正しい挙動”になってしまうかと思います。

後は、キャラが地面に接していない時は、加速を受け付けない+抵抗で減速するようにする(多少跳ねてもすぐに落ちてくる)とか、あるいは、ホイールコライダを使ってみる(車のタイヤのサスペンションを再現してくれるので、細かいギャップで飛びにくくなるハズ)なんて方法もあります。
参考になれば。

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる