キャラクター移動時、スクリプトで反転させるコードを書いているのですが。いざ動かしてみるとキャラクターが棒状になってしまいます。
怪しい箇所を弄ってみると元のスケール数値に異常があるのは理解できたのですが対策がわかりません。元のスケールを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);
}
}
}