앞으로 만들 게임과 닮은 게임
엔터 더 건전, 언소울드같이 소스는 2D이고 게임은 3D로 제작될 것이다. 어떤 게임이 될지는 그 누구도 모르겠지만 나는 프로그래머이기 때문에 더욱더 모른다ㅋㅋㅋ 만들어라고 하는 기능을 만들 뿐이다.
코드를 작성하기 전에 기본 세팅부터 하자

3D 게임이지만 스프라이트가 게임 소스이기 때문에 2D 게임처럼 보이되 입체감을 줄 수 있도록 카메라의 셋팅을 변경하자. 위 사진에서 좀 바뀌긴 했다.
덤으로 2D 소스 게임이기 때문에 멀리 있는 스프라이트도 같은 크기로 보여야 한다. Projection을 Orthographic으로 변경.

3D Object인 Plane을 추가하여 간단하게 바닥을 만들어주고 플레이어 스프라이트를 넣자. 플레이어에는 리지드바디와 박스콜라이더를 추가하여 물리 작용을 할 수 있도록 하자.
기본적인 캐릭터 이동
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class Player : MonoBehaviour
{
//public float strength; //힘
//public float defensive; //방어력
//public float health; //체력
private Rigidbody rigidbody;
void Awake()
{
rigidbody = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
Move();
}
public abstract void Move();
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMove : Player
{
public float speed; //속도 (민첩아님)
public override void Move()
{
float inputX = Input.GetAxisRaw("Horizontal");
float inputZ = Input.GetAxisRaw("Vertical");
Vector3 velocity = new Vector3(inputX, 0, inputZ);
transform.position += velocity * speed * Time.deltaTime;
}
}
추상 클래스로 기본적인 이동 기능을 만들었다. 추상 클래스로 제작한 이유는 2D로 제작을 할 때 코드가 복잡해질수록 스크립트가 많아져 관리하기가 너무 힘들었다. 그래서 처음부터 추상 클래스로 제작을 하되 핵심 기능만 따로 코드를 짜면 나중에 관리하기가 좋을 것이라고 생각했다.