일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 유니티
- TiL
- 크래프톤 정글 4기
- 연결리스트
- 핀토스
- 네트워크
- User Stack
- 티스토리챌린지
- pintos
- project3
- C
- BFS
- Unity
- 이벤트 함수 실행 순서
- 파이썬
- 크래프톤정글4기
- c#
- 다익스트라
- 크래프톤 정글
- 백준
- anonymous page
- 추상클래스와인터페이스
- 크래프톤정글
- 알고리즘수업-너비우선탐색2
- 4기
- 전쟁-전투
- kraftonjungle
- 알고리즘
- KRAFTON JUNGLE
- 오블완
Archives
- Today
- Total
말감로그
[Unity] Fooooox - Refactoring1 (모바일용 이동 조작 & 체력 UI 변경) 본문
728x90
1년전 처음 유니티를 배우고 스스로 만든 게임이었던 2D 플랫포머 게임을 리팩토링/수정하려고 한다.
우선 키보드 입력 플레이어 조작을 모바일 버튼 터치 조작으로 변경하였다.
//PlayerCtrl.cs
private void HandleInput()
{
dirX = Input.GetAxis("Horizontal");
transform.Translate(dirX * Time.deltaTime * moveSpeed, 0, 0);
if (Input.GetKeyDown(KeyCode.Space) && IsGrounded())
{
rb.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse);
}
if (Input.GetKeyDown(KeyCode.Z))
{
ShootBullet();
}
}
기존에는 좌우 키(-1, 1) 에 맞는 값에 따라 플레이어를 이동시키고, 스페이스바를 누를 시 점프, Z키를 누를 시 총을 발사하는 식으로 구현했었다.
모바일용으로 변경하기 위해 우선 버튼 UI를 배치해주고, 해당 버튼에 Event Trigger - Point Down과 Point Up 이벤트를 추가해주고 각 상황에 맞는 함수들을 연결시켜주었다.
public void MoveLeft()
{
inputX = -1f;
}
public void MoveRight()
{
inputX = 1f;
}
public void StopMove()
{
inputX = 0f;
}
public void Jump()
{
if (IsGrounded())
{
isJumping = true;
}
}
public void Fire()
{
ShootBullet();
}
inputX 값에 따라 이동시켜주고 AddForce를 활용하여 점프를 구현했다. (기존 코드와 동일)
private void MoveUpdateAnim()
{
transform.Translate(inputX * Time.deltaTime * moveSpeed, 0, 0);
if (isJumping)
{
rb.AddForce(Vector2.up * jumpPower, ForceMode2D.Impulse);
isJumping = false;
}
if (inputX != 0) // walk
{
anim.SetInteger("state", 1);
transform.localScale = new Vector3(Mathf.Sign(inputX), 1, 1);
}
else // idle
{
anim.SetInteger("state", 0);
}
if (rb.velocity.y > 0.1f) // jump
{
anim.SetInteger("state", 2);
}
else if (rb.velocity.y < -0.1f) // land
{
anim.SetInteger("state", 3);
}
}
728x90
'TIL' 카테고리의 다른 글
[Unity] Valley - 전체적인 코드 수정 & 회고 (1) | 2024.12.12 |
---|---|
[Unity] Valley - Mouse Cursor 변경하기 (1) | 2024.11.24 |
[Unity] Valley - MonoBehaviour를 상속받지 않는 인스턴스 클래스에서 코루틴 사용하는 법 (0) | 2024.11.23 |
[Unity] Valley - Sound Manager (0) | 2024.11.22 |
[Unity] Valley - Item Shop 구현 (0) | 2024.11.21 |