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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

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

Q&A

解決済

1回答

391閲覧

歩くときにWalkAnimeが作動しない

temuko

総合スコア2

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Unity

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

0グッド

0クリップ

投稿2021/09/09 16:09

編集2021/09/09 23:58

前提・実現したいこと

2Dのサイドビューゲームを自作しています。
以下コードがアタッチされたキャラクターが速度0以外のとき(=動いているとき)"WalkAnime"のアニメーションを作動させるようにしたい。

発生している問題・エラーメッセージ

エラーメッセージは発生していませんが、移動中に作動したい"WalkAnime"が作動しません。

該当のソースコード

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Walk : MonoBehaviour { Rigidbody2D rbody; //Rigidbody型の変数 float axisH = 0.0f; //入力 public float speed = 3.0f; //移動速度 //アニメーション対応 Animator animator; //アニメーター public string stopAnime = "Stop"; public string moveAnime = "WalkAnime"; //★足踏み動作 string nowAnime = ""; string oldAnime = ""; // Start is called before the first frame update void Start() { //Rigidbody2Dをとってくる rbody = GetComponent<Rigidbody2D>(); //Animetorを取ってくる animator = GetComponent<Animator>(); nowAnime = stopAnime; oldAnime = stopAnime; } // Update is called once per frame void Update() { //水平方向の入力をチェックする axisH = Input.GetAxisRaw("Horizontal"); //向きの調整 if (axisH > 0.0f) { //右移動 Debug.Log("右移動"); transform.localScale = new Vector2(1, 1); } else if(axisH < 0.0f) { //左移動 Debug.Log("左移動"); transform.localScale = new Vector2(-1, 1); } } void FixedUpdate() { //速度を変更する rbody.velocity = new Vector2(speed * axisH, rbody.velocity.y); if (axisH == 0) { nowAnime = stopAnime; //停止中 } else { nowAnime = moveAnime;  //★速度が0以外のとき、WalkAnime"作動させる } } }

補足

本作品は一方通行で右にしか進めないゲームです。
そのため、Edit > Project Setting > Inputから左向きの入力を認識しないように設定しているのですが、もしかしてそれが関係しているのでしょうか?

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

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

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

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

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

bboydaisuke

2021/09/09 17:22

とりあえず張り付けてあるコードのインデントがなくて読む気にならないので、``` で囲んで欲しいです。
temuko

2021/09/09 23:58

初心者なもので色々と至らぬ点があり、申し訳ありません。 修正しました。 今後気をつけます。
guest

回答1

0

ベストアンサー

nowAnime = moveAnime;  //★速度が0以外のとき、WalkAnime"作動させる

自分で用意した文字列変数に文字列を代入したところで、それを「Animator Controller のステートを変える」とはコンピュータは理解してくれません。

Animator Controller のステートを変えるには Animator.Play() という関数を使い、引数にステート名を指定します。

投稿2021/09/09 17:26

bboydaisuke

総合スコア5277

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

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

temuko

2021/09/10 00:01

コメントありがとうございます。 この記載は教本のアニメーション変更のスクリプトを加工して作ったものなのですが、Animator.Play()という関数は出てきていませんでした。 教本の写経をしたときは動いたと思うのですが… いくつかやり方があるのでしょうか?
bboydaisuke

2021/09/10 07:34 編集

その教本とやらのタイトルと、それが書いてあるページ数、章あるいはチャプター番号を教えてください。
bboydaisuke

2021/09/10 07:34 編集

やり方なんて何通りもありますよ。その「教本」には Unity 全体の 1% も書かれてないと思いますよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問