質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

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

Unity

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

Q&A

1回答

2811閲覧

unitychanが動かない

akenoakeno

総合スコア7

C#

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

Unity

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

0グッド

0クリップ

投稿2017/01/19 08:30

編集2017/01/20 07:12

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class animator : MonoBehaviour { 6 7 public Animator anim; 8 public Rigidbody rbody; 9 10 private float inputH; 11 private float inputV; 12 13 // Use this for initialization 14 void Start () { 15 16 anim = GetComponent<Animator>(); 17 rbody = GetComponent<Rigidbody>(); 18 19 } 20 21 // Update is called once per frame 22 void Update () { 23 if (Input.GetKeyDown ("1")) { 24 anim.Play ("WAIT01", -1, 0f); 25 } 26 if (Input.GetKeyDown ("2")) { 27 anim.Play ("WAIT02", -1, 0f); 28 } 29 if (Input.GetKeyDown ("3")) { 30 anim.Play ("WAIT03", -1, 0f); 31 } 32 if (Input.GetKeyDown ("4")) { 33 anim.Play ("WAIT04", -1, 0f); 34 } 35 if (Input.GetMouseButtonDown (0)) { 36 int n = Random.Range (0, 2); 37 38 if (n == 0) { 39 anim.Play ("DAMAGED00", -1, 0f); 40 } else { 41 anim.Play ("DAMAGED01", -1, 0f); 42 } 43 } 44 inputH = Input.GetAxis ("Horizontal"); 45 inputV = Input.GetAxis ("Vertical"); 46 47 anim.SetFloat ("inputH", inputH); 48 anim.SetFloat ("inputV", inputV); 49 50 float moveX = inputH * 20f * Time.deltaTime; 51 float moveZ = inputV * 50f * Time.deltaTime; 52 53 rbody.velocity = new Vector3 (moveX, 0f, moveZ); 54 } 55} 56```youtubeのUnity 5 Tutorial - Animation Controlという動画とまったく同じように作っているつもりなのですが、歩くアニメーションはうまくいくのに実際に歩かせることができません。ボタンを押すとアニメーションのみが動きます。動かすコードをtranslate.Transformにすると動きますがrigidbodyで動かしたいです。エラーは出てません。原因がrigidbodyとanimatonの併用であることはわかっています。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

恐らくですが、与える速度が小さすぎです。
(現状でも全く動いていない訳ではなく、目に見えない程少しずつ動いているかと思います)

float moveX = inputH * 20f * Time.deltaTime;
float moveZ = inputV * 50f * Time.deltaTime;
この行の「20」や「50」の部分の数字をもっと大きくしてみてください。

投稿2017/01/20 07:25

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akenoakeno

2017/01/21 14:39

2000f,5000fにしてしてみましたが動きませんでした。
sakura_hana

2017/01/21 15:08

確認ですが、 >歩くアニメーションはうまくいく これは、「キー入力した時に歩くアニメーションが再生され、キーを離すと止まる」という認識でよいでしょうか? もう1つ確認として、 rbody.velocity = new Vector3 (moveX, 0f, moveZ); の次の行に Debug.Log(rbody.velocity); と入力して、ゲームを再生してみてください。 キー入力をした時、どのような値がログとして表示されますか?
akenoakeno

2017/01/22 01:54

もう一度20f,50fに戻してやってみたところ、-0.3<X<0.3 , -0.8<Z<0.8の範囲で値が変わりました
akenoakeno

2017/01/22 06:12

アニメーションについてはその通りです
sakura_hana

2017/01/23 08:01

Rigidbodyのインスペクタ上の設定(isKinematicをオンにしているか等)を教えてもらえますか? また、Animatorの「applyRootMotion」はオフになっていますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問