no image
[Unity] 변수를 초기화 하는 시기 / 이에 따른 List초기화에 관한 것
변수의 초기화 시기 변수의 초기화 순서 선언의 일부로 할당된 값이 먼저 설정됩니다. 값은 인스펙터의 모든 항목에 의해 재정의됩니다. 값은 Awake의 모든 항목에 의해 재정의됩니다. 값은 Start에 의해 재정의됩니다. 값은 스크립트에서 나중에 설정되는 값으로 재정의됩니다. Start는 다른 스크립트의 값에 액세스할 때 안전한 첫 번째 지점입니다. 테스트 위 변수의 초기화 순서에 따라 번호를 매기고, 순서대로 테스트를 진행해봅니다. 1번 테스트 위 처럼 firstInitVar의 선언 부분에서 변수에 값 3을 대입해주면, 당연히 Log값에는3이찍히게 됩니다. 1, 2번 테스트 위 처럼 (1)코드에서 값을 대입해주고, (2)인스펙터에서 값을 설정해주면 인스펙터에서 설정된 값이 제일 마지막에 초기화되어 값이 ..
2022.01.13
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