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

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

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

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

Unity

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

Q&A

0回答

858閲覧

Unity2D プレイヤーの落下モーションを実装したい。

Star777

総合スコア0

C#

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

Unity

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

0グッド

0クリップ

投稿2021/11/29 08:56

編集2021/11/29 09:37

###実現したいこと 困っている事
プレイヤーが落下する時にモーションを付けらなくて困ってます。
2Dキャラクターをジャンプした後、落下モーションを導入したいです。
ご回答宜しくお願い致します。
###試した事
Vectorを使って差分を計算しましたが上手くいかなかったです。

該当のソースコード

Unity C#
PlayerController.cs
※ソースコードはプロジェクト内に一つだけです。

html

1public class PlayerController : MonoBehaviour 2{ 3  Rigidbody2D rbody; 4  public float jumpSpeed; 5 bool jump = false; //ジャンプフラグ 6 7  public bool walkforward = false; //前方に歩く 8  public float walkspeed; //進む速度 9 10  Animator animator; 11  public string runAnime = "PlayerRun"; 12  public string jumpAnime = "PlayerJump"; 13  string nowAnime = ""; 14 string oldAnime = ""; 15 16 17 18 // Start is called before the first frame update 19  void Start() 20   { 21 rbody = GetComponent<Rigidbody2D>(); 22 animator = GetComponent<Animator>(); 23 nowAnime = runAnime; 24 oldAnime = runAnime; 25   } 26 27 // Update is called once per frame 28   void Update() 29  { 30 if(Input.GetKeyDown("space") && !jump) 31 { 32 rbody.AddForce(Vector2.up * jumpSpeed); 33 jump = true; 34 Debug.Log("ジャンプ作動"); 35 } 36 if(walkforward) // X軸に進む 37 { 38 this.gameObject.transform.Translate(walkspeed, 0, 0); 39 } 40 41  } 42 43  void FixedUpdate() 44  { 45 if(walkforward) 46 { 47 if(jump == false) //移動アニメーション 48 { 49 nowAnime = runAnime; 50 } 51 else if(jump == true) //ジャンプアニメーション 52 { 53 nowAnime = jumpAnime; 54 } 55 56 } 57 if (nowAnime != oldAnime) 58 { 59 oldAnime = nowAnime; 60 animator.Play(nowAnime); 61 } 62  } 63 64  void OnCollisionEnter2D(Collision2D othe) 65  { 66 if(othe.gameObject.CompareTag("Ground")) 67 { 68 jump = false; 69 } 70  } 71}

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

コードが乱雑だとは思いますが是非ご回答お願い致します。

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

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

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

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

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

fiveHundred

2021/11/29 09:00

コードは専用の書式を使ってください。 また、「困っていること」を書かずに「導入したい」とだけ書くと「代わりに実装してほしい」と思われて丸投げ低評価されますよ。
Star777

2021/11/29 09:30

ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問