Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- 논리 연산
- 백준 2587번
- 일상생활 영어표현
- Java
- C
- 백준 2501번
- 차이
- C++
- 백준 5086번
- 배열
- 백준 #11382번 #
- 백준 2525번
- 연속된 숫자의 합
- 5073번
- 백준 1157번
- 백준 9506번
- 직각 삼각형
- 백준 27433번
- html
- 피라미드 출력
- 상세 풀이
- 대칭 차집합
- 백준 25305번
- 해석
- 백준 5597번
- Unity
- 백준 1269번
- javascript
- 잡다한 일
Archives
- Today
- Total
YunDev
Unity - 2D 게임 플레이어 이동구현 본문
안녕하세요!! 오늘은 2D게임에서 플레이어의 이동구현 코드에 대해 알아보도록 하겠습니다~
그 전에, 2D에서는 플레이어를 카메라가 따라가게 하고 싶다면 플레이어 안에다 카메라를 넣어주시면 끝입니다!
1.플레이어 이동
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public float maxSpeed;
Rigidbody2D rigid;
void Awake()
{
rigid = GetComponent <Rigidbody2D>();
}
void FixedUpdate()
{
//Move Speed
float h = Input.GetAxisRaw("Horizontal");
rigid.AddForce(Vector2.right * h, ForceMode2D.Impulse);
//Max Speed
if (rigid.velocity.x > maxSpeed) //Right Max Speed
rigid.velocity = new Vector2(maxSpeed, rigid.velocity.y);
else if (rigid.velocity.x < maxSpeed*(-1)) //Left Max Speed
rigid.velocity = new Vector2(maxSpeed*(-1), rigid.velocity.y);
}
플레이어는 일정한 속도로 움직여야 합니다. 그냥 h를 곱해주면 플레이어의 속도가 너무 빨라지므로
맥스 스피드라는 속도를 제한하는 변수를 만들어서 제한 속도를 넘어가면 현재 속도를 맥스 스피드로 정해줍니다.
저는 맥스 스피드를 3으로 했고 플레이어가 왼쪽으로 이동하면 값 -1을 출력하기 때문에 (-1)을 곱해야합니다!
2. 방향 전환, 키를 뗏을 때의 속도 조절
void Awake()
{
spriteRenderer = GetComponent<SpriteRenderer>();
}
void Update()
{
//Stop Speed
if (Input.GetButtonUp("Horizontal"))
{
rigid.velocity = new Vector2(rigid.velocity.normalized.x*0.5f, rigid.velocity.y);
}
//Direction Sprite
if (Input.GetButton("Horizontal"))
spriteRenderer.flipX = Input.GetAxisRaw("Horizontal") == -1;
}
GetButtonUp은 키를 뗏을 때를 의미합니다. 방향키를 떼엇다면 현재 속도를 단위 값(1)으로 만들고 0.5를 곱해주어 속도를 점점 멈추게 합니다.
flipX는 플레이어가 바라보고 있는 방향을 바꿀 수 있는데 true라면 왼쪽을, false라면 오른쪽을 바라봅니다.
조건이 -1이기 때문에 왼쪽 방향키를 누르면 true가 되서 왼쪽을 바라보고 그냥 1일 땐 false이기 때문에 오른쪽을 바라봅니다.
이렇게 플레이어의 이동에 대해서 알아보았습니다.
다음은 '점프'로 글을 올리도록 하겠습니당~~ :D
영상 출처 : https://www.youtube.com/watch?v=Z4iULRbiSTg
도트(그림) 출처 : https://blog.naver.com/gold_metal/221613270615
'Programming > Unity' 카테고리의 다른 글
Unity - 2D 마리오 게임 완성했습니다!! (기초) (3) | 2020.04.12 |
---|---|
Unity - 플레이어 총알 발사 구현하기! (0) | 2020.04.01 |
Unity - 슈팅 게임 플레이어 무적 알아보기! (0) | 2020.03.30 |
Unity - 슈팅게임 완성했습니다! (4) | 2020.03.29 |
Unity - 기초적인 실행 함수, 프레임 (0) | 2020.03.10 |