월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
component
삭제된 글입니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
meta
삭제된 글입니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
RayCasting 관련 질문
안녕하세요 UnityChan이 몬스터를 클릭했을 때 제대로 attack이라는 판정이 안들어가는 것 같아서 확인해봤는데 raycasting이 몬스터에 가까워질수록 하늘을 주시하더라구요 무슨 문제인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Animation 질문
안녕하세요 강의에서 사용하신 Knight가 없어서 다른 애니메이션을 가져왔습니다. attack 애니메이션을 unityChan에 적용하면 왜인지 모르겠지만 땅에 박혀있더라구요 auto로만 사용했을 때는 잘 되는 것 같은데 auto와 Unity model이 정확히 뭐가 다른건가요?..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
게임 튜토리얼 제작 시 궁금한 부분이 있습니다.
UI 부분을 학습하며 개인 게임 제작 중 궁금한 부분이 있어서 질문을 남기게 되었습니다. 게임을 개발하는 과정에서 위 사진과 같이 튜토리얼을 구현을 하려고 하였습니다. 먼저 저의 시도를 설명드리자면, 제 게임 씬은 UI 부분과 GameObject 로 이루어져 있어서 일단 UI 전용 Camera 와 나머지를 담는 Main Camera 를 생성하였습니다. 그리고 튜토리얼 전용 레이어를 둔 후 튜토리얼 레이어를 출력하는 Camera 를 만들었습니다. 그 후 Panel 을 UI 위에 덮어서 배경을 어둡게 표현하고 UI 가 클릭되지 않도록 하였습니다. 하지만 튜토리얼과 관련 없는 (Tutorial 레이어가 아닌) GameObject 중 OnMouse 이벤트를 받는 것들이 여전히 클릭되어서 따로 GameObject 의 이벤트를 잡아먹는 Object 도 필요할 것 같습니다. ----- 이렇게 구현을 해보고 있는데 코드나 하이어라키가 너무 더러워지는 것 같아서 관련 구현에 대한 팁을 검색을 해보았는데 제 검색 실력이 부족하여 관련 문서를 찾지를 못하여 질문을 올리게 되었습니다. 위의 사진처럼 나오도록 게임 튜토리얼 제작하는 것은 하이어라키를 어떻게 가져가면 좋을지 조언을 부탁드려도 괜찮을까요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
저는 audioSource.을 하였을때 PlayOneShot앞에 별표 모양이 표시되질않습니다.
이부분은 옵션 어디로 들어가서 수정을 해야할까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Json 파일 추가시 에러
안녕하세요 Json파일을 추가하고 긁어온 데이터를 Log를 찍는 과정에서 프로젝트가 다음과 같이 에러를 뱉어냅니다. Unity에서 StatData.json을 더블클릭해서 열면 한번 외부에서 수정했다는 문구가 뜨면서 솔루션 탐색기에서 아이콘이 변경되고 이후부터는 UNITY에 연결도 안되고 디버깅도 안됩니다..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI 접근 질문이요.!!
강사님 강의도 듣고 다른 강의도 들어보면서 UI관련 궁금한점이 생겼습니다.!! 예를들어 총을발사 후 총알수보여주는 UI에서 총알수를 변경을 하고싶은데요. 어떤식으로 접근해야하는지 궁금합니다. 예를들어 총 관련스크립트{ 총알 발사 => 총알숫자감소 총알관련 UI접근 =>감소 } UI스크립트{ Update() { 총관련스크립트에서 총알 수를 읽어 온 후 UI변경 } } 주로 첫번째 방법을 이용했었는데요. 첫번째 방법처럼한다면 Manager.UI. 이런식으로 어떻게 접근을 해야할것같은데 어떻게 접근을 해야하는지 궁금합니다. 이런 총알 관련 UI가 UI_Scene을 상속받은 후 접근을 해야하는지.. 아니면 UI_HpBar.cs 코드처럼 2번째 방법을 이용하는게 나중에 코드들이많아지면 이방법이 더 좋은방법인가요?.이방법도 옵저버패턴인지도 궁금합니다.!
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
오류가 떴는데 뭐가 문제인지 모르겠어요
Assets\Script\Managers\Managers.cs(16,19): error CS0246: The type or namespace name 'UIManager' could not be found (are you missing a using directive or an assembly reference?) 이런 오류가 떴는데요 Managers 스크립트에서 UIManager _ui = new UIManager(); public static UIManager UI { get { return Instance._ui; } } 이 두 줄이 문제라고 떴습니다. 문제를 찾고 싶어서 강사님이 올려놓은 코드+정리와 비교해봤는데 도저히 못찾겠어서 질문적어봅니다.. 아래는 오류난 유니티 파일 링크입니다. https://drive.google.com/file/d/16Ayu9tOwC4CKTQcAKrsrTuPx1Sa3Rh_5/view?usp=sharing
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
개발 방식 질문입니다!!
강의를 들으면서 평상시 제가 했던방법들과는 달라서요!! 객체지향 식인것같은데 컴포넌트식이랑 장단점의 차이나 실무에서는 어떤 방식을 쓰는지 궁금합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
FindObjectOfType 질문입니다.
GameObject.FindObjectOfType<BaseScene>(); 해당 함수가 Object를 찾는 기준이 궁금해서 유니티 도큐먼트를 검색해 봤는 데요 Description Returns the first active loaded object of Type type. first active loaded <- 이 말이 참 흥미롭더라구요 BaseScene이라는 컴포넌트는 유니크하기에 잘 찾겠지만 여러 게임 오브젝트가 동일한 컴포넌트를 들고있는 상태에선 어떤 게임오브젝트를 반환하나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Bind() 함수 관련 질문입니다
1. 자동화 1까지의 강의 내용만으로 봤을때 Bind<T>(Type type) 함수를 완료하게되면 현재 enum값으로 만들어져 있던 Buttons.PointButton에 유니티안에 있는 PointButton 게임오브젝트를 연결 시키는 작업을 한건가요? Buttons.PointButton에 접근해서 유니티안의 PointButton을 수정할수 있도록 만든것이라고 이해하면될까요..? 2. 아래 바인드 코드에서 유니티엔진배열의 objects를 만들때 names의 길이만큼의 비어있는 배열을 만들어주고 딕셔너리 형식의 _objects에 먼저 추가를 한 다음에 for문을 돌면서 objects[i]에 컴포넌트를 추가하였는데 _objects는 딕셔너리 형식인데 키가 없이도 objects[i]에 접근하여 바로 값을 수정할수 있는건가요..? 그리고 for문을 통하여 component를 찾는것과 _objects.Add를 하는것은 순서를 바꾸는게 저는 더 보기 편한것 같은데 상관없을까요? Dictionary<Type, UnityEngine.Object[]> _objects = new Dictionary<Type, UnityEngine.Object[]>(); void Bind<T>(Type type) where T : UnityEngine.Object { string[] names = Enum.GetNames(type); UnityEngine.Object[] objects = new UnityEngine.Object[names.Length]; _objects.Add(typeof(T), objects); for (int i = 0; i < names.Length; i++) { objects[i] = Util.FindChild<T>(gameObject, names[i], true); } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Visual Studio C# 프리퍼런스
루키스님 강의 잘 보고 있습니다. (: 이건 공부 관련 질문은 아니고 Visual Studio UI(?) 질문이라 조금 쌩뚱 맞아서, 죄송합니다. 루키스님의 Visual Studio C# 셋팅처럼 class나 function, 변수 등에 다른 색깔을 줘서 좀 더 편하게 알아보고 싶은데, 이건 preferences에 가서 수정하는 건 알고 있는데, Visual Studio 자체적으로는 C#은 수정할 수가 없는건지 도저히 못 찾겠더라고요. 혹시 어디서 어떻게 바꾸셨는지 알려주실 수 있으신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Mathf.Lerp 관련 질문
안녕하세요 Blending 강의 중 아래와 같이 wait_run_ratio 에 lerp를 입혀 blending을 하는 부분에서 질문입니다. 애초에 변수선언 시 wait_run_ration = 0; 으로 해당 변수값을 0으로 초기화를 하였는데 Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime)의 의미인즉 "wait_run_ratio(현재값)에서 0으로 이동한다"는 의미인데 애초에 0으로 초기화를 하였는데 0으로 이동하는 것이 가능한가요? 이해가 되지 않아 질문 드립니다. 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
transform에 대한 질문
안녕하세요 강의 잘 듣고있습니다. 이전 강의를 들으면서 transform이라는 변수를 통해 child에도 접근할 수 있고 gameObject에도 접근할 수 있음을 알게 되었습니다. 궁금한건 아래 코드와 같이 girdPanel.transform을 foreach에 넣어주면 자동으로 자식들의 transform이 child라는 변수에 들어가나요?.. 너무 신기합니다. 어떠한 원리에서 가능한걸까요..? 개발자의 편의를 위해 저런식으로 동작하게 구현해놓은걸까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
11:05 Object 관련 질문입니다
아래 비슷한 질문이 있지만 추가적으로 물어보고싶은게 있어 질문드립니다 return Object.Instantiate(prefab, parent); 에서 Instantiate를 바로 호출하면 재귀함수로 실행될 수 있다고 해서 Object를 붙이셨다고 했는데 혹시 Object 가 들어가는 이유가 Load 함수에 있는 where T : Object 때문에 Object로 같이 맞춰주는건가요? return GameObject.Instantiate(prefab, parent); 이렇게 작성해도 생성하고 삭제하는 동작은 정상적으로 하던데 GameObject로 작성하면 나중에 어떤 오류가 발생할까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
LayerMask 여러 값 설정 관련
안녕하세요 강의 때 비트연산 대신 LayerMask구조체를 활용하여 LayerMask 관리를 하는 방법을 배우고 있는데요, 여러 Layer를 동시 적용시킬 때 사용하는 연산자의 관점에서 하기 두 가지 방법의 차이가 있는지 궁금합니다. 여러 Layer를 동시 적용시킬 때 강의에서는 "|" 를 이용한 or문으로 연산을 하라고 하셨는데 이것저것 시도해 보았더니 "+"를 이용하여 연산하여도 Debug 상 값이 같게 나오더라고요 (위 연산의 경우 둘 다 768) "|" 대신 "+"를 사용하여도 관계가 없는지 궁금합니다. 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
AddComponent와 UI_Popup.cs에 대한 질문
안녕하세요 강의 너무 잘 듣고 있습니다. 강의를 들으면 들을수록 기초 개념이 부족하다는 생각이 듭니다. 1. 이미 되게 자연스럽게 쓰고있던 AddComponent 함수에 대한 질문입니다. 를 실행하면 ShowPopupUI에 들어가 GetOrAddComponent<UI_Button>(go) 함수를 호출한 셈이 될테고, 만약 go에 UI_Button 컴포넌트가 없다면 Add를 하게 될텐데 Add될 컴포넌트는 UI_Button.cs인가요? 더 궁금한건 실제 Prefabs/UI/Popup 안에도 UI_Button이란 prefab이 존재하는데 Unity가 이 둘을 잘 알아서 구분하나요? (물론 prefab이 컴포넌트로 붙을 수는 없다고 생각하지만 예를 들어 같은 이름의 스크립트 파일이 다른 파일에도 여러개 존재할 수 도 있을텐데 이럴땐 어떻게 구별하나요?) 2. UI_Popup의 init함수에 들어가는 내용이 Start에서 실행되지 않기에 UI_Button.cs의 Start()->Init()->base.Init()를 통해 간접 실행하게 되는데 UI_Popup에 있는 gameObject가 UI_Button으로 뜨는 이유가 아리송합니다. gameObject가 Component라는 조상클래스의 맴버 변수이며 UI_Button이 UI_Popup을 상속받았기에 가능한 일인가요? 3. ClosePopupUI함수를 virtual 키워드로 작성하신 이유를 알 수 있을까요? UI_Base에서 재정의하여 사용하는 경우가 있나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
바인딩 질문입니다.
바인딩 부분에서 FindChild가 component를 반환하고 실제 그 값을 UnityEngine.Object타입의 objects에 넣고있습니다. 문득 든 의문은Dictionary<Type,UnityEngine.Object[]> _objects 로 선언하여 componet를 UnityEngine.Object[] 배열에 담는 이유가 다형성을 이용하기 위함인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
너무 신기합니다...
너무 신기해서 문제입니다.. ㅠㅠ 제가 이런 기능(JsonUtility.FromJson) 을 접했을 때, 제가 혼자 이렇게 만들어갈 수 있을지 궁금해서 도큐먼트를 찾아봤는데요. Unity - Scripting API: JsonUtility.FromJson (unity3d.com) 도큐먼트의 예시는 'class Stat'와 같은 형태로 예시를 주고, 그런 형태의 오브젝트(Stat)으로 반환해준다고만 써 있는데요. class StatData의 List로 넣어서 편하게 리스트로 받을 수 있다는 발상은 어떻게 할 수 있는건가요? 제가 제네릭/클래스에 대한 이해가 부족한건가요? 아니면 보편적으로 상식적으로 많이 통용 되는 부분이라 JsonUtility를 만들 때 내부적으로 이래도 되게끔 만든건가요?