inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

풀소스를 올려주세요.

해결됨

[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)

소스 안올려주셔도 됩니다. 라이라에 다 있었네요. ;;

  • c++
  • unreal-engine
real7300 댓글 4 좋아요 0 조회수 414

런타임에서 texture2d를 만들었을떄 압축 옵션 적용

미해결

코드로 이미지 파일을 decompress RawData로 가져와서 FImage를 확보하고, 이거를 Texture2D로 변환하는데 메모리를 아끼려고 압축옵션을 적용해도 변화가 없습니다. 런타임중에 직접 texture2d를 생성하고 UpdateResource() 를 호출하여 최종 적용했을 때, 미리 설정한 압축 옵션이 작동되게 하는 방법이 무엇인가요??? 압축옵션 뿐만 아니라 mipmap, 그룹 옵션 등등 작동이 안됩니다. (런타임 중)

  • ue5
  • c++
themoon007 댓글 1 좋아요 0 조회수 226

1062 - 가르침 맞왜틀

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 코드 참고하면서 풀어봤는데 예시는 맞고 통과를 하지 못하는 상황입니다. 저는 입력으로 온 문자열에 a, n, t, i, c를 제외하고 저장을 시키고 비트가 [k개에서 해당 문자 수 5를 뺀만큼] 켜졌을 때 ret을 구하는 방법으로 풀어봤습니다 어느 부분이 잘못되었는지 알 수 있을까요? 감사합니다! http://boj.kr/0fd6dc2e0f754f30bb6f726111359f97

  • c++
  • 코딩-테스트
toyboy0113 댓글 2 좋아요 0 조회수 110

7-R 질문있습니다 :)

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 🙂 너무 좋은 아이디어 제공해주셔서 감사합니다 ^^ 선생님 강의를 보기 전에 먼저 풀어봤는데요, DP방식이 아닌 1차원 배열로 설계했습니다. S = E일 경우에는 숫자가 1개밖에 되지 않기 때문에 팰린드롬O arr[S]과 arr[E]가 같지 않을 경우에는 팰린드롬X 그 외의 경우는 함수처리 위와 같이 설계를 하였고, 테스트케이스는 올바르게 출력이 되었습니다. 하지만 틀렸다고 하더라구요 ㅠㅠ 제 아이디어의 어디가 잘못되었는지 알려주시면 정말 감사하겠습니다 ㅎㅎ http://boj.kr/ddee46587ca14173a4cd344a40b25894

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 83

ModularGameplay 순서 관련 질문 드립니다.

미해결

[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)

아래와 같은 지점에서 저는 문제가 발생을 계속 하고 있는데 혹시 이유를 알수 있을까요?? 모듈러 로그를 활성화 하여 ContinueInitStateChain 쪽 로그 입니다. LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized LogModularGameplay: Verbose: ContinueInitStateChain: Transitioning B_SimpleHeroPawn_C_0:PawnExtension (role 3) from InitState.DataAvailable to InitState.DataInitialized LogModularGameplay: Verbose: ContinueInitStateChain: Transitioning B_SimpleHeroPawn_C_0:PawnExtension (role 3) from InitState.DataInitialized to InitState.GameplayReady LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized LogModularGameplay: Verbose: ContinueInitStateChain: Cannot transition B_SimpleHeroPawn_C_0:Hero (role 3) from InitState.DataAvailable to InitState.DataInitialized Cannot transition 이 발상한 조건문 체크는 // DataAvailable -> DataInitialized if (CurrentState == InitTags.InitState_DataAvailable && DesiredState == InitTags.InitState_DataInitialized) { // PawnExtensionComponent가 DataInitialized될 때까지 기다림 (== 모든 Feature Component가 DataAvailable인 상태) //return CLMPS && Manager->HasFeatureReachedInitState(Pawn, UCLMPawnExtensionComponent::NAME_ActorFeatureName, InitTags.InitState_GameplayReady); return CLMPS && Manager->HasFeatureReachedInitState(Pawn, UCLMPawnExtensionComponent::NAME_ActorFeatureName, InitTags.InitState_DataInitialized); } 라이라 원본으로 정상 작동을 진행하는데 코드를 몇번을 수정을 하여도 진척도가 없는데 혹시 원인을 알수 있을까요? InitState_GameplayReady 태그를 사용할 경우에는 정상 동작 합니다..

  • c++
  • unreal-engine
