using UnityEngine;
public class PlyaerController : MonoBehaviour
{
int speed = 10; //스피드
private Animator animator; // 애니메이터 참조
private void Start()
{
animator = GetComponent<Animator>();
}
void Update()
{
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
Vector2 currentPosition = transform.position;
// x좌표 제한 검사
if (currentPosition.x >= 2.27f && h > 0)
{
h = 0; // 오른쪽 이동 제한
}
else if (currentPosition.x <= -2.29f && h < 0)
{
h = 0; // 왼쪽 이동 제한
}
// y좌표 제한 검사
if (currentPosition.y >= 4.4f && v > 0)
{
v = 0; // 위쪽 이동 제한
}
else if (currentPosition.y <= -4.49f && v < 0)
{
v = 0; // 아래쪽 이동 제한
}
float xMove = h * speed * Time.deltaTime;
float yMove = v * speed * Time.deltaTime;
this.transform.Translate(new Vector2(xMove, yMove));
// 애니메이션 상태 제어
if (h > 0)
{
animator.SetInteger("state", 2); // 오른쪽 애니메이션
}
else if (h < 0)
{
animator.SetInteger("state", 1); // 왼쪽 애니메이션
}
else
{
animator.SetInteger("state", 0); // 중앙 애니메이션
}
}
}
반응형
'KDT > 2D 콘텐츠 제작' 카테고리의 다른 글
[SpaceShooter2D] Bullet Prefab 오브젝트 풀링 구현 (0) | 2023.08.28 |
---|---|
[SpaceShooter2D] Enemy 애니메이션 구현 (0) | 2023.08.18 |
[SpaceShooter2D] 총알 발사 구현과 삭제 및 정규화 (0) | 2023.08.16 |
[SpaceShooter2D] 캐릭터 이동과 벽에 닿았을 때 이동 제한 (0) | 2023.08.16 |