월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
정말 간단한 질문입니다..
Login Scene에서 @Scene 오브젝트가 들고 있는 컴포넌트가 LoginScene임에도 불구하고 GameObject.FindObjectOfType<BaseScene>(); 를 사용할 수 있는 이유는 LoginScene이 BaseScene을 상속하고 있어서 인가요? 즉, LoginScene이 BaseScene으로 형변환될 수 있기 때문인거죠?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
작성 후 리소스매니저에 제가 먼가 빠트린거 같은데..맞나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 리소스 매니저에 ui 버튼 스크립을 불러오기 (?) 를 안해서 그런거 같은데 맞나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Popup을 상속받은 개체가 IPointerDownHandler, IPointerUpHandler를 기능을 사용하려면 어떻게 해야할까요?
안녕하세요, 선생님의 강의를 참고하여 클리커 프로젝트를 제작중인데, 난관에 부딛혀서 질문을 드립니다 ㅜㅜ 일반적인 클리커 게임들처럼 길게 터치를 해서 업그레이드 하는 기능을 구현하고 싶었습니다. UI_Popup을 상속받은 Canvas 개체의 Button 을 통해 BindEvent를 해주었고, 클릭 이벤트를 통해 캐릭터의 능력을 업그레이드 하는 기능은 구현 되었습니다. 여기서부터 문젠데... 일단 UI_Base에 작성되어 있는 내용으로는, Click과 Drag만 구현되어 있길래 패기롭게 Up과 Down을 자체적으로 구현해보고자 했는데요... 장렬하게 실패했습니다... 별의별 삽질을 다해보다가 UI_Popup을 상속받은 Canvas 개체에다가 IPointerDownHandler와 Uphandler을 다시 상속을 시켜서 인터페이스를 구현해보고 별의별 바보짓을 다해봤는데 얘들은 아예 터치다운과 업이 받아와지지도 않았습니다 ㅜ UI_Base를 수정하자니 갑자기 탈트가 오는데 아래 람다식을 통해 필요한 기능을 써야되는건가 했는데 어떤식으로 외부와 연결을 지어줘야 되는지 갑자기 아득해졌습니다... 하드코딩등 이것저것 삽질을 해보았지만 제 실력으론 도저히 풀리지가 않네요... UI_Base 중 public static void BindEvent(GameObject go, Action<PointerEventData> action, Define.UIEvent type = Define.UIEvent.Click) { UI_EventHandler evt = MyUtil.GetOrAddComponent<UI_EventHandler>(go); switch (type) { case Define.UIEvent.Click: evt.OnClickHandler -= action; evt.OnClickHandler += action; break; case Define.UIEvent.Drag: evt.OnDragHandler -= action; evt.OnDragHandler += action; break; case Define.UIEvent.LongTouch: evt.OnLongTouchHandler -= action; evt.OnLongTouchHandler += action; break; case Define.UIEvent.LongTouchUp: evt.OnLongTouchUpHandler -= action; evt.OnLongTouchUpHandler += action; break; } evt.OnDragHandler += ((PointerEventData data) => { evt.gameObject.transform.position = data.position; }); evt.OnLongTouchHandler += ((PointerEventData data) => { Debug.Log("롱터치 구현해야되는 부분같은데 모르겠어서 보류"); }); evt.OnLongTouchUpHandler += ((PointerEventData data) => { Debug.Log("손떼면 어떻게 할지 구현해야되는 부분같은데 모르겠어서 보류"); }); UI_Handler 중 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class UI_EventHandler : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler/*, IDragHandler*//*, IPointerUpHandler*/ { public Action<PointerEventData> OnClickHandler = null; public Action<PointerEventData> OnDragHandler = null; public Action<PointerEventData> OnLongTouchHandler = null; public Action<PointerEventData> OnLongTouchUpHandler = null; public bool isTouched = false; private void Update() { if (isTouched) Debug.Log("롱터치중입니다요"); else isTouched = false; } public void OnPointerClick(PointerEventData eventData) { if (OnClickHandler != null) OnClickHandler.Invoke(eventData); Debug.Log("OnPointerClick"); } public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; if (OnDragHandler != null) OnDragHandler.Invoke(eventData); Debug.Log("OnDrag"); } public void OnPointerDown(PointerEventData eventData) { if (OnLongTouchHandler != null) OnLongTouchHandler.Invoke(eventData); isTouched = true; Debug.Log("롱터치중이다"); } public void OnPointerUp(PointerEventData eventData) { if (OnLongTouchUpHandler != null) OnLongTouchUpHandler.Invoke(eventData); isTouched = false; Debug.Log("롱터치에서 손뗐다"); } } 이부분은 언제나 어려웠어가지고... ㅜㅜ 어떻게 공부해나가면 좋을지 힌트라도 좀 얻고 싶습니다. 그럼 답변 부탁드리겠습니다. 언제나 건강 유의하시구요 좋은 강의 너무 감사합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI 위에 마우스를 올리면 키 입력이 되지않는 상황이 있습니다.
안녕하세요. 게임을 새로이 개발중에 모르는 내용이 있어서 질문드립니다. 현재 만드는 게임에서 UI위에 마우스를 올리면 키보드 입력이 되지않는 오류가 발생하고 있습니다. 저번에는 UI에 마우스 입력이 되지 않아서 구글링으로 검색해 Graphic Raycaster를 추가했는데, 그 때 부터 UI위에 마우스를 올리면 키보드 입력이 되지않았습니다. 관련이 있을지 모르겠지만 EventSystem도 하이어아키창에 만들어져있습니다. 다만 로비 에셋에서 New Input System을 사용해서 다음과 같은 새로운 인풋시스템을 사용하라는 문구는 떠있는 상태입니다. 계속 생각해봐도 그래픽 레이캐스터를 추가해서 생긴 문제인데.. 그래픽 레이캐스터를 없애면 UI클릭이 안되니 너무 막막해서 질문 올립니다. PS. 저번에 비전공자 취업 관련해 답변해주신 것 다시 한 번 너무 감사드립니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Collider 관련 질문
강사님 안녕하십니까 이동 오류 관련해서 질문 사항이 있습니다.이동 과정을 따라한 후 실행해 보니 캐릭터가 계속 뒤뚱뒤뚱하는 현상이 있었습니다. 그래서 질문을 찾아보니 다른 분도 그렇게 뒤뚱거리다가 부웅 뜨는 현상이 발생한다고 하더군요. 저도 마찬가지로 unity짱의 RigidBody의 Use Gravity 와 Is Kinematic을 다 끈 상태였습니다. 그렇게 디버그도 해보고 이리저리 움직여 보다 Capsule Collider의 범위가 유니티짱 발밑으로 조금 아래 설정되어 있다는 것을 찾고 그 범위를 수정하니 뒤뚱거리고 부웅 뜨는 현상이 없어졌습니다. 제가 궁금한 점이 gravity를 끈 상태임에도 뒤뚱거리는 현상(중력이라고 생각합니다)이 발생한 것은 Collider자체의 물리 때문인가요..?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_EventHandler 질문입니다
UI_EventHandler 컴포넌트를 UI_Button 오브젝트에 적용시키고 OnBeginDrag, OnDrag를 콘솔창에 Debug.Log할 때 강의와 질문드립니다. 강의에서는 text, img, button 전부 Drag가 잘 출력되는데 저는 img 오브젝트에서만 반응합니다 UI_Button 오브젝트에서 UI_EventHandler 컴포넌트를 제거하고 ScoreText에만 컴포넌트를 적용시켜 보아도 Drag가 출력되지 않습니다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class UI_EventHandler : MonoBehaviour, IBeginDragHandler, IDragHandler { public void OnBeginDrag(PointerEventData eventData) { Debug.Log("OnBeginDrag"); } public void OnDrag(PointerEventData eventData) { Debug.Log("OnDrag"); } } 해결하고 싶습니다 ㅠ.ㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
type provided must be an enum. (parameter 'enumType') 라고 오류가 발생합니다
ArgumentException: Type provided must be an Enum. Parameter name: enumType System.RuntimeType.GetEnumNames () (at <695d1cc93cca45069c528c15c9fdd749>:0) System.Enum.GetNames (System.Type enumType) (at <695d1cc93cca45069c528c15c9fdd749>:0) UI_Base.Bind[T] (System.Type type) (at Assets/Scripts/UI/UI_Base.cs:13) UI_Inven.Init () (at Assets/Scripts/UI/Scene/UI_Inven.cs:19) UI_Inven.Start () (at Assets/Scripts/UI/Scene/UI_Inven.cs:14) Enum 타입을 적으라고 써있는데 무슨소린지 모르겠네요 string[] names = Enum.GetNames(type); 요걸 가리키는데 이게 분명 Enum이 맞는데 도저히 모르겠습니다 유니티 엔진 버전 때문에 이런 문제가 발생하는걸까요? 2020.3.25f1 을 사용하고 있습니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
저도 3D 사운드 효과가 적용 안되네요
아마..강의에서 빠진 부분인것 같은데요, 강의에서 내용을 앞뒤로 다시 들어봐도 뭔가 코드에 추가 설정해야줘야 하는 부분이 빠진 것 같습니다. (플레이 하자마자 배경음이 들리는 점, 배경음이 이전 회차에서 설정한 음악이 아닌 점 등이 차이 나네요) 워낙 강의하시는 범위가 넓다보니 생긴 문제 같은데 아래 분이 댓글 달아주신 것처럼 해봐야 할 것 같습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티에서 사용되는 싱글톤 질문입니다.
현재 언리얼 강의 수강후, 유니티 강의도 수강 중입니다. 이번 유니티 강의를 완강 후에 개인적으로 느낀 것인데, (?) 뭔가 배울 코드가 많은 건 유니티 강의 쪽이었던 것 같습니다. 물론 언리얼 강좌가 현재 미완성이라는 건 알고 있습니다. 다만 루키스 강사님 강좌 말고 다른 언리얼 강좌를 봐도, 이번 유니티 강좌처럼 ~Manager 같은 걸 만드는 내용이 별로 안 나오더군요. 솔직히 강의 따라 Manager를 만들면서, 프레임워크라고 해야 하나? DataManager든, Resource매니저든, SpawningPool 이런걸 만들때 시야를 넓게 보는 감각이 있던게 상당히 새로웠습니다. 유니티에서는 하나하나씩 쌓아올린다는게 이런건가 싶더군요. 그런데 제가 미숙해서 그런건지 모르겠지만, 혹시 언리얼에서도 이렇게 매니저 같은걸 만들어서 프레임 워크를 짜는 경우가 많을까요? 아니면 이미 언리얼쪽은 Actor든, GameMode든, 여러 코드들이 완성되어 있어서 굳이 짤 필요가 없는 건가요. 언리얼은 이미 완성된 틀에서 코드를 작성한다~ 이런 느낌의 말을 얼핏 기억하고는 있는데, 뭔가 알것 같으면서도 잘 모르겠습니다. 대충 언리얼의 GameInstance가 이번 강의에서 나온 싱글톤 역할을 하는거 같은데, 그러면 언리얼의 GameInstance에서도 이번 강의에서 배운 매니저들을 엮어도 되는 걸까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Knight가 제자리에서 공격하는데 본인 체력이 닳습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 에러 문구는 이렇게 뜨는데 Look rotation viewing vector is zero UnityEngine.Quaternion:LookRotation (UnityEngine.Vector3) MonsterController:UpdateSkill () (at Assets/Script/Controllers/MonsterController.cs:82) BaseController:Update () (at Assets/Script/Controllers/BaseController.cs:65) 전 벡터 쪽 문구는 건드린적이 없고 혹시나 해서 올려진 코드를 붙여넣기 해도 똑같이 나옵니다 MonsterController.cs 의 GameObject.FindGameObjectWithTag("Player"); 를 Managers.Gmae.GetPlayer();로 변경시 문제가 발생합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Panel 추가 이유
안녕하세요 선생님. Canvas 하위에 Panel을 추가한 이유에 대해 궁금해서 질문 남깁니다. 앵커를 사용하기 위해서는 앵커를 사용하고자 하는 객체의 부모가 Rect Transform을 가지고 있어야 한다고 강의에서 말씀하셨습니다. (예를 들어 Button에서 앵커를 사용하고자 한다면 Button의 부모인 Panel이 Rect Transform을 가지고 있어야 함.) 근데 굳이 Panel을 추가하지 않아도 Canvas가 Rect Transform을 가지고 있기에 Button에서 앵커를 사용할 수 있을 것 같습니다. 이에 Panel을 굳이 추가한 이유에 대해 궁금합니다. 아 그리고 Panel을 추가하면 화면이 약간 뿌옇게 되는데 왜 그런 건지도 궁금합니다. 항상 강의 잘 듣고 있습니다. 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
메모리 관리 및 강의 외 질문 있습니다!
안녕하세요! 어렵지만 강의 잘 듣구 있습니다! 이번 시간 Clear()메소드로 메모리 관리하는 것을 보고, 이해는 다 하였는데 C#은 가비지 컬렉터가 적용되는 스크립트 아닌가요..? 게임 특성상 메모리 관리가 바로바로 동기화가 되어야 프로세스가 원활하기 때문에 임의로 메모리 관리를 해주는 것인지가 궁금합니다! 또한, 유니티라서 그런지 아니면 이 정도의 규모로 들어가는 프로그래밍이 처음이라서 그런지 반정도는 이해하면서 코딩하고, 반정도는 그냥 따라치는 느낌이 조금씩 듭니다..(특히 UI 수업 때 유니티 엔진에서 제공하는 메소드들에 대해서 그런 느낌이 강하게 듭니다) 게임에 대해서 공부하는 것이 처음이라서 당연한 것이긴 하지만, 그래도 나름 따라가려고 코드 리뷰도 하고 반복하면서 보고 있는 중인데, 해당 챕터를 완벽하게 이해하지 못하면 앞으로 나오는 강의(네트워크나~데이터베이스)등에서도 지장이 있을까요? 게임 업계쪽으로 진로를 확정했다기 보다는, 다양한 프로그래밍 경험을 쌓는 것에 본 강의 수강의 목적인지라서 고민이 됩니다. 항상 좋은 강의 들려주셔서 감사합니다 :D
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
OnHitEvent에서 상태를 Moving으로 바꿨는데 공격을 한번만합니다
강의를 시청하면서 따라하는도중 16:00강의 부분에서 _state = PlayerState.Moving; 으로 바꾼뒤에 유니티를 실행해보았으나 한번만 공격하는 모션을 보인뒤 멈추고 애니메이터에서는 ATTACK이 게이지를 전부 채운상태로 멈추고 있었습니다. 혹시 몰라 Idle로 바꾸어 다시 실행해보았으나 Idle일 경우에는 ATTACK을 전부 실행한 후에 WAIT을 반복하는 중이던데 제가 무엇인가 빠뜨린부분이 있어서 이런현상이 나타나는 건가요? 강의를 다시 시청하면서 확인하는데도 계속해서 마우스를 몬스터에게 누르고있을시에 ATTACK을 반복하지 않고 게이지가 다 채워진 상태에서 멈추네요..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Layer 다중 선택 관련 질문입니다
강의에서는 Monster Layer와 Wall Layer를 함께 선택하기 위해 LayerMask.GetMask("Monster") | LayerMask.GetMask("Wall") 가 사용됐습니다. 근데 LayerMask.GetMask를 살펴보니 LayerMask.GetMask(params string[] layerNames) 로 되어 있는 것을 알게 되었습니다. 이에 LayerMask.GetMask("Monster", "Wall")로 사용해 봤더니 제가 원하는 대로 실행이 잘 되더군요 제가 시도한 방법도 제대로 된 방법인 건지 궁금해서 질문 남김니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이런 오류는 어떻게 하나요..??
Scend에서 컴포넌트 붙이는 왼쪽 화면??이 안보이기 시작했습니다.. 이런식으로 안보이기 시작했고 이전에는 TLS Allocator ALLOC_TEMP_THREAD, underlying allocator ALLOC_TEMP_THREAD has unfreed allocations, size 97 이런 오류 메세지가 뜨기 시작하면서 오른쪽에 원래? 뜨던것이 안보이는데 어떻게 해결하나요..???ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
오브젝트와 게임오브젝트 차이
1.unityEngine.Object 에 들어가는게 컴포넌트가 들어가는건가요 아니면 그 컴포넌트를 가진 오브젝트가 들어가는건가요? 2.public GameObject obj;와 public UnityEngine.Object obj ;에서 obj가 어떤식으로 다른지 잘 모르겠습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Rotation 강의 질문입니다.
안녕하세요. 강의 코드를 진행하면서 유니티 실행 후 테스트 과정 시 대각선끼리의 방향 이동에 대해 이상이 있어 질문드립니다. 일반적인 이동은 무리가 없고 임의의 대각선 방향에서 바로 반대쪽 대각선 방향으로 움직일 때 Rotation을 하지 않고 움직이는 현상이 있습니다. Quaternion.Lerp의 3번째 인자 값인 Rotation하는 속도 문제인 것 같아서 0.5f로 하니 문제는 없는 것 같은데 해당 현상이 발생하는 정확한 이유를 모르겠습니다. if (Input.GetKey(KeyCode.W)) { transform.position += Vector3.forward * Time.deltaTime * _speed; transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), 0.2f); } if (Input.GetKey(KeyCode.A)) { transform.position += Vector3.left * Time.deltaTime * _speed; transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Vector3.left), 0.2f); } if (Input.GetKey(KeyCode.S)) { transform.position += Vector3.back * Time.deltaTime * _speed; transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.2f); } if (Input.GetKey(KeyCode.D)) { transform.position += Vector3.right * Time.deltaTime * _speed; transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.LookRotation(Vector3.right), 0.2f); }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이벤트 리스너..?에 관련하여 질문 있습니다.
Manager.input.KeyAction -= OnkeyBoard; Manager.input.KeyAction += OnkeyBoard; //기존에 구독이 있을지 모르니 취소하고, 다시 구독 신청 // Manager 클래스의, input 을통하여 instance. _input을 반환받고, 여기서 KeyAction이라는 deleagate의 OnkeyBoard 메소드를 체이닝 이라고 이해하였는데 맞게 이해한 것인지 여쭤 보고싶습니다! 또한 invoke() 메소드는, KeyAction이라는 함수 포인터에게 연결되어 있는 함수들을 호출하라고 알려주는 메소드가 맞는 것인가요? 감사합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 라이선스
안녕하세요. 혹시 해당 만료일이 지나면 해당계정에서 무료로 Personal라이선스를 사용 할 수 없게 되나요? 구글링해도 원하는 답이 나오지 않아 질문드립니다.. 감사합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
CrossFade에 대해 질문 드립니다!
_playerAni.CrossFade("Attack", 0.1f, -1, 0); 으로 사용 할 때 이 코드를 한 번만 부르면 예로 Start에 이것 하나만 때려 박혀있는 상태라 가정하면 Attack이 지속적으로 실행되어야하 는게 맞지 않나요..? 애니메이션이 문제인건지 뭔지를 모르겠는데 한번 실행 후 멈춰 있는 느낌이여서 어쩔 수 없이 ani를 loop가능하게 체크하고 _playerAni.CrossFade("Attack", 0.1f); 이렇게 사용 하고 있는데 _playerAni.CrossFade("Attack", 0.1f, -1, 0); 이 코드를 사용 했을 경우 애니메이션이 루프가 돌지 않는 이유야 엄청 나고 상황에 따라 다르겠지만 혹시 혹시나 돌지 않는 이유중에서 뭔가 흔한 무언 그런 이유가 있을까요?