Walnut 댓글 2 좋아요 0 조회수 231

visual studio 2022에서 언리얼5 코드 smart하게 작성하는 방법

해결됨

[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)

강사님 화면의 visual studio에서는 간단하게 헤더파일 #include "HakGame/Character/HakPawnExtensionComponent.h" 등 이 즉시 추가 되더라구요. 그렇게 슉슉 추가할 수 있는 방법이 궁금합니다.

  • c++
  • unreal-engine
junyeongbigdata 댓글 2 좋아요 0 조회수 263

메모이제이션을 사용한 TSP 문제에서 계산을 생략하는 원리

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. TSP 문제를 동적 계획법(DP)과 메모이제이션으로 풀 때, 이미 방문한 경로의 최적 비용을 어떻게 활용하여 계산을 생략하는지 궁금합니다. 구체적으로는, dp 테이블을 사용해 한 번 계산한 경로에 대한 비용을 저장하고, 이후에 같은 경로를 다시 탐색할 때 그 값을 재사용하여 계산을 건너뛸 수 있는 원리 에 대해 설명 부탁드립니다. 제가 이해한 바로는, 미래 경로(마지막 인덱스를 찍고)에 대한 최적 비용이 이미 dp 테이블에 저장되어 있기 때문에, 더 이상 그 경로를 끝까지 가지 않아도 된다는 것입니다. 예를 들어, tsp(2, 7) 을 한 번 계산하고 나면, 다시 tsp(2, 7) 이 호출될 때 다시 계산하지 않고 dp[2][7] 에 저장된 값을 사용하는 방식입니다. (visited 7 에 해당하는 정점을 방문한 here = 2에서부터 시작해서 마지막까지 순회한 최적 비용을 이미알기 때문에) 이렇게 불필요한 계산을 패스함으로써 계산 속도를 크게 향상시킬 수 있다는 개념이 맞나요?

  • c++
  • 코딩-테스트
전수현 댓글 2 좋아요 0 조회수 185

질문 있습니다...

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

혹시 만약에 인벤토리을 관리할떄 서버가 아닌 클라에서 아이템 관리를 위해 아이템객체들을 전부 스마트포인터를 써야할지... 포션같은 소모아이템 떄문에 써야되지 않을까 하는데 너무 고민입니다. 현업에서도 GC를 적극적으로 사용을 하는지 서버가 있는데 AI 인공지능을 쓰는 경우가 있다면 어느 경우인지 이렇게 질문 3개입니다...

  • c++
  • unreal-engine
  • windows-server
댓글 2 좋아요 0 조회수 237

2-I 질문 있습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

이코드에서 우선순위 부분은 교안에서 어디서 볼 수 있을까요?!?!? bool cmp(string a, string b){ if(a.size() == b.size()) return a < b; return a.size() < b.size(); }

  • c++
  • 코딩-테스트
안창완 댓글 2 좋아요 0 조회수 78

콘솔창 특수문자 겹침

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

안녕하세요. [배열 실습] 강의 위와 같이 문자가 겹쳐서 나오는데 해결 방법 알 수 있을까요? 다른 분께서 올려주신 모든 글꼴 표시도 해보려고 했으나, 저장만 하면 체크가 해제되어서 적용이 되지 않습니다.

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
김민정 댓글 1 좋아요 0 조회수 264

7-F 시간초과 질문

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/ac47add1518f4832ac613b04e2c041ed 안녕하세요. dp를 구하는 과정에서 같은 시간복잡도인 재귀함수를 사용했는데 시간초과가 바로 나버려서 질문드립니다. for문으로 풀이해주신 부분의 시간복잡도도 O(n)인데 왜 시간초과가 나는지 모르겠습니다 ㅠ.ㅠ

  • c++
  • 코딩-테스트
김준 댓글 2 좋아요 0 조회수 105

클라이언트 강제 종료 시 플레이어 삭제 기능

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

