개발 36

3장 오브젝트를 배치하고 움직이는 방법

3.1 게임 설계하기 사용자의 입력에 따라 움직이게 할 것 1단계 : 화면에 놓일 오브젝트를 모두 나열 2단계 : 오브젝트를 움직일 수 있는 컨트롤러 스크립트를 정하기 3단계 : 오브젝트를 자동으로 생성할 수 있도록 제너레이트 스크립트 정하기 4단계 : UI를 갱신 할 수 있도록 감독 스크립트 준비 5단계 : 스크립트를 만드는 흐름을 생각 1단계 화면에 놓일 오브젝트를 미리 구상하기 2단계 나열한 오브젝트 중에서 움직일 오브젝트만 따로 확인하기 움직이는 오브젝트에는 해당 오브젝트만의 스크립트가 필요 => 컨트롤러 스크립트 3단계 게임을 플레이 할 때 생성될 오브젝트를 찾음 플레이어가 이동하거나 시간이 경과하면 출현하는 오브젝트가 해당됨 오브젝트를 생성하는 스크립트 => 제너레이트 스크립트 4단계 게임의 ..

2.9 Vector 클래스 사용하기

2.9.1 Vector 3D 게임을 만들려면 오브젝트의 위치를 정해야 하기 때문에 float형의 x, y, z 값 3개를 쓴다. C#에는 Vector3 class(구조체)가 있다. 2D 게임에는 Vector2 class가 있다 (float형의 x, y값) 위 값 둘다 좌표나 벡터로 쓸 수 있다. 2.9.2 Vector 클래스를 사용하는 방법 ※ Vector2 class의 멤버 변수에 숫자 더하기 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 public class test : MonoBehaviour { // Start is called before the first ..

2.8 클래스 만들기

2.8.1 클래스 클래스를 사용하면 관계가 있는 변수와 메서드를 하나로 합칠 수 있어서 프로젝트를 관리하기 쉽다. class 클래스명 { 멤버 변수 선언; 멤버 메서드 구현; } 작성한 클래스는 int나 string 등 데이터형으로 사용할 수 있다. 유니티에서 제공하는 클래스도 있다. 2.8.2 클래스 작성하기 ※ Player 클래스 구현하기 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 using UnityEngine.UIElements; public class Player { private int hp = 100; private int power = 50; publ..

2.7 메서드 만들기

※ 지금까지는 Start() 메서드 안에 모든 처리를 작성했지만, 모아둔 처리마다 이름을 붙여서 재사용 할 수 있게 할 것이다. 2.7.1 메서드 메서드(method) : 의미가 있는 처리 블록으로 분해하고 이름을 붙이는 구조에서 각 처리를 메서드라고 한다 인수 : 메서드(method)로 건네는 값 반환값 : 메서드(method)에서 돌려받는 값 인수는 여러개 건넬 수 있지만, 반환값은 1개만 받을 수 있다. 이 반환값을 여러개로 받고 싶다면 배열로 받아서 값을 처리하면 된다. 2.7.2 메서드를 만드는 방법 ※ Add() 메서드의 예시 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필..

2.6 배열 사용하기

2.6.1 배열 선언과 규칙 ※ 배열을 사용하는 예 여러가지 값(게임 순위, 점수) 등을 한꺼번에 다루어야 하는 경우 변수 상자를 가로로 이어붙인 길고 얇은 상자와 비슷 배열 준비 // 배열 선언 int[] points; // 배열 초기화 int[] points = new int[5]; int형 상자 5개를 만든다 배열의 인덱스는 points[0], points[1], points[2], points[3], points[4] 로 총 5개다. 배열 값 이용 points[2] = 3; 배열은 0번부터 세기 때문에 [null, null, 3, null, null] 의 형태로 들어간다. 2.6.2 배열을 사용하는 방법 ※ 배열 사용하기 using System.Collections; using System.Col..

2.5.5 for 문으로 반복하기

2.5.5 for문으로 반복하기 반복 횟수를 지정하면 자동으로 반복 횟수만큼 처리를 반복하는 for문을 사용 for (반복 횟수) { 처리 } for (변수 초기화; 반복 조건식; 변수 갱신) { 처리 } ① i 변수를 0으로 초기화 ② 반복 조건(i < 5)을 만족하면 ③, 만족하지 않으면 반복문을 종료 ③ Console 창에 i 값을 출력 ④ i를 증가시킴 (i 값을 1 증가) ⑤ ②로 돌아감 ※ for 문 사용하기 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 public class test : MonoBehaviour { // Start is called bef..

2.5 제어문 사용하기

2.5.1 if문으로 조건 분기하기 특정한 조건이 맞을 때만 스크립트를 실행하고 싶다면 if문을 사용 if문은 관계연산자를 사용해서 조건식을 사용 ※ if 문 사용하기 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 public class test : MonoBehaviour { // Start is called before the first frame update void Start() { int herbNum = 1; if (herbNum == 1) { Debug.Log("체력을 50 회복"); } } } 결과값 보기 더보기 체력을 50 회복 herbNum = 5; ..

2.4.2 변수와 연산

2.4.2 변수와 연산 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 public class test : MonoBehaviour { // Start is called before the first frame update void Start() { int answer; answer = 1 + 2; Debug.Log(answer); } } 결과값 보기 더보기 3 ※ 사칙 연산하기 using System.Collections; using System.Collections.Generic; using UnityEngine; // 유니티가 동작하는데 필요한 기능 제공 publi..

2.3 스크립트 첫 걸음

2.3.1 스크립트 앞 전에 작성한 글에서 만든 스크립트 가독성이 떨어지는 글꼴과 화면이 싫기 때문에 커스터마이즈를 잠깐 해 줄 예정이다. 2.3.1.1 visual studio 폰트 및 화면 조정 ( 꼭 필요한 것은 아님.. 넘겨도 됨) 2.3.2 콘솔에 출력하기 대충 원래 있던 코드에서 Debug.Log("Test!, hello this world"); 만 추가해 주고, 이것이 Unity에서는 어떻게 실행 되는지 보자 현재는 아무것도 동작하는 것이 없고, Console에 해당 값이 찍히는지만 확인하면 되니까, 실행 버튼을 눌러서 실행하면, console에 찍히게 된다. ※ 참고로 어느정도로 코딩을 할 줄 알고 있다를 전제로 해서, 글을 작성하는 것이기 때문에, 코드적인 부분에서 따로 리뷰는 하지 않을..

2 C# 스크립트 기초

2.2.1 스크립트 작성하기 연습은 2D 기반의 게임을 만들 예정이기 때문에 새로 프로젝트를 열어줍니다. 2.2.2 스크립트 연결하기 하단의 project에서 c# 스크립트를 만듭니다 스크립트를 적용할 오브젝트를 생성합니다. 빈 오브젝트에 스크립트를 드래그&드롭을 통해 연결합니다. 오브젝트의 inspector 을 보면 script가 연결됨을 확인합니다. 스크립트에 작성한 움직임으 적용하려면 게임 오브젝트에 연결해야 된다. 카메라, 오브젝트, 사물, 캐릭터 등 모든 동작에 대한 스크립트가 필요하고, 연결해야 한다는 것이다.