반응형
화살표 피하기 만들거임
1. 게임화면 내 핸드폰 기종에 맞추기 (1440*3200)
가로모드로 게임할거니까 (3200*1440) 으로 설정
2. 플레이어 배치하기
position (0,- 3.6, 0)
3. 백그라운드 배치
position (0,0,0)
scale(4.5, 2 1)
- 플레이어가 백그라운드에 가려서 보이지않는다.
4. 플레이어의 인스펙터에서 " Order in Layer"를 1로 변경해주면
플레이어 등-장
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
transform.Translate(-3, 0, 0);
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
transform.Translate(3, 0, 0);
}
}
}
5. 플레이어 왼/ 오른쪽 입력시 좌 우로 -3, 3 씩 이동하는 스크립트 작성
- 문제점 : 이동범위가 너무큼 , 화면 밖으로 나가버림, 자연스러운 움직임 구현 X
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
int speed = 3;
void Update()
{
float playerMove = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
playerMove = speed * Time.deltaTime;
}
if (Input.GetKeyDown(KeyCode.RightArrow))
{
playerMove = -speed * Time.deltaTime;
}
this.transform.Translate(new Vector3(playerMove,0,0));
}
}
6.
GetAxis 함수는 서서히 증가한다(?)
- Input.GetAxis() 는 축(Axis)을 기준으로 -1~ 1 까지의 값을 반환한다.
수평을 기준으로
-1 = 왼쪽
0 = 중간
1 = 오른쪽
서서히 증가한다는 특성때문에 잠깐누르면 0.5만큼 움직이고 오래 누르면 속도가 증가한다.
( 사실뭔말인지 모르겠으나 대충 이해한척 넘어가기)
playermove라는 변수는 Horizontal 방향으로 스피드(3)만큼 서서히 증가한다.
왼쪽, 오른쪽 화살표를 눌렀을 경우 스피드를 곱한 값만큼 이동한다.
translate() 함수는 vector3 형식을 매개변수로 받는다. (x,y,z) 값 만큼 이동하는 함수
= 결과물
같은 방식으로 하늘에서 화살표가 떨어지게 만들어봐야겠다.
반응형
'내 공부 > Unity_' 카테고리의 다른 글
Post processing Stack 영화같은 필터 적용하기 (0) | 2020.12.07 |
---|---|
유니티 2D deltaTime 활용하여 화살떨어지게하기 (1) | 2020.09.01 |
Unity 텍스쳐 입력과 출력 (0) | 2020.07.09 |