안녕하세요 루키스님 part4 강의로 만들어진 서버와 part5에서 만들어진 클라이언트를 조금 수정해가며 추가 기능을 만들던 중 문제가 생겼는데 해결이 잘 안되어서 질문드립니다. 우선 추가하려는 기능은 강의에서 배운 Q를 눌러서 종료하는 기능 외에 플레이어(3명)들이 접속해있는 상태에서 언리얼 편집창을 닫아버렸을 때 3명 모두 접속이 끊어지며 플레이어들을 서버에서 제거해주는 기능을 추가하려고 합니다.. 이 때, 발생하는 문제는 player가 3명이고 objectId가 각각 1번부터 3번까지 있다고 했을 때, 어쩔 땐 player들 모두 제거되고, 어쩔 땐 player(2번), player(1번), player(1번)처럼 objectId가 1번인 플레이어를 제거하는 처리가 중복 호출되며 2번과 1번에 대한 삭제만 이루어지고, 3번에 대한 삭제가 이루어지지 않는 문제가 발생합니다. 아래는 작성한 코드입니다. 먼저 GameSession::OnDisconnected()의 맨 마지막 줄에 GRoom->DoAsync()로 Room::HandleLeavePlayer를 호출해주는 코드를 추가했고, 이 때 들어오는 player들의 objectId들을 확인해봤을 때 1, 2, 3 모두 중복 없이 들어오는 것을 확인했습니다. void GameSession::OnDisconnected() { if (player.load() == nullptr) { return; } cout << "objectId: " << player.load().get()->objectInfo->object_id() << endl; RoomRef room = player.load()->room.load().lock(); if (room == nullptr) { return; } GRoom->DoAsync(&Room::HandleLeavePlayer, player.load()); } 다음은 Room::LeaveRoom()에서 위에서 말한 상황일 때 파라미터로 들어오는 object가 중복으로 들어오는 걸 확인했습니다. if(!success) { return success; }는 이미 삭제된 object를 중복으로 RemoveObject(objectId)를 할 경우 false를 돌려주는데 밑에서 패킷 보내는 작업을 넘겨버리기 위해 추가했습니다. 그리고 코드 거의 마지막 부분에 GSessionManager.Remove(session)로 세션을 제거하는 코드를 추가했습니다. bool Room::LeaveRoom(ObjectRef object) { if (object == nullptr) { return false; } const uint64 objectId = object->objectInfo->object_id(); bool success = RemoveObject(objectId); if (!success) { return success; } // 퇴장할 플레이어에게 퇴장 패킷 전송 if (object->IsPlayer()) { PlayerRef player = static_pointer_cast<Player>(object); Protocol::S_LEAVE_GAME leavePkt; SendBufferRef sendBuffer = ClientPacketHandler::MakeSendBuffer(leavePkt); if (GameSessionRef session = player->session.lock()) { session->Send(sendBuffer); } } // 남아있는 플레이어들에게 퇴장 플레이어의 디스폰 패킷 전송 { Protocol::S_DESPAWN despawnPkt; despawnPkt.add_object_ids(objectId); SendBufferRef sendBuffer = ClientPacketHandler::MakeSendBuffer(despawnPkt); Broadcast(sendBuffer, objectId); // 퇴장 플레이어는 이미 room에서 빠져나간 상태라 Broadcast 불가 if (object->IsPlayer()) { PlayerRef player = static_pointer_cast<Player>(object); if (GameSessionRef session = player->session.lock()) { session->Send(sendBuffer); GSessionManager.Remove(session); } } } return success; } GameSession 소멸자 virtual ~GameSession() override { cout << "~GameSession" << endl; player.store(shared_ptr<Player>()); } Player 소멸자 Player::~Player() { cout << "~Player" << endl; session.reset(); } 다음은 첫번째 실행 화면입니다. (실행 화면에 출력되는 줄이 뒤죽박죽이라 서로 다른 색으로 구별 해봤습니다..ㅠ) 연두색으로 묶은 범위는 언리얼 에디터를 1번 실행했다가 닫았을 때의 단위로 묶었습니다. 빨간색으로 밑줄 그어진 objectId: 숫자로 출력되는 부분은 GameSession::OnDisconnected()에서 출력하고 있고, 노란색으로 밑줄 그어진 Remove Objedct숫자로 출력되는 부분은 Room::RemoveObject()에서 objectId를 출력하고 있습니다. 첫번째 실행 화면에서는 처음 실행하고 바로 해당 문제가 발생했습니다. objectId: 3, objectId: 2, objectId: 1 순으로 중복 없이 잘 들어왔는데 Remove Object3, Remove Object1, Remove Object1 처럼 출력되었고, 2번 플레이어에 대한 제거가 되지 않았습니다. 때문에 두번째, 세번째 실행에서는 접속한 3명의 플레이어가 모두 잘 제거됨에도 처음에 제거되지 않은 플레이어 하나가 남아서 언리얼 에디터 실행 화면에 보이는 플레이어가 총 4명이었습니다. 다음은 두번째 출력 화면입니다. 두번째 실행 화면에서는 5번째가 되어서야 해당 문제가 발생했습니다. 그 전까지는 문제 없이 3명의 플레이어 모두 잘 제거되었습니다. 마찬가지로 objectId: 13, objectId: 14, objectId: 15로 들어왔고 Remove Object13, Remove Object15, Remove Object15로 실행되면서 13, 15번의 플레이어만 제거되고 14번 플레이어는 제거되지 않았습니다. 실제로 문제가 발생할 경우의 호출 스택을 따라가 봤을 때 OnDisconnected()에서 GRoom->DoAsync(&Room::HandleLeavePlayer, player.load())로 삭제 작업 예약 거는 것 까지는 플레이어가 중복 없이 잘 들어가는데 예약했던 Room::HandleLeavePlayer()가 호출되고 파라미터로 들어오는 플레이어의 objectId를 확인해보면 이미 삭제된 플레이어가 한번 더 들어오는 경우가 생기네요. 혹시 어떤 부분 때문일까요??

  • c++
  • unreal-engine
  • windows-server
100end 댓글 1 좋아요 0 조회수 255

선생님...대체 뭐떄문에 틀린지 모르겠어요..

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님.... 선생님 해설보기전에 스스로 풀어보고 내려는데 자꾸 12%에서 틀립니다. 백준에서 반례도 열심히 넣어봤는데.... 전부 다 제대로 동작합니다 ㅠㅠ 제 코드는 아래와 같습니다. IsPossible이라는 함수에서 이게 애초에 팰린드롬이 가능한지 아닌지 검사합니다. main에서는 팰린드롬이라면 count배열에 알파벳 갯수를 기록해두고 char 벡터에 NULL값 하나를 넣어서 생성해둡니다. 받은 문자열의 길이가 홀수라면, 가운데 글자를 미리 삽입해둡니다. 짝수라면 NULL양옆으로 알파벳순서대로 삽입합니다. 모든 과정을 마친 후 NULL을 삭제합니다. 출력합니다. 선생님...부탁드립니다..정말 오래고민했어요 ㅠㅠㅠ 선생님의 정답을 보기전에 꼭 해결해보고 싶어서, 이렇게 질문드립니다 //#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> #include <algorithm> #include <string> #include <cmath> #include <map> using namespace std; bool IsPossible(string s) { int count[26] = { 0 }; int len = s.length(); for (char c : s) { count[c-'A']++; } if (len % 2 == 0) { for (int i : count) if (i % 2 == 1) return false; } else { for (int i = 0; i < 26; ++i) if (count[i]%2 == 1) count[i]--; for (int i : count) if (i % 2 == 1) return false; } return true; } void PrintV(vector<char> c) { for (char i : c) { cout << i; } } int main() { string s; cin >> s; if (IsPossible(s)) { int count[26] = { 0 }; int len = s.length(); for (char c : s) count[c - 'A']++; vector<char> v(1); if (len % 2 == 1) { for (int i = 0; i < 26; ++i) if (count[i]%2 == 1) { count[i]--; v[0] = (char)(i+'A'); break; } } for (int i = 0; i < 26; ++i) { while (count[i] != 0) { if (v.size() % 2 == 1) { v.insert(v.begin() + v.size() / 2, i + 'A'); } else { v.insert(v.begin() + v.size() / 2 + 1, i + 'A'); } count[i]--; } } if(len%2 == 0) v.erase(v.begin() + (v.size() / 2)); PrintV(v); } else cout << "I'm Sorry Hansoo" << "\n"; }

  • c++
  • 코딩-테스트
박갓 댓글 2 좋아요 0 조회수 96

4-H compSize 질문있습니다.

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제 풀이는 잘 이해가 갔습니다. 그래서 손코딩 해보고 코드를 제출했는데 틀렸다고 나오길래 찾아보니깐.. 제가 compsize[1004]로 해서 틀린 거 였습니다. 수정해서 맞기 했는데.. 1004도 넉넉하다고 생각했는데 제가 잘 못 생각한 걸까요?

  • c++
  • 코딩-테스트
16wjdekdms 댓글 2 좋아요 0 조회수 61

word |= 가 이해가 안 됩니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. words[i] |= (1 << (str - 'a')); 이 코드 부분이 이해가 안 됩니다. abcabc 라는 문자열을 숫자로 표현하고 싶다는 건 알겠는데.. abcabc가 7인게 이해가 안 됩니다. a(1)b(2)c(4)a(1)b(2)c(4) => 14 아닌가요..? 왜 7인건지..

  • c++
  • 코딩-테스트
16wjdekdms 댓글 2 좋아요 0 조회수 131

1-H 질문 있어요!

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

http://boj.kr/981e1180bdc04bcc847ce9ae1e0b9c5c 강의 듣기 전에 먼저 풀어봤는데 도저히 모르겠는 부분이 있어서 질문 드려요! 중간에 반복문을 for(int i = 1 ; i <= N-M; i++)가 아니라 for(int i = 0 ; i < N - M + 1; i++)로 했을 때 반복 횟수가 달라서(후자의 반복이 1회 더 많아서) 34%에서 틀렸는데, 후자의 반복문이 필요 이상으로 반복을 한다면 f_index가 인덱스 범위를 벗어나서 어떤 테스트 케이스에서든 문제가 생겼어야 할 거 같은데 왜 34%가 되서야 문제가 생겼을까요? 컴파일러에서 예외 발생이라도 떠야했을 거 같은데요.. 답변 감사해요 강의 잘 보고 있어요!

  • c++
  • 코딩-테스트
배정완 댓글 3 좋아요 0 조회수 182

7-Q 질문있습니다 :)

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요 선생님 🙂 어려운 문제는 아니었던거 같지만 모르겠는 부분이 생겨서 질문 드립니다. visual studio에서는 배열의 범위가 초과되었다는 에러가 계속 뜹니다. 선생님 코드와 다른 점이 없는지 여러 번 검증해보았지만 차이가 없어서 백준에 제출해봤는데요, 맞았다고 하더라구요.. arr의 크기를 18이 아닌 20으로 잡아도 동일한 에러가 잡힙니다. 컴파일러에서 왜 에러가 뜨는건지 모르겠습니다.. http://boj.kr/f91936720fc54768adb00def9dc32b35 메모이제이션 범위가 이해되지 않아 다른 숫자들로 넣어봤는데요, 0.0까지는 문제가 없더라구요. 메모이제이션 범위를 -0.5로 두신 이유가 궁금합니다.

  • c++
  • 코딩-테스트
