묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ParseList에서 ParseMember를 호출하는데 왜 정상작동하는지 궁금합니다
훌륭한 강의 제공해주셔서 감사합니다 ParseList부분에서 ParseMember를 한번 더 호출하는데memberCode나 readCode와 같은 변수들은 스택에 있어서 초기화 되는거 아닌가요?? 정상값을 왜 뱉는거있지 모르겠습니다 재귀로 호출하더라도 먼저 호출한 ParseMember가 call stack에 쌓인 스택 프레임을 나중에 반환해서 인가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋 다운로드
수업에서 사용한 에셋을 다운로드하고싶은대.. 어디에있나요? 구름표시가 안보여요...
-
미해결C# 프로그래밍 기초
교수님 C#의 Property에서 setter를 이용한 입력 제한은 어떻게 구현하나요?
본 강의에서 메서드를 이용한 Getter, Setter 설명을 하실 때, age 필드 변수에 입력되는 값을 GetAge라는 메서드에서 if문을 이용하여 조건에 부합하지 않는 값이 들어오면 return을 하고 Console 창에 메세지를 띄워 주셨습니다.Q. 이것을 Property에 적용 시킨다고 하면. '''cs set {this.age = value;} 또는,public int Age {get; set;}'''이 부분에 어떻게 적용 시켜야 할까요?
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
PoolManager Pool.OnGet에러질문드립니다.
팝업창에서 하위 ui item 자식들을 삭제하고 생성하고를 반복하다보면 어느순간 삭제된 오브젝트를 참조했다고 Pool.OnGet에서 오류가 출력됩니다. void OnGet(GameObject go)에 go는 null값이들어오는데 이유를 모르겠습니다. 버튼을 누르면 모든자식을 DestroyChilds를 통해 삭제하고 makesubitem을 통해서 다시 여러개를 출력합니다. 어떻게 null값이 나오는지 모르겠습니다. 오류내용은 아래와같습니다,MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.Your script should either check if it is null or you should not destroy the object.Pool.OnGet (UnityEngine.GameObject go)
-
미해결따라하면서 배우는 고박사의 뒤끝 온라인 게임 개발
소스는 어디에있을까요?
소스는 어디에있을까요?
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
섹션8 슈팅게임 프로토타입 만들기3(적과 발사체)
코인의 플레이어 충돌 단원을 듣고 수정한 후에player가 자동으로 시계 반대방향으로 회전됩니다.어떻게 해야 할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
에러가 표시되지 않습니
이런식으로 세미콜론을 빠트리거나 out을 빠트리는 등 문법적 오류가 발생하여도 빨간색 밑줄로 표시해주지를 않네요. 어떻게 해결해야 하나요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
캡슐콜라이더 적용해서 몬스터와 충돌시 회전문제
유니티짱과 몬스터 캡슐콜라이더 설정 한 후에 충돌 하면 유니티짱이 회전을 해서 이런 모습으로 변합니다. 거의 90도 꺾여있는듯이요.아래는 유니티짱의 컴포넌트들인데요. 뭔가 설정이 잘못된 부분이 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReadLock 부분 질문입니다.
public void ReadLock() { while(true) { for(int i = 0 ; i < MAX_SPIN_COUNT; i++) { int expected = (_flag & READ_MASK); if(Interlocked.CompareExchange(ref _flag, expected + 1, expected) == expected)) return; } Thread.Yield(); } }해당 강의에서 작성해주신 ReadLock 부분 코드인데,ReaderWriterLock에 경우 특정 쓰레드가 WriteLock을 잡고 있을 경우 ReadLock을 사용하지 못한다고 알려주셨는데 int expected = (_flag & READ_MASK)위 코드는 Reader 부분만 긁어오니 Write를 잡고있는지 여부를 파악하지 않는데위에 if(_flag & WRITE_MASK >> 16 == 0)와 같은 Write를 잡고있는지 여부를 파악하는 조건문을 하나 추가해야하는 것 아닌가하는 의문이 남아 질문 남깁니다.항상 좋은 강의 감사합니다.
-
해결됨C# 윈폼_ 응용프로그램 개발(.NetFramework)
수업자료 중에 ppt
수업 자료의 ppt로 쓰시는 건 따로 공유하지 않으시는 걸까요?ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
이중 Job 캡슐화는 오히려 위험한것이 아닌지요??
18:25 설명을 보면 HandleSkill 내부에 있는 EnterGame 도Job 캡슐화해서 push 하는게 좋다고 하셨는데Job 시리얼라이저 특성상 스레드 1개가 Job을 기준으로 순차적으로 처리할텐데 Job 안에 또 Job캡슐화를 하면 이중 Job 부분은 뒤로 밀려나서 나중에 처리되겠죠 그렇다면 그 사이에 있는 다른 Job을 처리하는 과정에서 뒤로 밀려난 애가 처리할 수 없는 상황이 올 수 도 있지 않을까해서 더 불안정하다는 생각이 듭니다그래서 결국 이중 job 캡슐화하는 것보다 18:25에 나오는EnterGame 도 바로 처리하게 push 를 안하는 방향이 더 낫지 않나 싶습니다
-
미해결WPF (.NET Core, C#, 자막제공)
프로젝트 생성시 질문
새 프로젝트 만들기에서 WPF 애플리케이션 생성시 .NET Core WPF 프로젝트가 없고 그냥 WPF프로젝트만 나오는데 뭘 더 설치해야하나요??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
cpu사용량 100%
해당 코드를 프로젝트에 맞게 변경 해서 쓰려고 하고 있는데 초보라서 버그를 못 잡고 있습니다. aws에 올려놓으면 특정 시점에 dev, live서버 모두 cpu 100%에 도달하고 cpu크레딧도 다 사용합니다.dev, live모두 같은 시점에 올라갈 때도 있고 아닐 때도 있습니다.인터넷에서 떠돌면서 공격 포인트를 찾는 해킹봇 때문인가 싶어서 클라에서 바로 연결을 끝내는 try catch쪽이랑 한동안 유의미한 패킷을 보내지 않으면 끊어버리는 timeout도 넣었는데도 발생합니다.wmi provider host문제는 아닌것 같아요 task manager기준으로는 서버 콘솔 프로그램이 많이 사용합니다.앗 그리고 이렇게 질문하는 이유는 초창기 코드가 많지 않을 때도 cpu 100%를 찍었기 때문입니다.코드는 강의 최종본을 변경해서 사용했습니다.Jetbrains dotTrace 를 사용해서 프로파일링을 한 경우 다음과 같이 뜹니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
위치 동기화 검증 위치
전에 만드신 테라의 경우 맵 타일링 정보를 서버에 저장해두고 플레이어의 위치 동기화 로직을 서버에서 처리하셨나요?아니면 클라이언트가 먼저 이동(자기 기준)하고 그 결괏값을 서버로 보내는 방식으로 처리하셨나요?케이스 바이 케이스이겠지만 일반적으로 어떻게 하는 지 궁금해서 질문 드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이전에 PlayerController의 간헐적 버그에 질문 드렸던 사람입니다.
https://www.inflearn.com/questions/1033120/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EA%B3%B5%EA%B2%A9-%EC%A4%91-%EA%B0%84%ED%97%90%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%8F%99%ED%98%84%EC%83%81%EC%9D%B4-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4 일전에 작성해 답변을 얻었던 게시글 입니다. 일단 몬스터는 계속 플레이어를 피격하고있고, 사운드 재생 등 플레이어의 애니메이션 무한재생을 제외하고는 나머지의 정상동작을 보아 에디터 자체가 무한루프에 걸린것은 아닐것이라 생각하였고클릭이벤트 발생에 확률적으로 문제가 있을것같다는 것을 생각해보고 코드를 면밀히 확인 해보았는데,ATTACK 애니메이션의 CrossFade 함수에 4번째 인수 (normalizedTimeoffset) 를 0으로 지정하니순간적으로 광클을 하게되면 Move 애니메이션을 무한재생하면서 아무런 동작도 취할수 없는 버그가 해결되었습니다.< CrossFade("ATTACK", 0.1f, -1 , 0 ); 으로 변경하고, ATTACK 애니메이션 클립의 LoopTime을 해제하였습니다. > 되짚어보니저는 저 인수를(normalizedTimeoffset) 애니메이션클립의 LoopTime 을 키는것과 같은 효과라고 생각하여 따로 인수를 두지않고 LoopTime을 키는것으로 대체했던 기억이 있었습니다. 저 네번째인수 (NormalizedTimeoffest)을 활성화 한 이후로부터 버그가 해결이 된 이유가 궁금합니다.저게 활성화 되지않으면 클릭이벤트가 씹힌다던가 그러한 문제가 발생하는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
인터페이스 상속조합에대해서 질문드립니다.
인터페이스 설명하신거보고 상속을 이용해서 여러가지 타입을 레고처럼 조립해서 새로운 형태의 타입을 만들어낼수도 있겠구나 라는 생각을 하게됐습니다.그런데 이게 구조적으로 원래이런건지 몰라서 질문을 드려봅니다.예를 들어서 Iflyable, Ishoutable, Iattackable 이라는 인터페이스를 구현해서각각Iflyable에는 fly라는 함수를 Ishoutable에는 shot이라는 함수를 Iattackable에는 attack이라는 함수를 넣고flyshouter라는 class가 Iflyable과 Ishoutable을 상속받아서 날면서 소리를 지르는 능력을 얻었다고 가정해볼게요.그리고 두번째로 ShoutAttacker라는 class가 Ishoutable과 IAttackable을 상속받아서 소리지르면서 공격을 하는 능력을 얻었다고 가정해보겠습니다.그러면 어찌됐던지 인터페이스가 상속이 돼었기때문에각각 flyshouter => fly와shout라는 함수를 shoutattacker => shout와 attack이라는 함수를 구현해야하잔아요?그러면 결국엔 구현에서 shout라는 공통의 함수를 구현하게 될텐데물론 소리를 지르더라도 뭐 캐릭터에따라서 조금 다르게 소리를 낼수도 있긴하지만 기능자체가 완전 똑같다고 했을때flyshouter와 shoutattacker는 완전 형태가 똑같은 shout 함수를 각각 하나씩 가지고 있어야하는건가요?제가 이질문을 하는 이유는 저렇게 능력들을 인터페이스로 부여받았을때 상속받은 클래스마다 구현을 다 따로하는데 구현부가 완전 똑같은경우에는그냥 복사 붙여넣기로 하나씩 들고 있는게 맞나싶어서 질문 드려봤습니다. 뭐 한두개정도는 복붙해서 사용해도 크게 문제는 없을거같은데지금은 예시로 각각 함수를 하나씩 물고 있는 형태로만 말씀드렸는데 저게 만약에 많아지면 많아지는만큼 늘어나는만큼 계속 복붙을 하는게 맞는지 궁금해서 질문 올렸습니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
2019에서 콘솔 앱이 .net framework로 밖에 솔루션 생성이 안됩니다.
visual studio 2019 community를 다운로드 하여 설치하였는데요.콘솔앱을 설치하려고 하면 .net Framework버전만 솔루션이 생성이됩니다. 질문글을 보니 콘솔 애플리케이션으로 선택하고 생성하면 될 것 같아서 실행해 보고 있는데요. 이런 식으로 .net 5.0 지원되지 않음으로 뜨면서 콘솔 어플리케이션 자체가 생성이 안되고 있어요.Array.Fill()함수가 생성되지 않아서 알아보다가 결국 질문글 올립니다. 비주얼 스튜디오 2019 커뮤니티 공홈에서 받았구요. 이럴때는 어떻게 해결해야 좋을까요?대안으로 2022 버전으로 사용하는게 좋을지도 문의 드려요.
-
미해결[유니티6] 따라하면서 배우는 하이퍼캐주얼게임 시리즈 01
[2D Pin Circle Game] 회전 질문
안녕하세요. 2D Pin Circle Game에서 회전시 유니티 에디터로 실행할 때는 정상적으로 보입니다.하지만 안드로이드에 연결해서 실행시에는 좀 흐리게 보입니다. 플레이 스토어 앱으로 예를 들면회전시 선명하게 보임Pin Circleaa회전시 흐리게 보임Pin Circle 테스트에 사용한 폰은갤럭시 S9안드로이드 10입니다. 검색해서 시도해봐도 개선이 되지 않아 질문드립니다.fixedUpdate 사용Time.deltaTime 대신 Time.smoothDeltaTime 사용 어떻게 개선할 수 있을까요? 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
실무에서 New Input System은 사용 안하나요??
실무에서 New Input System은 사용 안하나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매니저를 만드는데 이런경우는 어떻게하나요?
기존의 매니저들을 인풋,ui,리소스 등등을 따라서 만들어 봤는데요. 진짜 신세계더라구요.. 그동안에 코드가 막 엉키고 정리도 잘안되고있었는데 저렇게 나눠서쓰니까 코드 분류하기가 너무 편하더라구요.. 그래서 이번에 네트워크 매니저도 하나 만들어서 쓸려고하고있는데요제가 Pun2를 사용해서 게임을 만들어보려고하는데요..pun2에서 지원하는 콜백을 네트워크 매니저에 붙일려고 하는데요다른 매니저처럼 managers에다가 프로퍼티를 만들어서 접근하는식으로 만들었구요.. using UnityEngine;using Photon.Pun;public class NetworkManager: MonoBehaviourPunCallbacks{ public override void OnConnectedToMaster() { Debug.Log("complete masterserver connect"); }}일단 테스트를 위해서 서버에 접속이되면 저 콜백이 작동을 하는지 테스트를 해봤거든요..근데 작동을 안하더라구요..기존 매니저들은 콜백방식은 아니었고 직접 호출하는 방식이었는데저런식으로 콜백방식을 연동하려면 어떻게 하야할까요? 참고로 저걸 네트워크 매니저에 할당했을때는 안됐고 따로 게임오브젝트에서 서버접속을하는 코드를 따로 만들어서 접속시도했을때는 성공했습니다. 네트워크 매니저를 사용한방식에서는 로그조차 안뜨더라구요..