no image
[Unity] 인스펙터에 요소들 카테고리로 묶어서 표출하기
코드 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class InspectorFieldTest : MonoBehaviour { [System.Serializable] public class InspectorComponent { public Button createButton; public Image backgroundImage; } public InspectorComponent inspectorComponent; } 결과이미지 위 처럼 코드를 짰을 때, 관련있는 요소들끼리 묶어서 인스펙터에 보여줄 수 있도록 만들 수 있다.
2021.11.14
no image
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘(4) / 미로 준비, Binary Tree 미로 생성, Side Winder 미로 생성
맵 만들기 소스코드 class Board3 { const char CIRCLE = '\u25cf'; public TileType[,] _tile; // 배열 public int _size; public enum TileType { Empty, Wall, } // 배열 초기화 public void Initialize(int size) { _tile = new TileType[size, size]; _size = size; for (int y = 0; y < _size; y++) { for (int x = 0; x < _size; x++) { if (x == 0 || x == size - 1 || y == 0 || y == size - 1) _tile[y, x] = TileType.Wall; else _ti..
2021.10.21
no image
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘(3) / 선형 자료 기초
배열, 동적 배열, 연결 리스트 비교 프로그래밍은 데이터를 저장하고, 그것을 꺼내서 잘 활용하는 것이 게임이고 프로그래밍인 것이다. 자료 구조는 크게 선형 자료구조와 비선형 자료구조로 나눌 수 있다. 선형 구조 : 자료를 순차적으로 나열한 형태 배열 연결 리스트 스택 / 큐 비선형 구조 : 하나의 자료 뒤에 다수의 자료가 올 수 있는 형태. 트리 그래프 ex) 파일구조 자료구조와 알고리즘을 공부할 때 자료구조와 알고리즘은 책으로 복잡하게 외우는 것은 쓸모가 없다. 애초에 이 학문은 실생활 문제를 해결하고 도움을 주기 위해 발전한 학문이기에, 최대한 현실상황에 맞게 생각을 하면서 어떤 식으로 언제 활용할 것인지 공부하는 것이 오래 남는다. 배열 - 사용할 방 개수를 고정해서 계약하고 (절대 변경 불가) -..
2021.10.02
no image
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘(2) / 환경설정
환경설정 모든 게임은 입력 로직 렌더링 이 세 개를 계속 반복하는데, 입력단계는 정말 마우스나 키보드의 모든 인풋을 감지하는 거고, 이 인풋을 감지해서 로직을 실행하는 것이다. 인풋에 따라 연산된 아니면 게임AI의 로직들을 다 실행한다음에 최종적으로 연산된 게임세상을 렌더링을 통해서 이쁘게 그려주는 것임. 모든 게임은 이 세 가지 단위로 이루어진다. 온라인 게임은 그냥 게임 로직을 연산하는 부분이 서버에서 이루어진다의 차이가 있다. 로컬과 온라인의 큰 차이가 있진 않음. 네트워크 통신을 통해서 로직의 결과를 주고 받는다. --- 프레임 관리를 알아보자. 60프레임 정도면 OK. 30프레임 이하면 뚝뚝 끊기는 상황이 발생하면서 부드럽지 않게 표현이 될 것이다. 프레임은 단지 위 이미지의 루프가 1초에 몇번..
2021.10.02
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘(1) / Big-o 표기법
Big-O 표기법 BIG - O 표기법 1단계 : 대략적인 계산 - 수행되는 연산(산술, 비교 대입 등)의 개수를 '대략적으로'판단 BIG - O 표기법 2단계 : 대장만 남긴다. 규칙1) 영향력이 가장 큰 대표 항목만 남기고 삭제 규칙2) 상수 무시 (ex. 2N => N) O(1 + N + 4 * N^2 + 1) 이런식으로 나와도 N^2임. 근데 이러한 표기 때문에 사실 같은 O(N)이라도 속도가 다를 수 있다는 것도 염두에 두고 있어야 함. O(4 * N^2) => O(N^2) O는 Order Of라고 읽는다. 재귀함수같은 경우엔 좀 복잡할 수 있지만, 대부분의 경우에는 산출하기 쉽다. 빅오 표기법의 의미? => 데이터가 늘어남에 따라 어떤 식으로 연산량이 증가하는 지 알고 싶은 것. N^2은 워낙..
2021.09.29
[유니티 라이브] 메탈릭 차일드 정리(1)
보호되어 있는 글입니다.
2021.09.26
no image
유니티에서 사용한 수식 모음
1. 슬라이더로 각도 조정하기 사용한 코드 angleRotation = rotationSlider.value * (max - min) + min; rotationSlider.value는 0과 1사이의 float값을 가진다. 나의 상황에서는 물체의 각도를 0~360로 조정할 수 있어야 했다. 예를 들어, 슬라이더의 값을 0.5를 두면 각도를 180도로 만들고 싶다면 0.5 * 360(총 회전가능한 각도)를 하면 된다. 만약, 각도의 범위가 180~360에서 270도를 슬라이더로 구해내고 싶으면 다음과 같이 계산하는 식을 거친다. 180 = min 360 = max 위와 같이 max와 min값을 설정하고 max-min을 통해 총 회전가능한 각도를 구하고, 슬라이더값을 0.5로 둔다. 그러면 90의 값이 나오..
2021.09.25
no image
[Unity] 유니티 디버깅 하는 방법 (Visual Studio)
1. 유니티 스크립트 에디터 설정 1. Edit -> Preference -> External Script Editor로 들어가서 Visual Studio를 스크립트 에디터로 설정. 위 과정을 거치면 유니티와 Visual Stduio의 연결이 됩니다. 위 처럼 Unity에 연결이 뜨면, 유니티와 Visual Studio의 연결이 제대로 된 것입니다. 2. 디버깅 하기 전 설정 1. Visual Studio에서 Break Point를 설정해줍니다. 왼쪽 이미지처럼 초록색 영역 부분을 클릭하면 오른쪽 이미지 처럼 "빨간색 점"이 찍히는 것을 확인할 수 있습니다. 이것을 브레이크 포인트(중단점)이라고 합니다. 보통 문제가 있는 부분이라고 생각되는 라인, 동작 결과가 어떻게 되는지 보고 싶은 라인을 중단점으로 ..
2021.09.04
no image
[Unity 문제해결] AddComponent 후 프리팹 참조할 때 null.
AddComponent 후 인스펙터에 연결해놓은 프리팹을 참조하려 했는데 계속 null이 떴다. 코드와 인스펙터는 다음과 같다. void Start() { findGameObject = GameObject.Find("EntireGeneratorManager"); monsterGenerators = new MonsterGenerator[2]; monsterGenerators[(int)MonsterType.Goblin] = findGameObject.AddComponent(); monsterGenerators[(int)MonsterType.Slime] = findGameObject.AddComponent(); } AddComponent를 사용하여 새로운 컴포넌트를 추가해주었기에 기존에 인스펙터 창에 연결해놓..
2021.08.23