월 22,000원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
어드레서블을 사용할 때 UI에 들어가는 스프라이트들은 안올려도 괜찮은가요?
에셋 번들을 사용할 때 UI 프리팹을 에셋 번들에 업로드 해두어도 거기에 사용된 스프라이트들을 안올리면 이미지들이 전부 하얀 박스로 나와서 이것들을 전부 에셋 번들에 업로드를 해주었었는데 해당 프로젝트에 어드레서블을 보니 따로 스프라이트를 올려두진 않았더라구요. 이렇게 사용 해도 딱히 문제가 없어서 이렇게 하신건가요?
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
매니저 옆에 Ex는 무슨 뜻인가요?
GameManagerEx , SceneManagerEx별로 중요한 내용은 아닌 것 같지만궁금합니다.
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
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의 경우는 알 필요가 없나요?)
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
랜덤 확률 계산
안녕하세요. 관련 프로젝트 클론 코딩하던 중, 질문이 생겨서 적어봅니다.목표 : 누적확률(시행마다 가중치 X) 없이 독립시행으로, 확률에 따른 이벤트 발생#과정 1.float _rand = Random(0f,1f)=====#과정2. 0.5f를 기준값으로 계산ex)시행 1: _rand = 0.6f시행 2: _rand : 0.2f=> 시행 1 -> 1 - 0.6 = 0.4f=>시행 2 -> 0.5보다 낮으므로 0.2f=====#과정3.2에서 계산된 _rand값을 기준으로 해당되는 확률 테이블의 데이터를 가져올 때, 시행 1 -> 0.4f이므로, acqPercent 0.4 이하인 요소들을 전부 List로 끌고 온 뒤, 그 List에서 랜덤으로 뽑음=====질문 : 이러면 처음에 rand로 나온 값이 의미가 없어지고 rand 미만의 요소들이 담긴 list에서, 1/list 갯수 만큼의 확률로 계산되는거 같은데 ( 원래 설정한 0.005, 0.1 이런건 무시되고 )아예 확률표를 잘못 작성했다던가 계산법이 잘못된거 같은데 잘 모르겠습니다 ㅠㅠ참고자료 : 엑셀 표 ( 총 확률은 0.7 , 나머지 0.3은 아무것도 발생시키지 않도록 설정)
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
TitleScene 시작 시 StartText에 스크립트가 없습니다.
프로젝트 다운 받고 실행해보니 몇개의 오브젝트에 스크립트가 없습니다.제가 사용하는 유니티 버전이 2022.3.0인데 혹시 버전 문제인지,공유하실 때 제거가 된건지 궁금합니다.
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
멘토링 관련 질문이 있어요!
7월 멘토링 일정중에 웹서버는 어떤 것을 사용하는지 궁금합니다.
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
안녕하세요 유니티 강의를 보고 해당 강좌를보게되었는데요
유니티 강의하실때는 PoolManager를 만드셔서 활용하는것을 보여주셨는데 해당 강의에서는 Addressable을 사용만하고 Pool 은 안하시는거같아서요, 해당 Addressable을 쓸대 캐시쪽에 저장이되어서 일부러 안하시는건가요??
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
스테이지 찾는부분 조금만 더 자세히 설명부탁드려요 ㅠㅠ
GetButton((int)Buttons.ChapterButton_1).gameObject.BindEvent(() => { OnClickChapterButton(1); });UI_SelectStageScene.cs 에서 왼쪽에 배치된 챕터 버튼들 같은 경우에는 위처럼 바인드해서 ChapterButton_1 은 OnClickChapterButton 메서드에 1을 전달하니까 너무 직관적인데요 Stage는 잘 이해가 안가요 ㅠㅠfor (int i = 0; i < _stageBlockUI.Length; i++) { _stageBlockUI[i] = Utils.FindChild<UI_StageBlock>(gameObject, "UI_StageBlock" + (i + 1), recursive: true); }Child에서 "UI_StageBlock" 를 전부 찾아서 _stageBlockUI[i] 에 저장하고UI_StageBlock.cs 에서 아래처럼 바인드를하고..?GetButton((int)Buttons.SelectStageButton).gameObject.BindEvent(OnClickStageButton);OnClickStageButton() 으로 넘어가서 _selectStageSceneUI?.OnSelectStage(_stage); OnSelectStage를 실행하면서 _stage를 전달하는데_stage가 몇인지는 어디서 판단하는건지 모르겠어요.그러다보니 Refresh()함수에서도 _stage로 Text입히는것도 연결이 안되네요.그리고 눌렀을때 콜백을 받아서 ShowStartStagePopup()으로 넘어가는데public void ShowStartStagePopup() { Managers.UI.ShowPopupUI<UI_StartStagePopup>(callback: (popup) => { int templateID = (_selectedChapter - 1) * 20 + _selectedStage; popup.SetInfo(Managers.Data.Stages[templateID]); });여기서도 tempateID 를 가져오기 위한 _selectedStage가 몇스테이지인지 어디서 판단하는건지를 모르겠어요 ㅠㅠ 저만 계속 질문하는것 같아 너무 죄송스럽습니다. C# 1편이랑 3편이랑 하고 넘어왔는데도 여전히 어려워요... 자꾸 질문하는게 죄송스러워서 맘편히 질문만 할수있는 강의 그런거라도 있으면 구입하고싶어요. 좋은 주말되세요!
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
어드레서블 사용 기준..!?
안녕하세요. 초보자이며 프로젝트 규모가 작다면 어드레서블을 굳이 사용할 필요가 없다는 말씀 듣고 질문드립니다. 기존의 Resource에서 로드하는 방식이 코드도 간결하고 쉬웠는데 어드레서블은 조금 복잡하네요 ㅠㅠ제가 이해한 바로는초기 빌드 용량이 커지거나 로딩 시간이 길어질때씬 이동이 자주 일어나거나 해서 불필요한 메모리를 계속 들고있을 필요가 없을때추후 빌드없이 패치를 구현하고 싶을때등등에서 어드레서블 사용이 권장되는 것 같은데 제가 만드려는 게임에서 어드레서블이 필수인지 판단이 어렵네요.그래서 혹시 강사님께서는 프로젝트에서 어드레서블을 사용하는 것이 효율적일것 같다 라고 판단하시는 어떤 기준이 있으신가 해서 질문드립니다. 항상 좋은 강의 감사드립니다!
- 미해결[실전 게임 코드 리뷰] 유니티 캐주얼 게임 (엘리스팡)
기획서 관련
OT 잘봤습니다. 스스로 새로운 게임을 뜯어볼 생각을 하니 기대가 큽니다.다름이 아니라 개미 주식회사에서는 기획서를 동봉해주셔서 해당 내용 바탕으로 공부를 했는데, 혹시나 싶어 기획서는 없는지 여쭤보고싶습니다. 제 생각에는 출시 직전인 게임의 기획서를 같이 동봉하는게 말이 안된다고 생각은 하지만, 만약 기획서가 있다면 그 기획서를 보면서 기획서 작성도 같이 공부할까 합니다.아무쪼록 언리얼쪽으로 넘어가신다니 아쉽지만 저두 C++ 비롯하여 언리얼쪽을 공부할 때 꼭꼭 찾아뵙겠습니다.