前提・実現したいこと
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
回答1件
あなたの回答
tips
プレビュー