사용자 입력 제어 (방향)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : MonoBehaviour
{
public float speed = 5;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 사용자의 입력에 따라
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
// 방향을 만들고
Vector3 dir = Vector3.right * h + Vector3.up * v;
// right : [0,0,0] [1,0,0] [-1,0,0]
// up : [0,0,0] [0,1,0] [0,-1,0]
// 대각선 이동시 움직임의 크기가 더 크다
// 벡터를 정규화 하고싶다.
dir.Normalize();
// 플레이어를 이동하고싶다.
// 이동공식 P = P0 + vt
transform.position += dir * speed * Time.deltaTime;
}
}
Public > Script에 진입하지 않고도 Unity 상에서 변수 조절가능.
deltaTime = 프레임에 따라 속도가 달라지는 것을 방지하기 위한 시간 보정.
사용자 입력 (발사)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 사용자가 마우스 왼쪽버튼을 누르면
// 총알을 발사하고싶다. (Bullet prefab을 읽어와서 총구 위치에 가져다 놓고싶다.)
public class PlayerFire : MonoBehaviour
{
// 총알공장
public GameObject bulletFactory;
// 총구위치
public GameObject firePosition;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// 만약 사용자가 마우스 왼쪽버튼을 누르면
if (Input.GetButtonDown("Fire1"))
{
// 총알공장에서 총알을 만들어서
GameObject bullet = Instantiate(bulletFactory);
// 총구 위치에 가져다 놓고싶다.
bullet.transform.position = firePosition.transform.position;
}
}
}
GetButton > 버튼 입력 감지
Instantiat > 생성함수
'공부 > Unity 기초' 카테고리의 다른 글
2D 슈팅 - 3 / 충돌 시스템 구현 (0) | 2022.05.15 |
---|---|
2D 슈팅 - 2 / 총알, 적 제작 (0) | 2022.05.15 |
가운데 문자 가져오기 (0) | 2022.05.15 |
문자열 나누기 (0) | 2022.05.13 |
영단어 숫자 바꾸기 (0) | 2022.05.12 |