남민우의 공부 블로그

고정 헤더 영역

글 제목

메뉴 레이어

남민우의 공부 블로그

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (106)
    • 내일배움캠프 학습 (51)
      • HTML (7)
      • SQL (10)
      • JavaScript (13)
      • Node.Js (8)
      • 진행 프로젝트 (10)
      • 네트워크 (2)
      • TCP Echo Server (1)
    • 유니티 학습 (22)
      • 세미나 자료 (17)
      • C#과 유니티 (5)
    • 언리얼 학습 (0)
    • 게임 이야기 (1)
      • 로스트 아크(Lost Ark) (1)
    • 프로그래밍 및 언어 (28)
      • 코딩 테스트 문제 (17)
      • 자료구조 학습 (11)
    • 개인 일상 (1)

검색 레이어

남민우의 공부 블로그

검색 영역

컨텐츠 검색

분류 전체보기

  • 내적(Dot Product)과 외적(Cross Product)

    2026.04.11 by 남민우_

  • Unity의 생명주기(Life Cycle)

    2026.04.11 by 남민우_

  • 렌더링 최적화 기법

    2026.04.04 by 남민우_

  • DrawCall(드로우콜)과 렌더링 최적화

    2026.04.04 by 남민우_

  • 박싱(Boxing), 언박싱(UnBoxing)

    2026.04.03 by 남민우_

  • [C++] 파괴되지 않은 건물 - 프로그래머스

    2025.10.22 by 남민우_

  • [C++] 요격 시스템 - 프로그래머스

    2025.10.22 by 남민우_

  • [C++] 타겟 넘버 - 프로그래머스

    2025.10.02 by 남민우_

내적(Dot Product)과 외적(Cross Product)

내적과 외적의 필요우리가 게임 개발을 하다 보면 몬스터의 행동 패턴을 설계하는 경우가 있다. 몬스터가 플레이어를 추적하면서 자동으로 쫓아오게 만들어야 한다고 할 때, 어느 방향으로 경로를 설정하여 회전할지 계산해야 할 것이다.혹은 몬스터와의 전투 과정에서 헤드 어택, 혹은 백어택 등을 성공하면 추가 데미지를 입히는 시스템이 있다고 생각해보자. 이 경우 정확한 판정을 위해서 플레이어의 방향과 몬스터의 방향을 비교하며 계산해야 할 것이다. 이러한 상황에서 내적과 외적을 알맞게 사용하여 정확한 판별 로직을 설계할 수 있다는 점에서 내적과 외적이 정확히 어떤 의미인지, 어떤 식으로 계산되는지 혹은 어떻게 활용할 수 있을지 알고 있으면 큰 도움이 될 것이다. 정확한 계산 방식은 깊게 다루기에 내용이 깊어져 링크를..

유니티 학습/C#과 유니티 2026. 4. 11. 17:49

Unity의 생명주기(Life Cycle)

생명주기(Life Cycle)이란?Unity 스크립트를 실행하면 각 함수가 정해진 주기에 맞춰서 Unity 시스템에 의해 호출되는 것을 알 수 있다.이처럼 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행되며, 각 이벤트 함수가 실행 시퀀스에 어떻게 포함되는지에 대한 과정을 생명주기라고 말할 수 있다. https://docs.unity3d.com/kr/2019.4/Manual/ExecutionOrder.html 이벤트 함수의 실행 순서 - Unity 매뉴얼Unity 스크립트를 실행하면 사전에 지정한 순서대로 여러 개의 이벤트 함수가 실행됩니다. 이 페이지에서는 이러한 이벤트 함수를 소개하고 실행 시퀀스에 어떻게 포함되는지 설명합니다.docs.unity3d.comUnity 공식 문서를 확인하면 이러한 ..

유니티 학습/C#과 유니티 2026. 4. 11. 01:19

렌더링 최적화 기법

