너무 지쳐서 일주일정도 개발 아예 안하다가, 오늘 다시 시작했음
우선 예전에 말했던 프리셋 생성 툴부터.
이건 별개의 씬에 진짜 대충 만들었음. 나 편하려고 만든거라
여기서 생성한걸 파일로 저장하고, 나중에 맵 생성할 때 그 파일을 불러와서 나무를 추가한다거나 집을 추가한다거나 할 수 있음
그리고 텍스쳐를 분리해서 관리하도록 바꿈
기존에는
이런식으로 텍스쳐를 만들어줬는데,
이제 블록의 면마다 따로 png를 구해두고, 게임 실행 후 합쳐서 메테리얼에 등록시켜줬음.
Texture2D.PackTextures 하면 넣어준 텍스쳐 배열에 따라 대응되는 uv좌표의 배열을 반환해줌.
모든 블록에는 4개의 텍스쳐가 있다고 가정했음.
위, 아래, 옆1, 옆2
이렇게 해서 그냥 ID에 4를 곱하고 0을 더하면 위, 1을 더하면 아래, 2를 더하면 옆1, 3을 더하면 옆2,
이런식으로 ID와 면을 알면, 한번에 uv좌표에 접근이 가능하게 설계함
그리고 블록의 회전이 가능하도록 바꿈.
나무를 추가하려보니 마인크래프트에서는 나무를 눕혀서 설치가 가능하다는게 계속 맘에 걸려서.
우선 오늘은 되게 제한적으로 추가했음. 내 뇌가 버티질 못해서
x축회전, y축회전, z축회전 딱 이 세가지만.
어차피 위 아래가 대칭되는 텍스쳐가 될테니, 같은 축 회전이면 어느 방향으로 회전하느냐는 문제가 되지 않다고 판단함.
지금와서 생각하면 바보같이 텍스쳐를 입히는 코드 내에서, 머릿속에서 이쪽면을 90도 회전하냐, 위아래를 뒤집냐 등을 판단하려고 했던게 문제였음.
대체 어느 면이 어느 상황에 어느 방식으로 회전해야 하지?? 이렇게 회전했다면 좌표는 어떻게 되지?? 코드 내에서 판단하려니 뇌에 과부하가 와버림
시행착오를 거치면서 해내긴 했는데, 아무리 생각해도 이거때문에 코드가 내 통제를 벗어났다는 느낌을 지울수가 없었음.
내일 좀 더 깔끔하게, 미리 다른 구조체에다가 어떤경우에 어떤식으로 uv를 추가할 지 정의해두고 그거 가져오는 방식으로 업그레이드 하려고
그러니깐, 머릿속으로 끙끙대지 말고, 실제 경우에 맞는 데이터를 미리 생성해두고 그걸 사용하도록.
이참에 3개의 회전 말고, 12개의 회전에 전부 대응하는것도 나쁘지 않을것 같음
내가 귀찮아지겠지만 ㅋㅋ
12개의 경우에 대해 각각 6면의 uv좌표 순서를 잡아줘야겠지
이럴때마다 지능높은 사람들이 너무 부러움. 왜이리 헷갈리는걸까
그리고 마지막으로 앞으로 만들 게임에 대해 대략적으로 정리를 해봤음
멸망하기 시작하는 세상.
아직 지상이 안전할 때, 지상에서 파밍 후, 지하로 내려가야 한다.
지상에서만 존재하는 자원을 챙기지 못했다면 나중에는 영영 보지 못한다.
지하에서 광물을 캐고, 농사를 짓고 생존하며, 기술을 발전시킨다.
발전된 기술로 다시 세상밖으로 나와서, 더욱 발전하고 살아남는다.
화산이 폭발하며 점점 세상은 어두워진다.
지진이 발생하며 땅이 갈라진다.
허리케인이 발생하며 진행 경로의 블록이 파괴되거나 날아간다
운석이 충돌해서 지역을 초토화 시키는 대신 새로운 자원, 외계 생명체가 들어온다.
산소호흡기 없이는 지상에 올라올 수 없다.
지상에서는 강도가 충분히 높은 건축블록이 아니라면 건물이 쉽게 파괴된다
재해들이 잠잠해지면 긴 빙하기가 찾아온다.
세상 전체가 어두워지고 온도가 급격히 내려간다
이 시기에는 외계 생명체들의 공격이 굉장히 잦아진다.
빙하기가 끝나고, 따뜻한 햇살이 들어오며 게임이 끝난다
학교도 다녀야 하고, 최소 2~3년 바라보고 있음
어쩌면 그 사이에 군대도 가야할지도 모르고 ㅋㅋ
취미로 만든다는 마음가짐으로 천천히 할듯.
이런 블럭게임 만들때 블럭 좌표기준이 블럭중심임? 아니면한쪽구석임?
케바케 타일 형식은 사람마다 다른데 나같은경우 왼쪽 앞 아래를 0,0,0 으로 잡음
유니티로 이런게임 만들때 주의해야 할 게 저거 폴리곤 하나라도 늘어나면 바로 엔진 터질거임
어떤식으로 만든건진 모르겠지만 기본으로 주는 콜리더 계열 쓰면 안됨