난 a를 누르면 평타가 나가면서 앞뒤로 순간이동 했으면 좋겠는데 왜 이렇게 선형적으로 움직이는 걸까??


void Update()

{

bool isFlipped = GetComponent<SpriteRenderer>().flipX;

float direction = GetDirection(isFlipped);

// 입력 받기 (WASD 혹은 방향키)

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

if (movement.x > 0 )

{

spriteRenderer.flipX = true;

}

else if (movement.x <0)

{

spriteRenderer.flipX = false;

}

// A평타

if (Input.GetKey(KeyCode.A))

{

animator.SetBool("Pariziong_A", true);

}

else

{

animator.SetBool("Pariziong_A", false);

}

//Autoattack 앞뒤 움직임

switch (spriteRenderer.sprite.name)

{

case "pariziong(A,Autoattack1)-Sheet_1":

Vector3 currentPosition1 = rb.position;

Vector3 newPosition1 = new Vector2(currentPosition1.x - 0.02f*direction, currentPosition1.y);

rb.position = newPosition1;

break;


case "pariziong(A,Autoattack1)-Sheet_0":

Vector3 currentPosition0 = rb.position;

Vector3 newPosition0 = new Vector2(currentPosition0.x + 0.02f*direction, currentPosition0.y);

rb.position = newPosition0;

break;

default:

break;

}

UpdateColliderFromSprite();

}


void UpdateColliderFromSprite()

{

if (spriteRenderer != null && boxCollider != null)

{

// 스프라이트의 Bounds를 가져옴

Bounds spriteBounds = spriteRenderer.sprite.bounds;

boxCollider.size = new Vector2(spriteBounds.size.x, spriteBounds.size.y);

// 콜라이더의 크기와 오프셋을 스프라이트의 Bounds에 맞게 설정

// Offset 계산

Vector2 colliderCenter = spriteBounds.center;

Vector2 colliderOffset = colliderCenter;

// Offset 조정

boxCollider.offset = colliderOffset;

}

}


void FixedUpdate()

{

// 물리 기반 이동

rb.velocity = new Vector2(movement.x * moveSpeed, rb.velocity.y);

}