Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9555

UnityC#によるスクリプト反転について

$
0
0

キャラクター移動時、スクリプトで反転させるコードを書いているのですが。いざ動かしてみるとキャラクターが棒状になってしまいます。
怪しい箇所を弄ってみると元のスケール数値に異常があるのは理解できたのですが対策がわかりません。元のスケールをx1 y1 z1 にすると正常に機能します。

どなたかご教授いただけないでしょうか?

(キャラクターのスケールはx5 y5 z1となっています)

以下cs

public class Player : MonoBehaviour
{

public float speed = 4f; 
private Rigidbody2D rigidbody2D;
private Animator anim;

void Start()
{

    anim = GetComponent<Animator>();
    rigidbody2D = GetComponent<Rigidbody2D>();
}

void FixedUpdate()
{

    float x = Input.GetAxisRaw("Horizontal");

    if (x != 0)
    {
        //入力方向へ移動
        rigidbody2D.velocity = new Vector2(x * speed, rigidbody2D.velocity.y);
        //localScale.xを-1にすると画像が反転する
        Vector2 temp = transform.localScale;
        temp.x = x;
        transform.localScale = temp;
        //Wait→Dash
        anim.SetBool("Dash", true);

    }
    else
    {
        //横移動の速度を0にしてピタッと止まるようにする
        rigidbody2D.velocity = new Vector2(0, rigidbody2D.velocity.y);
        //Dash→Wait
        anim.SetBool("Dash", false);
    }
}

}


Viewing all articles
Browse latest Browse all 9555