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

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

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

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

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Unity

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

Q&A

1回答

8850閲覧

Unityのアニメーションが動かない問題が解決できない

BattleYamato

総合スコア4

C#

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

スクロール

スクロールとは、ディスプレイスクリーン上において連続的にコンテンツが滑っていくことを指します。

Unity

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

0グッド

0クリップ

投稿2020/04/04 13:24

###Unityのアニメーションが動かない問題が解決できない
こんばんは、初めての質問です。僕は今このサイト(https://dkrevel.com/makegame-beginner/make-2d-action-animator)でゲームを作っているのですがアニメーションを動かすプログラムで何故かキャラクターが走るアニメーションに移ってくれません
(具体的に説明すると右か左のキーを押すとrunの論理型がtrueになって右か左に走るアニメーションに変わるプログラム)
エラーが出てきたところからしてanimに代入した論理型がおかしいのはだいたい理解できたのですがtrueやfalse をanimに代入しても解決できません。
解決策を出来るだけ簡単に教えてくれると幸いです。イメージ説明

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

一応全部乗せときます(参考であって全部解決してほしいわけではありません)
メインで解決してほしいのは3から6までですね

1,Invalid file content for Library/StateCache/SceneView/ce2901-mainStage.json. Removing file. Error: System.ArgumentException: JSON parse error: The document is empty. 2,Invalid file content for Library/StateCache/Hierarchy/4d269c-mainStage.json. Removing file. Error: System.ArgumentException: JSON parse error: The document is empty. 3,ArgumentException: GetComponent requires that the requested component 'Animator' derives from MonoBehaviour or Component or is an interface. 4,NullReferenceException: Object reference not set to an instance of an object PlayerRun.Update () (at Assets/Scripts/PlayerRun.cs:30) 5,NullReferenceException: Object reference not set to an instance of an object PlayerRun.Update () (at Assets/Scripts/PlayerRun.cs:21) 6,NullReferenceException: Object reference not set to an instance of an object PlayerRun.Update () (at Assets/Scripts/PlayerRun.cs:26)

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerRun : MonoBehaviour 6{ 7 private Animator anim = null; 8 9 void Start() 10 { 11 anim = GetComponent<Animator>(); 12 } 13 14 void Update() 15 { 16 float horizontalKey = Input.GetAxis("Horizontal"); 17 18 if (horizontalKey > 0) 19 { 20 transform.localScale = new Vector3(1, 1, 1); 21 anim.SetBool("run", true); 22 } 23 else if (horizontalKey < 0) 24 { 25 transform.localScale = new Vector3(-1, 1, 1); 26 anim.SetBool("run", true); 27 } 28 else 29 { 30 anim.SetBool("run", false); 31 } 32 } 33

試したこと

エラーが出てきたところからしてanimに代入した論理型(boolean)がおかしいのとだいたい予想ができたのでtrueやfalse をanimに代入した

補足情報(FW/ツールのバージョンなど)

Unity 2018,4,14f1 PersonalのC#を使っています

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

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

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

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

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

guest

回答1

0

エラーが出てきたところからしてanimに代入した論理型がおかしいのはだいたい理解できたのですが

私は違うと思います。
おそらく、animがnullだからでしょう。

以下を確認してみてください。

  • Animatorという名前のクラスをどこかで作成していないかどうか
  • PlayerRunとAnimatorが同じゲームオブジェクトにアタッチされているかどうか

投稿2020/04/04 13:37

fiveHundred

総合スコア10152

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

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

BattleYamato

2020/04/05 09:08

回答ありがとうございます。 早速確認してみましたところPlayerRunと Animatorは同じゲームオブジェクトにアタッチされていました、しかしAnimatorという名前のクラスの確認方法のみわかりませんでした。まことにすみませんがUnityでクラスの名前を確認できる方法をおしえてください
fiveHundred

2020/04/05 09:48

「Animator」という名前のものをあなた自身が作っていないかどうかという意味です。 コードエディタでソースコードの「Animator」を選択し右クリック→「定義へ移動」を選択して飛んだ先が、自作のスクリプトなのであれば、それの名前を「Animator」から変更してください。 もし、Unityのバイナリファイルに飛んだ場合は、おそらく問題ないので、他が原因だと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問