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

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

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

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

Unity

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

Q&A

解決済

1回答

2779閲覧

Unity2D 2Dアクション 横移動が突然できなくなってしまいました。

HoneMetal

総合スコア1

C#

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

Unity

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

0グッド

0クリップ

投稿2020/10/31 10:01

編集2020/10/31 11:03

前提・実現したいこと

unityにて横移動が急に動かなくなったので改善したいです。
疑問に関することを検索して様々な方法を試しましたが
解決しません。

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

Animation、Animatorを編集していたら。
キャラクターをコントロールするスクリプトにて
横移動をしなくなった。
なぜかジャンプはできる。

該当のソースコード

C#

1 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class novaControler : MonoBehaviour { 7 8 //共通 9 public GameObject mainCamera; 10 Rigidbody2D rb2d; 11 Animator anim; 12 //攻撃 13 int attackNum; 14 //移動 15 public float Runspeed = 10.0f; 16 public float Scroll = 1.0f; 17 //ジャンプ 18 public float jumpPower = 700; 19 public LayerMask groundLayer; 20 public float velY; 21 private bool isGrounded; 22 // Use this for initialization 23 void Start () { 24 anim = GetComponent<Animator>(); 25 rb2d = GetComponent<Rigidbody2D>(); 26 } 27 28 // Update is called once per frame 29 void Update () { 30 velY = rb2d.velocity.y; 31 bool isJumping = velY > 0.1 ? true:false; 32 bool isFalling = velY < -0.1f ? true:false; 33 anim.SetBool("isjumping",isJumping); 34 anim.SetBool("isfalling",isFalling); 35 if (Input.GetKey(KeyCode.LeftArrow)||Input.GetKey(KeyCode.RightArrow)){ 36 move(); 37 }else{ 38 anim.SetBool("walk",false); 39 } 40 if(Input.GetKeyDown(KeyCode.Space)){ 41 jump(); 42 }else if(Input.GetKey(KeyCode.Z)){ 43 attack(); 44 }else if(Input.GetKey(KeyCode.X)){ 45 gun(); 46 } 47 48 } 49 void jump(){ 50 isGrounded = Physics2D.Linecast(transform.position + transform.up * 1, transform.position - transform.up * 1f,groundLayer); 51 Debug.DrawLine(transform.position + transform.up * 1, transform.position - transform.up * 1f,Color.red); 52 if(Input.GetKey(KeyCode.Space)){ 53 if(isGrounded){ 54 anim.SetBool("walk",false); 55 anim.SetTrigger("jump"); 56 isGrounded = false; 57 rb2d.AddForce(Vector2.up * jumpPower); 58 59 } 60 } 61 } 62 void move(){ 63 Vector2 direction = transform.localScale; 64 if(Input.GetKey(KeyCode.RightArrow)){ 65 direction.x = 6; 66 anim.SetBool("walk",true); 67 rb2d.velocity = new Vector2(Scroll * 1 * Runspeed, rb2d.velocity.y); 68 }else if(Input.GetKey(KeyCode.LeftArrow)){ 69 direction.x = -6; 70 rb2d.velocity = new Vector2(Scroll * -1 * Runspeed, rb2d.velocity.y); 71 anim.SetBool("walk",true); 72 }else{ 73 74 } 75 transform.localScale = direction; 76 } 77 void attack(){ 78 if(attackNum == 0){ 79 anim.SetInteger("attack",1); 80 } 81 } 82 void gun(){ 83 84 } 85} 86

試したこと

Animator、Script、SpriteRender、BoxCollider2D、CircleColliderをon/off
RigidBody2DをRemoveComponent。
子オブジェクトを外す。

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

Unity 5.6.71f 32bit
SharpDevelop バージョン:5.1.0

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

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

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

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

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

Automatic9045

2020/10/31 11:01

コードを整形表示する機能を使って下さい。 質問は投稿後も編集可能です。
HoneMetal

2020/10/31 11:04

すみませんご指摘ありがとうございます。 投稿編集しまたした!
guest

回答1

0

ベストアンサー

Inspectorでanimatorをオフにしたらどうなりますか?
anim.SetBool("walk",true);でpositionのアニメーションが設定されているなら移動しても強制的にpositoinが変更されているかもしれません

投稿2020/10/31 21:43

newBee

総合スコア82

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

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

HoneMetal

2020/11/07 08:25

Animationの中に主人公のトランスフォームをいじってるものがあったのでそれを消したら治りました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問