이 게시글은 다음을 참고하여 작성했습니다. 감사합니다.
https://makerejoicegames.tistory.com/107
https://wonsang98.tistory.com/163
https://www.youtube.com/watch?v=GGqwMGZiwCg
우선 이 에셋을 다운로드 해주도록 합니다.
https://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631
조이스틱의 4가지 타입이 있는데
에셋 안에 있는 씬으로 들어가서 원하는 타입을 찾으실수 있습니다.
그리고 다시 원래 씬으로 돌아와서
Hierachy에 Canvas를 추가해서 원하는 타입의 조이스틱 프리펩을 추가해줍니다.
스크립트 내용 👩
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
//조이스틱
public FixedJoystick joy;
//컴포넌트
Animator anim;
Rigidbody2D rigid;
BoxCollider2D boxcollider;
//걷는 스피드
public int speed;
//컴포넌트 불러오기
void Awake()
{
rigid = GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
boxcollider = GetComponent<BoxCollider2D>();
}
//Move
void FixedUpdate()
{
float x = joy.Horizontal;
float y = joy.Vertical;
Vector3 vec = new Vector3(x,y,0);
vec.Normalize();
transform.position += vec * speed * Time.deltaTime;
if(joy.Horizontal > 0)
{
anim.Play("Walk");
transform.localScale = new Vector3(5,5,44f);
}
if(joy.Horizontal < 0)
{
anim.Play("Walk");
transform.localScale = new Vector3(-5,5,44f);
}
}
}
큰 틀은 주석을 확인해주세요!
세부 코드 내용
void FixedUpdate()
{
float x = joy.Horizontal;
float y = joy.Vertical;
Vector3 vec = new Vector3(x,y,0);
vec.Normalize();
transform.position += vec * speed * Time.deltaTime;
X,Y를 horizontal,vertical로 정해주고,
new Vector3로 (x,y)정해줍니다.
여기서 저는 Z축을 사용하지 않았습니다.
Normalize로 정규화 해주지 않으면 아래의 이미지 처럼 1.414로 일정하지 않기 떄문에
그리고 Normalize로 대각선길이까지 1,1,1로 정규화 해줍니다.
if(joy.Horizontal > 0)
{
anim.Play("Walk");
transform.localScale = new Vector3(5,5,44f);
}
if(joy.Horizontal < 0)
{
anim.Play("Walk");
transform.localScale = new Vector3(-5,5,44f);
}
}
위의 조건문으로 왼쪽 오른쪽으로 갈때에
anim.Play("애니메이션 이름"); 으로 애니메이션 재생을 시켜주고
transform.localScale = new Vector3(0,0,0);
로 스케일(크기) 조정해주면서 왼쪽 오른쪽으로 갈때 이미지가 회전되도록 합니다.
아래는 플레이 화면입니다.
https://www.youtube.com/shorts/XTzDDR01OmE
점프는 살짝 허술(?) 해보일 것 같아
로직을 다시 작성해야하나 싶었지만 나름 피하기 게임인데
점프요소는 다른 요소들 보다 중요도가 낮고 계속 플레이해보니 이것도 나쁘지 않아서
이대로 마무리를 하도록 했습니다.
'🧩 코딩 > 사용한 코드' 카테고리의 다른 글
UnknownHero 코드 공유 / 오브젝트 360도 회전,아이템 떨어지기 (0) | 2023.05.15 |
---|---|
UNITY MBTI 테스트 앱 코드 / List 사용법 (0) | 2023.04.04 |
우당탕탕 [ 피하기 게임 ] 코드 공유 / Random Range를 이용한 랜덤 오브젝트 생성 / 2D Player 움직임 코드 (2) | 2022.10.13 |
리듬 게임 2강 - 게임 매니저,플레이어 / Trigger 이벤트로 텍스트 띄우기 / enabled를 이용한 애니메이션 / 움직이는 맵 (1) | 2022.10.07 |
Unity 리듬 게임 1강 - 노트 입력 코드 (3) | 2022.10.06 |