using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControl : MonoBehaviour
{
// Private Variables
private float speed = 15.0f;
private float turnSpeed = 40.0f;
private float horizontalInput;
private float verticalInput;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
// This is where we get player input
verticalInput = Input.GetAxis("Vertical");
horizontalInput = Input.GetAxis("Horizontal");
// Move the vehicle forward
transform.Translate(Vector3.forward * Time.deltaTime * speed * verticalInput);
// Turn the vehicle
transform.Rotate(Vector3.up, Time.deltaTime * turnSpeed * horizontalInput);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FollowPlayer : MonoBehaviour
{
public GameObject player;
private Vector3 offset = new Vector3(0, 5, -7);
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void LateUpdate()
{
// Camera follow player
transform.position = player.transform.position + offset;
}
}
키 입력에 따른 자동차의 앞,뒤 이동 , 회전에 관한 게임 플레이 영상
카메라는 player position 약간 뒤에서 따라가게 만듦.
Input.GetAxis("Vertical"), Input.GetAxis("Horizontal")을 통해 키입력을 받고 translate를 활용하여 이동시킨다.
이때 Time.deltaTime 값을 사용하게 되는데 이유는 void Update()의 경우 프레임당 실행되어 실행 기기 성능에 따라
실행 횟수가 좌우될 수 있기 때문이다. (1초당 60 프레임 기기와 1초당 120 프레임 기기를 비교하면 두배의 차이가 생긴다)
Time.deltaTime은 이 성능 차이를 없애주기에 사용하게 된다.
transform.Rotate(회전할 기준 좌표축, 값)을 통해 좌우 키 입력시 회전을 시킨다.
'Unity > 연습' 카테고리의 다른 글
[Unity] 자동차로 이것저것 (0) | 2023.01.06 |
---|---|
[Unity] 유사 플래피 비행기 (0) | 2023.01.05 |
[Unity] 스프라이트 파친코 (0) | 2022.12.30 |
[Unity] 소리를 내며 날아가는 냄비와 날아오는 냄비2 (0) | 2022.12.29 |
[Unity] 기초 Script 가지고 놀기 (0) | 2022.12.29 |