| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
- 입출력과 사칙연산
- 게임 수학
- 김진홍 옮김
- 메타버스
- The Elements of Computing Systems 2/E
- 잡생각 정리글
- 생능출판
- booksr.co.kr
- BOJ
- C++
- Shimon Schocken
- https://insightbook.co.kr/
- 알고리즘
- hanbit.co.kr
- 데이터 통신과 컴퓨터 네트워크
- C#
- 주우석
- 밑바닥부터 만드는 컴퓨팅 시스템 2판
- 이득우의 게임수학
- Noam Nisan
- (주)책만
- 이득우
- 백준
- HANBIT Academy
- JavaScript
- 일기
- C
- 전공자를 위한 C언어 프로그래밍
- 박기현
- unity6
- Today
- Total
목록C# (16)
cyphen156
맨 처음 자료구조를 선택할때 Uint Key, Type Asset의 유형으로 딕셔너리 자료구조를 선택햇다.Key가 순차적으로 들어온다는 보장이 없고, 동일한 애셋 유형끼리 관리하기 위해 당연한 것이엇다.근데 이 애셋 유형별 딕셔너리를 스위치로 분기하자니 딕셔너리가 늘어날때마다 함수가 늘거나, 스위치 분기가 늘어나는게 귀찮았다. 그래서 딕셔너리의 포인터 배열로 관리하면 빠른 접근이 가능하지 않을까? 햇다.그래서 나온것이 Dictionary[] domains라는 딕셔너리의 배열이다. 근데 이렇게하면 타입 안정성이 object 유형이라 뭐든 죄다 캐스팅해버린다. Dictionary가 object 를 상속받는 자료구조이기 때문에 사용가능하긴 한데 쓰는 입장에서 Dictionary가 아니라 ArrayList, H..
C#에서 한정자 사용할때 항상 드는 생각 C++의 friend 키워드 ResourceManager에서 Get메서드는 오픈하고, Load, Unload는 ContentManagementSystem에게만 개방하고 싶은 욕구가 들었다.private, public, protected, internal 모두 좋은데... internal은 어셈블리 분리하지 않으면 의미없고public은 너무 오픈형이고, private는 너무 제한적이다.특정 클래스에게만 특정함수를 개방하는 방법은 여러가지가 있긴한데..모두 하나같이 아쉽다.C#에서는 다음과 같이 특정 함수를 특정 클래스 에게만 개방할 수있다.1. 어셈블리 분리하기가장 확실한 방법이다. 문제는 파일 경로 구조가 어셈블리 단위에 고정되어 버린다는것 논리적으로 같은 네임스..
요새 스컬 프로젝트를 만들고 있데, 벌써 2주일째 머리싸매고 있는 기능인 콘텐츠 동적 배칭 시스템에 대한 고민글이다.이중 가장 처음 들어가야하는 핵심 로직 중 하나인 매니페스트 검증 로직에 대해 정리하고자 한다.대충 이게 왜 필요해 졌냐면 월드 내의 모든 오브젝트 까지는 아니지만 정적 배치되는 맵을 제외한 거의 대부분의 오브젝트들을 내가 만드는 도메인 체계 안에 포함시키고 싶었고, 이를 통해 클라이언트 측의 리빌드 & 배포 과정 없이 서버에서의 카탈로그 & 매니페스트 수정을 통해 콘텐츠를 동적으로 수정하여 적용시키고 싶었기 때문이다.즉, 콘텐츠 변경의 책임을 클라이언트 빌드가 아니라 서버의 데이터 상태로 옮기고자 한 것이다.장점과 단점이 접근 방식의 장단점은 비교적 분명하다.장점우선 기본 콘텐츠를 제외하..
사실 이 글을 C# 언어 카테고리에 둘지, 아니면 유니티 엔진 카테고리에 둘지에 대해 고민을 좀 했다.이유는 같은 비동기(async/await) 문법을 쓰더라도유니티 엔진에서는 자체적으로 언어 차원의 제약을 넘어서 자체적으로 비동기 처리를 핸들링하는 방법이 따로 있기 때문이다.대표적으로 Coroutine, AsyncOperation, Addressables이 있다.하지만 본질적으로 비동기 문법 자체는 언어 레벨에서 정의된 개념이다.Unity는 그것을 엔진 구조에 맞게 커스터마이징한 구현체일 뿐이다.그래서 이 글은 Unity 기술 문서라기보다는, 언어 차원에서 ‘동기와 비동기’가 무엇이고 어떻게 작동하는가를 고찰하는 쪽에 가깝다.글을 쓰게 된 계기Unity에서 실제 외부 네트워크를 고려해서 Addressa..
배틀로얄짬뽕 - ProjectK탑뷰 배틀로얄에서 긴장감 있는 전투 경험을 제공하기 위해,시야 시스템과 유저 입력 제어를 구성한 프로젝트입니다.프로젝트 소개Unity 6 기반 탑뷰 캐주얼 배틀로얄입니다.제한된 시야 속에서 아이템을 파밍하고 탐색과 교전을 반복하며 최후의 생존자가 되는 것을 목표로 합니다.발표 당일 동일 LAN 환경에서 Host 1, Client 19 구성으로 총 20인 동시 플레이를 검증했습니다.팀 구성 : 오융택(팀장/본인), 박광호(팀원), 이정균(팀원), 이재훈(팀원)개발 기간 : 2025.05.12 ~ 2025.05.29 (18일)GitHub : cyphen156/ProjectK기술 스택 : Unity 6 · C# · Netcode for GameObjects수행 역할플레이어 시야 ..
AR Baseball Simulation모바일 AR 환경에서 발생하는 입력 편차를 제거하고 일관된 물리 결과를 만들기 위해,입력 정규화와 물리 변환 구조를 설계한 프로젝트입니다.프로젝트 소개Unity AR Foundation 기반 모바일 야구 시뮬레이션으로, 실제 공간에 경기장을 배치하고 투수·타자 모드로 플레이합니다.팀 구성 : 황해원(팀장 / AR 인식), 오융택(본인 / 게임 시스템 및 야구 로직)개발 기간 : 2025.06.16 ~ 2025.06.27 (12일)기술 스택 : Unity 6 · C# · AR Foundation · Unity Input SystemGitHub : cyphen156/ARBaseBallGame수행 역할팀 프로젝트로, 야구 게임 로직과 시스템 전반을 담당했습니다.입력 파이..
균형잡힌 세상문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다.모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다.모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다.모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다.모든 괄호들의 짝은 1:1 매칭만 가능하다. 즉, 괄호 하나가 둘 이상의 괄호와 짝지어지지 않는다.짝을 이루는 두 괄호가 있을 때, 그 사이에 있는 문자열도 균형이 잡혀야 한다.앞서 푼 괄호의 응용문제이 문제는 C와 C#으로 풀어놓은 것이 있어 이것도 같이 공유하겠다.제약사항온점이 들어오면 문자열은 끝난다.0 첫번째 문자 입력이 '.'이라면 루프 종료주의 사항..
namespace _25._04._01_Divide_conquer{ internal class Program { static void Main(string[] args) { string str1 = "Hello"; string str2 = "Hello"; if (str1 == str2) { Console.WriteLine(); } string str3 = str1; } }}만약 다음과 같은 코드가 있다고 생각해보자str1과 str2의 주소는 서로 다르지만 값은 같은 것을 가리키고 있다. 그리고 이 문자열 "H..