switch case 문

switch ( 조건 변수)
{
case 상수조건1 :
실행내용
break;

case 상수조건2 :
실행내용
break;

case 상수조건3 :
실행내용 break;
}

 

특징

1) 변수 한가지를 가지고 그 변수가 무엇인지 확인하는 조건문이다

2) 한가지 조건을 더 정교하게 체크 가능하다.

 

·  case 조건 고정된 상수여야 한다.

1, 2, 3등 고정 값

x > 10등 변할 수 있는 값 X

int x 등 새로운 변수 X

·  case  에 들어가는 조건은 중복되면 안됨

 

FOR문

for ( 초기화 ; 조건 ; 변화 )

{

실행 내용

}

어떤일을 반복할 때 쓰이는 기능

 

While문

while ( 조건 )

{

실행 내용

}

FOR문과 다르게 조건만 체크되면 실행된다.

 

do while문

do

{

실행 내용

}

while ( 조건 );

조건과 상관없이 일단 실행한다.이후 조건에 따라 반복

1. 선택한 게임의 이름은 무엇인가요?

Minecraft

 

2. 선택한 게임의 장르는 무엇인가요?

오픈월드, 샌드박스, 어드벤처

 

3. 선택한 게임의 어떤 시스템에 집중하셨나요?

마인크래프트 월드 생성 원리

 

4. 해당 시스템이 동작하는 구조의 시작부터 과정을 자세하게 분석, 나열해봅시다.

 

순서

1. 마인크래프트 월드 생성시 스폰 청크(Spawn Chunk)를 생성한다.

→ 청크는 16(가로)×16(세로)×256(높이) 블럭의 집합체로써 1청크당 65,536 블록으로 이루어져 있다. 

→ 마인크래프트 월드를 생성하여 입장하면 플레이어 주변에 청크가 생성된다.

→ 플레이어가 이동 시 필요에 따라 또다른 청크를 생성한다. 

→ 마인크래프트 월드는 수많은 구역으로 나누어진 청크의 집합체다.

 

2. 마인크래프트 월드는 이용자가 입력한 시드로 기본틀인 펄린노이즈를 생성한다. 이때 생성되는 펄린노이즈는 돌(stone) 블럭으로 생성된다.

펄린노이즈 : 자연에서 볼 수 있는 구름이나 풍경, 대리석처럼 패턴이 있는 텍스처를 표현하는데 사용

 

3. 돌(stone) 블럭이 생성되면 주변 Y좌표가 62 이하인 곳에 물(water) 블럭으로 이루어진 바다, 호수, 강, 샘등을 형성한다.

 

4. 이후 잔디(Grass)블럭과 흙(Dirt)블럭을 새로 생성하는 것이 아닌 생성된 돌(stone) 블럭의 윗부분을 덮는 방식으로 만들어진다.

 

5. 동굴, 용암이 생성되고 동굴과 용암이 생성되면 자원(광물, 화강암, 섬록암 등)이 생성된다.

 

6. 마지막으로 나무, 잔디, 꽃, 마을과 같은 구조물의 생성으로 월드 생성은 마무리 된다.

 

 

마인크래프트 월드를 생성할 때 연관성이 있는 시드(seeds)가 있다.

 

시드(seeds)란?

월드 생성시 반드시 포함되는 지형 요소, 아이템 드랍을 결정 짓는다.

게임을 플레이하는 세계를 생성하는 코드이다.

 

시드의 특징은

1) 값은 숫자로 이루어진다.

2) 직접 숫자값을 입력하지 않을 경우 무작위 생성한다.

3) 문자로 입력할 경우 숫자로 변환된다.

 

이를 이용해 같은 값의 시드값을 입력할 경우 게임 환경이 변화해도 알고리즘은 같으므로 항상 같은 생성이 가능하다.

 

5. 직접 분석해본 내용 중 가장 핵심이 되는 구성 요소는 무엇이라 생각하나요?

이용자가 값을 변경할 경우 전체값이 변경되는 시드(seeds)라고 생각합니다. 이용자가 어떤값을 입력하느냐에 따라 그 활용도와 게임의 양상이 달라지기 때문에 월드를 생성하는데 있어 가장 핵심이 되는 구성 요소라고 생각합니다.

 

형변환 (Casting)

변수를 사용할때 사용하고 있는 자료의 형태를 변환해야 할 경우

예) string → int, string → bool

 

가장 많이 사용하고 기본적인 3가지

  • 숫자를 다른 형태의 숫자로 변환
  • 다른 자료형문자로 변환
  • 문자다른 자료형으로 변환

문자 → 자료형으로 바꾸는 방식

대표적으로 3가지 방법이 존재

  • Convert 클래스 이용
  • Parse() 함수 이용
  • TryParse() 함수 이용

Convert 함수 

Convert 함수를 이용하여 각각의 자료형으로 변환하는 방법

string StrTen = "10";
int xTen = Convert.ToInt32(strTen);
float yTen = Convert.ToSingle(strTen);

string StrB = "true";
bool B;
B = Convert.ToBoolean(StrB);

 

parse 함수

parse 함수를 이용하여 각각의 자료형으로 변환하는 방법

string strSix = "6.2";
int strSix = int.parse(strSix);
float strSix = float.parse(strSix);

 

convert.Toint32함수와 int.parse 함수의 순서 주의할것

 

두 함수의 차이점

  • int.parse()함수 String형 변환 가능, char형은 불가능
    변환하려는 변수가 정수임이 확실할 때 사용
    null값을 변환하면 ArgumentNullException 예외 발생
  • Convert.ToInt32()함수는String, char형 둘다 변환 가능, null값을 변환하면 0값을 반환

 

Asset Store에서 무료 쿠폰 적용하여 케라토사우로스(Ceratosaurus) 구매 완료 했습니다.

Unity를 이용해 만든 프로젝트

/ 서비스명 장류,분류 제작사
첫 번째 프로젝트 길건너친구들 액션 어드벤처 Hipster Whale
두 번째 프로젝트 시티즈 : 스카이라인 건설 경영시뮬레이션 Colossal Order
세 번째 프로젝트 폴가이즈 배틀 로얄 Media Tonic
네 번째 프로젝트 Getting Over It 플랫폼 Bennett Foddy
다섯 번째 프로젝트 데이브 더 다이버 경영 시뮬레이션, 액션 어드벤처, ARPG MINTROCKET, NEXON

 

위 프로젝트들의 공통된 특징이 있나요?

게임 프로젝트 상의 공통된 특징은 없는것 같다.  장르도 경영 시뮬레이션, rpg, 액션, 롤플레잉 등 다양한것 같다.  다양한 플랫폼을 지원하고 UI가 보기 쉬운점은 공통점인것 같다. 

 

여러분이 생각하는 Unity의 강점은 뭐라고 생각하나요?

1) 윈도우, 모바일, 콘솔, mac 등 다양한 플랫폼에 게임 배포 가능

2) 인터페이스가 직관적인 편이여서 이용자가 유니티를 이용하거나 수정할 때 접근성이 좋은 것 같다.

3) 같은 엔진을 사용한 게임이라고 느껴지지 않을 정도로 다양한 종류의 게임 개발이 가능하다.

 

여러분은 Unity를 이용해 어떤 게임을 만들어보고 싶으신가요?

  • 장르 : 2D 도트 RPG
  • 특징 : 도트 게임 특성상 뛰어난 그래픽은 아니지만 직관적으로 보기 편하고 이용자가 언제 어디서든 쉽게 접속 가능 
  • 그 이유는? : 옛날 레트로 감성으로 재미있는 게임을 만들고 싶다. 

 

+ Recent posts