묻고 답해요
145만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결밑바닥부터 시작하는 왕초보 유니티 2D 게임제작
섹션2: 서브루틴
질문1. 코루틴은 코루틴이 대기하는 동안 Start()의 다른 함수나 Update() 함수가 진행되는 건가요?예를들어 밑에 코드에서 cortDT1이 Start()에서 시작하고, 1초 기다리는 동안 Start()의 그 밑에 있는 함수가 실행되는 건가요? 그러면 Update()는 언제 실행되는 건가요? 실행순서가 궁금합니다!public class Cort3 : MonoBehaviour { Coroutine cortDT1; Coroutine cortDT2; // Start is called before the first frame update void Start() { cortDT1 = StartCoroutine(DelayTime(1)); cortDT2 = StartCoroutine(DelayTime(2)); } // Update is called once per frame void Update() { if(Input.GetKeyDown("space")){ StopAllCoroutines(); } } IEnumerator DelayTime(float time){ while(true){ yield return new WaitForSeconds(time); //메인루틴(update함수)으로 양도권 양보 print(time + "초 만큼 경과"); } } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
++i. i++에대한 간단한 질문
안녕하세요 항상 수업 잘 듣고 있습니다.다름이아니라 어셈블리 코드로 보면 ++i가 i++보다 아주 약간의 리소스가 덜든다고 배워물론 아주 미묘한 차이겠지만 필요한 상황이 아니면 늘 ++i를 쓰려는 습관을 들려고하고있습니다.근데 선생님 코드는 for문을 돌리든 뭘할때 필요한 상황이 아니면 항상 i++로 코드를 작성하시던데 혹시 어떠한 사유가 있는건지 하여 질문드립니다...
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
교재관련
안녕하세요. 게임서버와 관련해서 C#으로 설정되는 교과서가 있을까요? 해외 원서도 좋습니다. 시중에는 C++로 기술된 교재밖에 없어서 강의 병행하기에는 애로사항이 있습니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
이벤트를 만들때
퀘스트를 응용해서 이벤트를 만들려고합니다.이벤트는 단순히 퀘스트를 상속받아서 하면될거같은데 문제는 이벤트 발생시 각 발생 프로세스를 어떻게 구현할지가 고민입니다.예를들어 어떤 이벤트는 공간 이동후 적이 몰려오는 이벤트가있고 또 어떤 이벤트는 공간 이동 후 인질을 구출하라는 이벤트가 발생 하는식인데이벤트를 스크립터블 오브젝트로 만들고 거기에 변수로 이벤트 액션이라는 스크립터블오브젝트를 만들어서 해당 이벤트 액션에 각 기능 프로세스를 구현 하려고했는데 변수 세팅하기가 힘들고 먼가 하드 코딩이 될거같아요..혹시 저런식에 이벤트를 어떻게 만드는게 깔끔한가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
JobQueue 질문이있습니다
main에서 TickRoom함수 내부에서 timer를 이용해서 room.Update를 해주고room.Update에서는 Flush를 해줍니다.근데 Flush를 보면 싱글쓰레드처럼 따로 lock을 걸지않고 실행되고 있습니다.만약에 timer.Interval에 설정한 시간이 지났는데 flush가 다 안끝나서 다른 쓰레드가 flush로 들어오면 멀티쓰레드 환경이 되서 오류가 발생할 수도 있을 것 같은데이 문제는 현재 코드에서 예외처리를 안해준거죠?https://stackoverflow.com/questions/37747650/do-timers-continue-if-function-didnt-finish선생님께 찾아보고 질문한다는 성의를 보이기 위해서.... ㅎ..ㅎ
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
QuestSystem_Test 에러 부분 ㅜㅜ
IndexOutOfRangeException: Index was outside the bounds of the array.Quest.get_CurrentTaskGroup () (at Assets/Scripts/Quest/Quest/Quest.cs:60)Quest.OnRegister () (at Assets/Scripts/Quest/Quest/Quest.cs:93)QuestSystem.Register (Quest quest) (at Assets/Scripts/Quest/Quest/QuestSystem.cs:81)QuestSystem.Awake () (at Assets/Scripts/Quest/Quest/QuestSystem.cs:67)이 에러가 생겨요 ㅜㅜ 들어가보면 Quest스크립트에 public TaskGroup CurrentTaskGroup => taskGroups[currentTaskGroupIndex]; 이 줄을 가리키는데 머가문제인지 모르겠어요 ㅜㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
3d 이동 및 회전 구현하다가 질문이 생겼습니다(에러질문X)
(위에 사진은 3d 방향 및 이동 동기화를 성공해서, 뿌듯해서 같이 올려요 ㅎ..ㅎ) 멀티환경에서 3D이동 및 회전을 동기화를 구현할 때, 이전 위치와 현재 위치의 Vector3.magnitude의 차이가 0.1이 나면 이동패킷을 보내줄수있도록 설계를 해서 구현을 했습니다.혹시 0.1f 차이마다 패킷을 계속 보내는 것도 패킷을 너무 많이 보내는 편인가요? (유저 수는 10명정도가 같은 room에 있도록 만들예정입니다)항상 감사합니다! 강의를 들으면서 조금씩 바꿔보는데 정말 뿌듯하네요 하하하하하 강의가 너무 유익해요^^
-
미해결밑바닥부터 시작하는 왕초보 유니티 2D 게임제작
섹션1 유니티기초: 사용자 오브젝트 제어2
vec = Vector3.zero;이 부분을 Update()에 하지 않으면, 키를 누르고 있지 않아도 계속 이동하더라고요.그 이유가 무엇인지 알 수 있을까요?
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
DataManager 관련 질문
안녕하세요.LoadXml 메서드를 보면 각종 Loader 클래스들이 활용되고 있는 것 같고,ILoader 인터페이스를 상속받고 있는 것으로 보입니다. 근데 에셋 폴더 어디서도 이 Loader 클래스들을 찾을 수가 없어 문의드립니다.어디 가야 찾을 수 있나요? 어떻게 작동하는 건지도 간략히 힌트 주시면 감사하겠습니다.
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
안녕하세요. 7월 예정강의에 대해 질문이 있습니다.
유니티 & 웹서버(키우기 게임 + 웹서버) 강의가 7월 예정으로 들었는데 항상 강의 전달 말쯤에소식이 들렸는데 이번엔 아직 소식이 없어서 질문드립니다!관련해서 예정이 있으신건가요?
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
갑자기 바인드가 되지 않습니다.ㅠㅠ
작동이 잘 되다가 갑자기 Scene을 복제한 후 부터 바인드가 안됩니다... 혹시 어떻게 해결해야할까요? 해당 popup의 스크립트는 그대로 입니다.
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
Vector2 Vectoe3
계속 Vector2 로 위치값을 잡다가총알의 시작 위치부터 Vector3를 쓰는 이유가 무엇인가요?
-
미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
SkeletonAnimation / Controller - Manager
[질문 List]#1 (Q1, Q2, Q3) , #2 총 4개 입니다.#1 SkeletonAnimation 제어BossController.cs에서 SkeletonAnimation 파일이 재생되는 부분에서 좀 더 알고 싶은 점이 생겨서 질문드립니다.[질문]시작 끝 지점에 대한 처리 -> 관련 질문 Q1,2,3구현하고 싶은 것특정 애니메이션이 끝나고 나서 어떤 팝업을 띄우고 싶은데, 트랜지션 느낌으로 SpineAnimation을 재생시키고 싶은데, 시작/끝 지점에 대한 처리를 어떻게 할지 알고 싶습니다.[[TestPopup 프리펩]] -Transition (SpineAnimation 컴포넌트 존재) - Viewport - UI 버튼, 텍스트 요소들 존재 [[TransitionController.cs]] SkeletonAnimation _spineAni; SkeletonDataAsset ani; bool b; void Init() ani = Resources.Load<SkeletonDataAsset>(string path); StartCoroutine(CoStart()); IEnumerator CoStart() _spineAni.skeletonDataAsset = ani; _spineAni.loop = false; _spineAni.Initialize(true); yield return new WaitUntil( () => b == true) [[TestPopup.cs]] [SerializeField] TransitionController tc; [SerializeField] GameObject viewport; //실행시킬 SpineAnimation 오브젝트 "Transition" 연결시키기 [SerializeField] GameObject go; void Awake() viewport.SetActive(false); tc = go.GetComponentInChildren<TransitionController>(); tc.Init(); => 이후, Q1이 해결될경우 viewport.SetActive(true) 작성 시점 확인 가능. Q1.Animation이 끝났을 때, viewport.SetActive(true)로 바꿔주려고 할 때, 어떻게 코드를 작성하면 좋을지 고민입니다.Transition이 재생 완료되었다는 event를 Popup에게 넘겨주는 방식을 생각하고 있는데 방향성이 맞나요?Q2. spineAni.loop = false 로 설정해도,애니메이션 타임만 증가하여 영원히 돌아가는 걸로 나온다고 알고 있는데, TransitionController에서 애니메이션을 1회만 실행하도록 코루틴으로 1회만 실행하고, 2회부터는 실행되지 않도록 WaitUntil로 멈추는게 옳은 로직일까요?SetAnimation은 SkeletonGraphic만 가능하다고 해서, 스파인 애니메이션을 1회만 실행시키는 방식이, spine 프레임워크 상에 구현되어있는데 제가 못찾는건지.. ( 제가 찾을땐 못 찾았습니다 )아니면, 없다고 가정하고 코드상으로 구현할 때, 저렇게 구현하는게 맞을지 궁금합니다.Q3. TestPopup 프리펩처럼, 어떤 팝업이 실행되기 전 spine 트랜지션 효과를 주고 싶을 때, TesoPopup 산하의 자식 오브젝트인, Transition / Viewport 오브젝트로 분리해서, Transition이 실행 중일때는 Viewport를 SetActive(false), 실행 완료되었을때 ViewPort.SetActive(true)를 해주는 방식으로 코드를 작성하는게 괜찮은 방법일까요? #2 Controller ⊂ Manager ?Controller는 M V C 패턴 중, V에 해당하는 부분을 전부 포함하고 있는 코드라고 보면 될까요?제가 생각한 관련 MVC 패턴은 이렇습니다만, 제가 이해한게 맞는지 궁금합니다.View : Controller Code,Model: GameScene처럼 Scene코드 / GameManager / UI_ .. 구조적으로 GameManager가 로직을 전부 담고 있는게 맞지만, 편의성/가독성을 위해 Scene코드나 로직이 필요한 UI코드에 함께 적는 것도 가능하다.Control : (ex : UI_GameScene) UI Code
-
미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
BossController.cs
안녕하세요. BossController.cs에서 BossData.csv에서 TemplateID가 1~3만 존재하는데, if문 조건으로 작성된 , TemplateID<6Q. TemplateID가 3까지이므로, 6까지 도달할 일 없기 때문에 6으로 작성된건가요? if(TemplateID<6) else()Q.TemplateID가 6까지인데, else가 실행될 일이 있나요?LoadStage -> BossController.SetInfo()Q. 위 코드에서 TemplateID를 가져올 때, if(TemplateID==1) 작성된 부분은 어떤 내용인지, 왜 ID가 1로 작성되었는지 알 수 있을까요? (나머지 2,3의 경우는 알 필요가 없나요?)
-
미해결따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 01
수업관련 질문이 있습니다
안녕하세요 . 시리즈 01 첫 번째 게임을 풀고 있는 와중에 질문이 있어서 글을씁니다 시리즈 01 이니 가벼운 마음으로 수업을 듣고 있었는데요 수학 관련 영상 부터 맨붕이 왔습니다 ㅜ 어쨋든 이부분들을 그냥 코드만 따라 써서 "어 잘돌아가네 " 가 아닌저의것으로 만들어서 다른게임을 만들때나 혹은 혼자서 만들때 활용할수있게 하고 싶습니다. 씨샵 강의도 다 들었는데 어려우니 빨리 제것으로 만들어보고싶습니다 . 어떤식으로 강의를 듣는게 좋을까요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
[에러 공유] disposeed object
args.connectedSocket을 socket으로 줄여쓰고 싶어서 이렇게 코드를 짜면 계속 disposed object 에러가 난다. 해결법 : socket변수를 따로 만들지 말고 루키스 선생님의 코드처럼 그냥 args에서 connectsocket을 가져와야된다. https://stackoverflow.com/questions/71450166/when-is-an-object-disposed-if-it-uses-using-and-it-is-being-used-in-a-few-meth 영어가 미숙해서 정확히 이해는 못했지만 { }를 나갔다가 오면 문제가 생기는 듯하다
-
미해결유니티 Addressable 을 이용한 패치 시스템 구현
/ 가 URI 인코딩 문제로 %5C로 내려 받습니다 ㅠㅠ
안녕하세요 ㅠㅠ 강의대로 했는데용 ...아마존 S3로 내려 받는데 요청 받을때 /Android%5C 부분에서 %5C가 /로 요청을해야하는데 어디에선가 인코딩 문제가 생긴것같습니다 ㅠ.ㅠ 아래에 로그 전체를 보내 드리겠습니다 ! ==============================2023-06-28 04:04:33.168 32354-32393/? E/Unity: System.Exception: Dependency Exception ---> UnityEngine.ResourceManagement.Exceptions.OperationException: GroupOperation failed because one of its dependencies failed ---> UnityEngine.ResourceManagement.Exceptions.RemoteProviderException: RemoteProviderException : Unable to load asset bundle from : https://s3.ap-northeast-2.amazonaws.com/com.blackhammer.assetbundle/Android%5Cremote_bundle_assets_all_f923192b886d03258296e7bc56c4d786.bundle UnityWebRequest result : ProtocolError : HTTP/1.1 403 Forbidden ResponseCode : 403, Method : GET url : https://s3.ap-northeast-2.amazonaws.com/com.blackhammer.assetbundle/Android%5Cremote_bundle_assets_all_f923192b886d03258296e7bc56c4d786.bundle --- End of inner exception stack trace --- --- End of inner exception stack trace --- UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:set_OperationException(Exception) UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:Complete(TObject, Boolean, Exception, Boolean) UnityEngine.ResourceMan2023-06-28 04:04:33.168 32354-32393/? E/Unity: Dependency Exception UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:set_OperationException(Exception) UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:Complete(TObject, Boolean, Exception, Boolean) UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:InvokeExecute() UnityEngine.ResourceManagement.AsyncOperations.<>c__DisplayClass57_0:<add_CompletedTypeless>b__0(AsyncOperationHandle`1) System.Action`1:Invoke(T) DelegateList`1:Invoke(T) UnityEngine.ResourceManagement.AsyncOperations.AsyncOperationBase`1:InvokeCompletionEvent() UnityEngine.ResourceManagement.ResourceManager:ExecuteDeferredCallbacks() UnityEngine.ResourceManagement.ResourceManager:Update(Single)
-
미해결따라하면서 배우는 고박사의 유니티 기초
강의자료 다운로드가 가능할까요?
강의 너무 잘 듣고 있습니다. 리마인드 학습에 활용하려고 하는데 강의 자료는 받을 수 없는건가요?
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
비주얼스튜디오 프로젝트 설정 관련
안녕하세요.섹션1 유니티 기초 강의 그대로 프로젝트를 생성하면Test파일을 만들었을 때 솔루션 탐색기에 프로젝트가 80개가 넘게 나옵니다. 강의 화면에서는 솔루션에 프로젝트가 1개만 포함되어있는데, 어떻게 설정하는지 알고 싶습니다. 포함되어있는 프로젝트들은 아래와 같습니다. 없어서는 안될 구성요소들인 것 같은데 강사님의 솔루션은 어떻게 저렇게 깔끔하게 세팅할 수 있는지 궁금합니다.감사합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
이 강의는 아직 완성되지 않은 강의인가요?
영상에서도 설명을 들었는데 갓챠부분이나 서버연동 부분에 대한 언급도있었고 3~4개월짜리 짧은 프로젝트로 계획중이라고 하신걸 들었는데 차후 이 강의에 추가 영상이 올라오나요? 미완성인 부분이 어떤 부분들이 있고 (EX. 갓챠, 서버연동, 그외??) 영상 업로드 계획은 언제쯤인지 궁금합니다!