게임 개발 프로그램이며 충돌, 중력, 탄성, 카메라 등의 개념을 직관적으로 활용할 수 있다.
window - layout - 2 by 3
project 우클릭 - one column layout
우선 게임의 전체적인 해상도를 설정해준다.
1. MainScene(우클릭) → Game Object → 2D Object → Sprite → Square 클릭 → background로 이름 바꾸기
2. 색을 255,255,220,255
로 맞추기
3. Scale을 X:6, Y:10
으로 맞추기
1. MainScene(우클릭) → 2D Object → Sprite → Square 클릭 → ground로 이름 바꾸기
2. 색을 50, 50, 50, 255
로 맞추기
3. Scale을 X:6, Y:1.5
으로 맞추기 + Position은 Y:-4.3
으로 맞추기
4. Order in layer를 1로 맞추기 - 포토샵의 레이어와 같다.
Assets 우클릭 후 Images 폴더를 생성 후 파일탐색기를 통해 폴더 안에 사용할 이미지를 넣기
1. MainScene(우클릭) → 2D Object → Sprite → Square 클릭 → rtan으로 이름 바꾸기
2. Sprite 부분에 르탄이1 이미지 끌어다놓기0
3. Order in Layer를 1로 바꾸기
4. Position 값을 Y:-2.9
로 바꾸기
1. 애니메이션 폴더 만들기 (Asset → Animation)
2. 애니메이션 파일을 만들고, Loop Time에 체크
3. 이것을 만들어둔 르탄 캐릭터에 sprite에 끌어다놓기
4. Controller가 생긴 것을 확인!
- Controller는 : Animation을 컨트롤 하는 것
(예 - 보통 상태 / 맞을 때 / 뛸 때 어떤 애니메이션을 써라)
- Animation은 : 동작 파일
- Animation 만드는 방법
1. rtan_run.anim 더블 클릭 후 → 르탄이 캐릭터 클릭
2. 르탄이1, 2파일을 적당한 시간 간격으로 끌어다두기
Visual Studio 세팅하기
Edit → Preferences → External Tools → Visual Studio Community 2019
캐릭터가 코드를 가진다면?
캐릭터에 코드를 작성하는 의미는? → "캐릭터가 동작 할 수 있게 만드는 것”
동작에서 꼭 알아야 할 두 가지 함수 → start (너는 태어날 때) / update (매 순간 이렇게 해라)
Script 만들기
1. Assets 우클릭
2. Create 클릭
3. Folder 만들기 이름은 Scripts
4. Create 클릭
5. C# script 클릭 하기 이름 rtan
6. rtan script를 더블 클릭하면 C#이 실행
public class rtan : MonoBehaviour
{
float direction = 0.02f; // 객체가 이동할 벡터값을 선언
// Start is called before the first frame update
void Start() // 현재는 사용하지 않음
{
}
// Update is called once per frame
void Update()
{
if (transform.position.x > 2.8f) // 객체의 포지션 X 값이 2.8 보다 커진다면
{ (벡터값 2.8은 게임 화면의 벽)
direction = -0.02f; // 벡터값을 -로 선언하여 반대로 이동한다.
transform.localScale = new Vector3(-1, 1, 1);
// 반대로 이동한다면 객체의 로컬스케일 x값을 -1로하여 이미지를 좌우반전 시킨다.
}
if (transform.position.x < -2.8f) // 객체가 반대편 벽에 닿는다면 다시 반대로 이동
{
direction = 0.02f;
transform.localScale = new Vector3(1, 1, 1);
}
transform.position += new Vector3(direction, 0, 0);
// 객체의 포지션 벡터값에 += 뒤의 벡터값을 더한다.
즉 direcrion 값 만큼 계속해서 x값이 증가하여 객체가 움직인다.
}
}
public class rtan : MonoBehaviour
{
float direction = 0.02f;
float toward = 1.0f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0)) // 마우스 클릭의 관용어
{
toward *= -1; // *= 앞의 데이터에 뒤의 값을 곱해준다.
direction *= -1; 즉 방향을 반대로 바꿔준다.
}
if (transform.position.x > 2.8f)
{
direction = -0.02f;
toward = -1.0f;
}
if (transform.position.x < -2.8f)
{
direction = 0.02f;
toward = 1.0f;
}
transform.localScale = new Vector3(toward, 1, 1);
// 객체의 좌우반전을 toward 값으로 초기화하여 코드를 간략화
transform.position += new Vector3(direction, 0, 0);
}
}
우선 C#을 미리 공부하지 않았으면 내용 이해에 굉장히 난항을 겪었으리라고 생각된다. Unity의 첫인상은 UI가 직관적이어서 사용에 불편함을 겪지 않는다는 점이 장점인 듯 싶다. 하지만 역시 관건은 Script에 작성하는 code다.. 강의에서 기능의 개념 보다는 code의 동작, 결과를 알려주는 편이라서 따로 공부가 필요해보인다.