묻고 답해요
145만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
onSuccessChanged? 의 의미가 어떤것인가요?
Task.cs를 보면아래와 같은 코드가 있던데 혹시 onSuccessChanged에 ?가 붙은 것은 어떤 의미인가요? if (currentSuccess != prevSuccess) { State = currentSuccess == needSuccessToComplete ? TaskState.Complete : TaskState.Running; onSuccessChanged?.Invoke(this, currentSuccess, prevSuccess); }
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
TPS 캐릭터 문제점 있습니다.
TPS에서 캐릭터가 이동할 때 0.07정도의 높이로 캐릭터가 띄어지게 되게 됩니다. 수정을 어떻게 해야하나요??
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
팝업 프리팹시 내부 스크롤안에 있는 아이템 프리팹화에 대한 질문.
안녕하세요. 선생님. 다름이 아니라 궁금한 사항이 있어서 질문합니다.선생님처럼 팝업을 프리팹화 하여 로드하고 있습니다. 근데 예를들어 StagePopUp 이라는 팝업내부에 RewardItem 이라는 오브젝트를 가지고있는스크롤뷰가 있을때 StagePopUp을 불러오면서 Setting해줄때 아래 오브젝트들도 새로 만들어 주는것이 나은가요? 아니면 그냥 StagePopUp 내부에 미리 넣어두는게 나을까요?스크롤뷰가 가지는 RewardItem의 최대개수는 정해져 있습니다. 3-4개 정도면 그냥 프리팹 RewardItem을 따로 불러오지 않고 StagePopUp에 넣어둘생각인데만약 한 50개 정도 된다면 어떤 방식이 더 효율적일까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GetComponent 함수 관련 질문이 있습니다!
선생님 언제나 좋은 강의 잘 보고 있습니다.싱글톤패턴 복습과정 중 이것저거 테스트하다s_instance에 값을 넣어 줄 때 저렇게 그냥 바로 GetComponent<>(); 해버려도 작동이 되더라구요GetComponent 함수가 특정 게임오브젝트에 있는 Component 를 가져오는것인 줄 알고 사용했는데 위 코드는 왜 동작하는지 이유를 알려주실 수 있을까요?
-
미해결따라하면서 배우는 고박사의 유니티 기초
used by composite 항목이 없어요
게임오브젝트 물리와 충돌 (13:01)3:45 부분used by composite 항목이 컴포넌트 항목에 어떤건 뜨고 어떤건 뜨지 않는데 왜그런거죠??유니티 3.4.1 버전입니다.
-
미해결따라하면서 배우는 고박사의 유니티 기초
강의 자료를 다운받고 싶습니다.
안녕하십니까? 강의 잘 듣고 있습니다. 강의 중 보여 주시는 PPT 형태 강의 자료를 다운 받을수 있는지요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
남은 수업 수강 질문
선생님 안녕하세요 강의 너무 잘듣고있습니다. 수업과 관련없는 질문이지만, 저는 현재 플레이팹 데이터 + Azure 클라우드 스크립트 기반의 간단한 싱글 모바일 게임을 제작하려고 합니다. 선생님의 유니티 수업 이후, 게임 서버와 DB, 웹서버 강의를 수강하게 되면 제가 이용하는 서버 기반 API는 수업과 달라도 지금 수업처럼 프레임워크를 짜는데 참고할 수 있을지 궁금해서 이렇게 질문을 드리게 되었습니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Name이 한번 오면 초기화되는 이유
안녕하세요, string serialize를 하여 read, write 코드를 추가한 이후 확인해보려 코드를 실행해보았는데, 처음엔 name이 잘 나오지만 client에서 5번 연속으로 보냈을 때 name이 null인건지 나오질 않아 확인해보니, 아래와같이 처음 이후에는 name이 null이 되는 것 같습니다. 해당 이유를 찾기가 힘들어서 왜이러는지 이해가 되질 않습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
string write할 시에 Array.Copy한 이유
안녕하세요, string serialization을 할 때 Array.Copy를 한 이유에 대해서 다른 long, ushort등과같은 데이터들은 TryWriteBytes()메서드를 사용하여 바로 dest인 buffer에 바이트를 써 주는 메서드가 구현되어있지만, string을 인자로 받는 메서드와 byte배열을 받는 메서드는 없어서 GetBytes한 이후에 Array.Copy로 buffer배열에 직접 복사한것같은데, 맞을까요?그럼 더 궁금한건, TryWriteBytes는 ValueType만 바이트로변환해서 dest에 쓸 수 있도록하는 메서드인거라고 이해하면 될까요? string, byte[]등과같은 reference type을 인자로 받는 메서드는 구현이 안되어있는 이유를 혹시 아시는지요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강사님처럼 여러 프로세스 디버깅하는 방법
안녕하세요, Serialization#2 강의를 따라 치는 도중 실행을 하면 recv할 때 playerid가 0으로 나와 디버깅을 하려고 했지만, 디버깅시에OnConnected : [fe80::c104:b687:d2b9:82d8%14]:7777OnDisconnected : [fe80::c104:b687:d2b9:82d8%14]:7777Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object.Object name: 'System.Net.Sockets.Socket'.at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken)at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e)at ServerCore.Session.RegisterSend() in C:\Users\jiw72\CsharpServer\MMORPG\Server\ServerCore\Session.cs:line 124at ServerCore.Session.Send(ArraySegment`1 sendBuff) in C:\Users\jiw72\CsharpServer\MMORPG\Server\ServerCore\Session.cs:line 97at DummyClient.ServerSession.OnConnected(EndPoint endPoint) in C:\Users\jiw72\CsharpServer\MMORPG\Server\DummyClient\ServerSession.cs:line 98at ServerCore.Connector.OnConnenctCompleted(Object sender, SocketAsyncEventArgs args) in C:\Users\jiw72\CsharpServer\MMORPG\Server\ServerCore\Connector.cs:line 42at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e)at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state)at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)--- End of stack trace from previous location where exception was thrown ---at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)at System.Net.Sockets.SocketAsyncEventArgs.<>c.<.cctor>b__177_0(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pNativeOverlapped)C:\Users\jiw72\CsharpServer\MMORPG\Server\DummyClient\bin\Debug\netcoreapp3.1\DummyClient.exe(프로세스 25828개)이(가) 종 이렇게 중간에 예외처리가되어 종료가됩니다. 뭔가 프로세스 단계별 실행을 해보았을 때, dummyclient를 클릭하고 디버깅하면 dummyclient만 디버깅되고 server를 클릭하고 디버깅하면 server만 디버깅되더라구요.그래서 여러 시작 프로젝트를 한것처럼 디버깅도 여러 프로젝트를 동시에 할 수 있도록 하는 방법은 없는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
.NET Core
안녕하세요 .NET Core를 사용하려면 저렇게 인스톨러에서 설치해서 하는것이 맞는건가요?맞다면 .NET Core가 지원되지 않는거 같은데 어떻게 해야할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendBuffer 새로 sendbuffer 할당해주는 문제
public static ArraySegment<byte> Open(int reserveSize) { if (CurrentBuffer.Value == null) { CurrentBuffer.Value = new SendBuffer(ChunkSize); } if (CurrentBuffer.Value.FreeSize < reserveSize) { CurrentBuffer.Value = new SendBuffer(ChunkSize); } return CurrentBuffer.Value.Open(reserveSize); }Sendbuffer에서 남은버퍼를 반환해주는 open함수에서 필요한 사이즈가 현재 남아있는 free사이즈보다 큰 경우(CurrentBuffer.Value.FreeSize < reserveSize) 새로 sendbuffer를 CurrentBuffer.Value에 넣는데, 아직 CurrentBuffer.Value 에 보내지 못한 데이터가 있는 경우에 open을 해버리면 새 sendbuffer가 CurrentBuffer.Value로 치환되어버려서 데이터가 날라가버리는 것 아닌가요? 즉, 예를들어 아직 100명한테 다 안보냈는데 새로 할당해버리면 안되지않나요? _usedSize를 recvbuffer에서처럼 땡겨서 쓰지 않는 이유가 누군가가 계속 이전에 있던 부분(현재 사용 중인 부분)을 참조하고 있을 수도 있기 때문에 그냥 증가시키는 방법으로 한 것 처럼.. CurrentBuffer.Value 도 저렇게 그냥 새로 할당해버리면 안될 것 같다고 생각이 계속 듭니다 ㅜㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
animation event
inspector 창에 다른 파라미터들?이 뜨게 하려면 어떻게 해야 하는지 알고싶습니다... 어떻게 이벤트를 생성해도 창이 뜨지 않아서 ㅠㅠ 넘어가질 못하고 있습니다
-
미해결따라하면서 배우는 고박사의 유니티 기초
23년인 지금 들어도 버전문제는 없을까요
버전이 달라지면 기능도 많이 바뀌는듯해서.이 강의 시리즈를 23년인 지금들어도 문제가 없을지 궁금해집니다.
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
여러 Area를 동시에 학습
안녕하세요, Drone 강의 부분에서, Area를 GridWorld에서 했던 것처럼 여러 Area를 복사하여 한 씬에 넣고 동시에 학습시키면 step이 빨리 오르는 효과를 볼 수 있을 것 같다고 생각했습니다. 한 area를 여러 개 복사한 뒤에 학습을 진행하려 했는데, 다음과 같은 오류로 잘 되지 않았습니다. 어떻게 해결해 볼 수 있을까요? critic_loss = F.mse_loss(target_q, q)Traceback (most recent call last): File "DDPG.py", line 240, in <module> actor_loss, critic_loss = agent.train_model() File "DDPG.py", line 144, in train_model reward = np.stack([b[2] for b in batch], axis=0) File "<__array_function__ internals>", line 6, in stack File "C:\Users\anaconda3\envs\mlagent2\lib\site-packages\numpy\core\shape_base.py", line 426, in stack raise ValueError('all input arrays must have the same shape')ValueError: all input arrays must have the same shape
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
컴파일러 최적화 강의 관련 질문
안녕하십니까 선생님귀한 강의 항상 감사한 마음으로 듣고 있습니다. 아래 질문과 관련해 릴리즈 모드로 해서 실행을 하면 먹통이 되어야 하는데, 저는 먹통이 안 되고 "종료성공"까지 다 나옵니다. 혹시 이유를 알 수 있을까요?참고로 아래 질문의 증상과 저도 동일하게 나타났고 닷넷 프레임워크로 프로젝트를 만들었습니다.혹시나 해서 닷넷코어로 프로젝트를 만들어서 해보면 수업처럼 먹통이 되긴 하는데, 닷넷프레임워크로 프로젝트 만들면 릴리즈로 실행 시 먹통이 안 되고 잘 실행이 됩니다.감사합니다~! --아래 질문----------------안녕하세요, 선생님 c# 게임 서버 강의를 수강하다가 선생님과 다르게 작동하는 부분이 있어서 질문드립니다6번째 강의인 컴파일러 최적화 강의에서 코드를 실행하면 4:25초경에쓰레드 시작!쓰레드 종료!Stop 호출종료 대기중종료 성공이 순서대로 선생님은 실행이 되는데요, 저는쓰레드 시작!Stop 호출종료 대기중쓰레드 종료!종료 성공순서로 쓰레드 종료!가 더 늦게 뜨네요강의에서처럼 _stop에 volatile을 붙이면 선생님이랑 같은 값이 나오긴 하는데컴퓨터 성능 차이 때문일 수 있나요?코드가 다른 부분은 없습니다. 몇 번이고 확인했어요감사합니다!
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
드론 작동
안녕하세요! 혹시 드론의 크기를 키우면 스크립트에서 변경해야 할 내용이 있나요? 영상과 똑같이 한 후 terrain을 추가하고 드론의 크기를 키우면 드론이 움직이지 않아요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Util.cs의 FindChild의 recursive == true인 부분이 이해가 가질 않습니다.
안녕하세요 수업을 듣다가 16분쯤에 질문이 생겨 남깁니다.재귀라 하면 자식의 자식, 자식의 자식의 자식까지 쭉 돌면서 계속 찾아야하는 거라고 생각했는데 현재 코드대로라면 자식의 자식까지만 탐색하고 종료한다고 생각합니다.else - foreach에서 FindChild<T>(component, name, true)로 함수를 다시 호출해야하는 건 아닌지 궁금합니다.감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
궁금해져서 질문드립니다
C_Chat chatPakcet = packet as C_Chat 여기에서 as로 형 변환을 하는것과 안하는 것의 차이점을 알고 싶습니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Start() 순서 관련하여 문제가 발견된듯 합니다
강의에서 stat 클레스 생성후 start Start()문이 PlayerController Start() 보다 느리게 만들어져 speed값이 0이 되는 문제가 발견 됬습니다 이럴때는 어떻게 하면 좋을까요