이 포스팅은 이전 'DrawCall(드로우콜)과 렌더링 최적화' 에 이어서 작성된다.2026.04.04 - [유니티 학습/C#과 유니티] - DrawCall(드로우콜)과 렌더링 최적화 DrawCall(드로우콜)과 렌더링 최적화DrawCall(드로우콜)이란?모든 게임 프로젝트를 진행하다보면, 혹은 게임을 플레이 할 때면 화면에 각종 오브젝트가 그려지고 화려한 그래픽이 보일 것이다.이 그래픽 관련해서는 GPU, 그래픽카드가puudding.tistory.com 1. Static Batching정적 Batching, 말 그대로 움직이지 않는 오브젝트들을 대상으로 이루어지는 최적화다.Unity에서 이 Static Batching 을 사용하려면 오브젝트에 Static 체크가 필수이다. 그 방법으론, Material..

유니티 학습/C#과 유니티 2026. 4. 4. 19:11

DrawCall(드로우콜)과 렌더링 최적화

DrawCall(드로우콜)이란?모든 게임 프로젝트를 진행하다보면, 혹은 게임을 플레이 할 때면 화면에 각종 오브젝트가 그려지고 화려한 그래픽이 보일 것이다.이 그래픽 관련해서는 GPU, 그래픽카드가 관여한다는 것에 대해서는 다들 알고 있을텐데, 이 때 CPU가 GPU한테 이 오브젝트를 그려라! 라고 명령하는 행위를 DrawCall 이라고 한다. 그리는 행위 자체는 GPU가 수행한다고 해도, 어떤 것을 그릴지, 어떻게 그릴지에 대해서는 GPU가 결정하지 않는다.이 현재 프레임에 어떤 것(Mesh)을 그려야 할지, 어떻게(Material) 그려야 할지를 정하고 명령을 내리는 것이다.이때 하나의 Mesh 와 하나의 Material 대상으로 한 번의 호출이 발생하는데, 이 과정이 많은 자원을 소모한다고 한다. ..

유니티 학습/C#과 유니티 2026. 4. 4. 17:56

박싱(Boxing), 언박싱(UnBoxing)

시작하기에 앞서Boxing 박싱 / UnBoxing 언박싱은 먼저 권장해서 사용하는 기능이 아니라, 언어의 하위 호환성과 타입 시스템의 일관성을 유지하기 위한 보루로 존재한다는 것을 알고 가야 한다.C# 1.0 시대의 기준에 맞춰져 만들어진 기법이기에 현대에 Generics 이 도입이 되면서 박싱/언박싱을 사용하지 않는 방법들로 많이 개편이 되었지만, C#의 기본 철학과 연결된 것인 만큼 인터페이스-구조체 혼합 사용이나 런타임 내 복합 타입 처리에 대한 과정 등때문에 완벽하게 사용하지 않는 경우는 불가능하다.따라서 이러한 박싱/언박싱에 대해 학습하는 것은 언제 발생하는지 알고, 이를 최소화 하는 설계를 하기 위함이다. 박싱 (Boxing)박싱이란, 값 형식을 참조 형식으로 변환하는 것을 말한다. C# 에..

유니티 학습/C#과 유니티 2026. 4. 3. 13:57

[C++] 파괴되지 않은 건물 - 프로그래머스

문제제한 사항입출력 예시 풀이int solution(vector> board, vector> skill){ vector> diff(board.size()+1, vector(board[0].size() +1, 0)); // 누적합 연산 for (const vector& cnt : skill) { int type = cnt[0]; int r1 = cnt[1]; int c1 = cnt[2]; int r2 = cnt[3]; int c2 = cnt[4]; int degree = cnt[5]; long long d = (type == 1) ? -(long long)degree : (long long)degr..

카테고리 없음 2025. 10. 22. 13:49

[C++] 요격 시스템 - 프로그래머스

문제제한 사항입출력 예시 및 설명 풀이#include // a 와 b 의 end 오름차순 비교bool compare(const vector& a, const vector& b){ return a.back() > targets) { int answer = 0; // 구간 별 end 기준으로 오름차순 정렬 sort(targets.begin(), targets.end(), compare); // 첫 요격의 끝점을 last로 지정 // 다음 구간의 start가 이전 last보다 작으면 같은 요격으로 처리 // 크면 새 요격으로 처리, answer +1, last 교체 int last = INT_MIN; for (const vector& target : target..

카테고리 없음 2025. 10. 22. 12:40

[C++] 타겟 넘버 - 프로그래머스

문제제한 사항입출력 예시 및 설명풀이#include using namespace std;int answer = 0;void method(const vector& numbers, int i, int sum, const int& target){ if (i == numbers.size()) { if (sum == target) answer++; return; } method(numbers, i + 1, sum + numbers[i], target); method(numbers, i + 1, sum - numbers[i], target);}int solution(vector numbers, int target) { method(numb..

카테고리 없음 2025. 10. 2. 19:06

추가 정보

인기글

최신글

페이징

이전
1 2 3 4 ··· 14
다음
TISTORY
남민우의 공부 블로그 © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바