한유태 댓글 2 좋아요 0 조회수 108

3-F 코드 확인 부탁드립니다.

해결됨

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요~ http://boj.kr/e9c207f2a03a40c58f133d577488e3a3 *0 일때 반례 까지 추가 했는데 틀렸다고 나와서 질문 드립니다!

  • c++
  • 코딩-테스트
전인준 댓글 2 좋아요 0 조회수 219

수강 문의

미해결

[게임 프로그래머 도약반] DirectX11 입문

안녕하세요 루키스님. 이전에 수강전 문의 했던 학생입니다. 강좌를 구매해서 수강전 문의란이 사라져서 여기다가 질문올립니다. 궁금한 점은 3가지 입니다. DX11 2D까지만 공부하고 싶다면 섹션 어떤어떤것을 봐야할까요? OT때 포폴엔 적합하지 않은 강좌라고 하셨는데 이 말의 의미는 커리큘럼 목표가 그런 것이고, 제가 이 강좌 듣고 습득한 지식으로 혼자 포폴 만들라면 만들 순 있는거죠? 수강전 문의에 대한 연장선의 질문인데, 루키스님이 중견 이상 목표라면 C++를 공부하는게 좋다고 하셨습니다. 이 말의 뜻은 C#보다 C++이 아무래도 신경써야할 게 많다보니까(메모리 관리 등) 제가 비록 유니티쪽으로 가더라도 기초탄탄을 위해 배우라는 뜻이실까요? 여기부턴 여담인데, 사실 제가 C# 유니티만 배운게 아니고 C/C++/STL 도 공부하긴 했었습니다. 최근엔 안써서 까먹었지만.. 일단 이 강좌 구매는 해놨는데, WinApi부터 공부하고 시작해볼라고 지금 자연스레 C++ 리마인드하면서 공부하고 있긴합니다.

  • c++
  • directx
유니티개발자될래요 댓글 1 좋아요 0 조회수 194

인기 태그

인프런 TOP Writers

주간 인기글