월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
마우스 클릭 후 도착지점에서 캐릭터가 엎어집니다.
실습중에 강의 결과와 달리 나오는 것이 있어 질문드립니다 강의 Part3: 유니티 엔진/ Camera#2/ 15:20 현상 마우스 클릭 하고,도착지점에서 캐릭터가 쓰러집니다 환경 다른 답변에서 알려주신 naver mail 로 코드를 보냈습니다 2022.3.24.목 14:39 발송 UnityChan 의 Freeze Rotation (x,y,z) 은 모두 True 입니다. 디버깅 도착지점 직전 Mathf.clamp 가 정상 동작하여 moveDist 값이 0이 됩니다. 그러나 여기서 F11 을 눌러 한 단계를 더 진행하면 transform.position 과 _destPos 이 값이 동일함에도moveDist 값이 조금 튑니다. 디버깅을 해도 의문점만 더 커지고 뭐가 잘못 되었는지 모르겠네요 ㅜㅜ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI 관련해서 질문드립니다
1. UI_Scene/UI_Popup의 차이-> 결국 크게보면 sortingOrder를 관리해주는지의 여부가 맞나요? 애매하긴하지만.... 가장바닥에 깔릴 용도의 UI = UI_Scene / 어떤 UI의 위로 올라올 용도인 UI = UI_Popup으로 봐도될까요?2. UI_Scene의 경우 Close(Hide/Destroy)구현은 다루지 않은것인가요? 혹시 놓친부분이 있을까요..... 3. 대부분의 UI들이 경우 빈번하게 Show/Hide 되는 경우 매번 Show/Hide하기위해서 잦은 Instantiate / Destroy가 이루어져도 괜찮을까요? 캔버스단위의 UI들을 미리 씬에 올려두고 SetActive(true/false) 하는식으로 쓸 경우 문제될여지가 있을지 궁금합니다.4. 캔버스 / 프리팹들을 관리? 나누는 기준어떤기준으로 캔버스나 프리팹들을 나누시는지 궁금합니다.심하게는 1개의 캔버스에 ui들을 추가/삭제할수도있을텐데캔버스를 나눠쓰는 기준, 프리팹도 묶는데 어떤 기준이 좋은지궁금합니다.5. 이미지에 대해- Sprite(Sprite Renderer)- Image(UI Canvas)- Raw Image(UI Canvas)각각 어떤상황에 어떤용도로 사용해야 적절한지 궁금합니다.감사합니다 ㅎㅎ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
@Pool_Root에 질문이 있습니다.
강의 정말 잘 듣고 있습니다. 제가 질문드릴 것은 @Pool_Root에서 Unity_Chan이 pool 생성이 되야 하는데 생성이 되지 않습니다. 소스를 다운받아서 poolManager나 다른 소스들을 비교해가면서 봤는데.. 도통 뭐가 문제인지 잘 모르겠습니다. 혹시 무슨 문제인지 알려주시면 정말 감사합니다. 실행된 unity인데 보시는 바와 같이 생성이 안된채로 나옵니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
프리팹 썸네일에서만 모델이 회색으로 나옵니다
강사님 영상에서는 씬에서 만든 탱크를 프로젝트 탭으로 옮겼을 때 프리팹 썸네일이 제대로 흰색 탱크 이미지로 나오는데 저는 이상하게 프리팹 썸네일의 모델이 회색으로 나옵니다. 다시 씬에 프리팹을 추가해보면 제대로 흰색으로는 나오는데 왜 이미지만 회색으로 나오는지 도통 모르겠습니다. 구글에 검색해봐도 저랑 같은 문제가 나타난 사람이 없는 것 같아요. 버전은 2020.3.30f1(LTS버전) 입니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티에서 오류 발생
분명히 그대로 코드를 작성한 것 같은데 이상하게 NullReferenceException: Object reference not set to an instance of an object Managers.get_Resource () (at Assets/Scripts/Managers/Managers.cs:13) PrefabTest.Start () (at Assets/Scripts/PrefabTest.cs:11) 라는 오류를 뱉어내면서 실행해보면 탱크를 안 뱉어내네요... 제 잘못이겠지만 도저히 비교해서 봐도 알 수가 없네요... 구글에 오류 내용을 검색해봐도 뭐가 null 값이 됐다는 건지... 아래는 순서대로 매니저, 리소스매니저, 프리팹테스트, 유니티 캡쳐본입니다. 유니티는 2020.3.30f1 버전입니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
@Managers 오브젝트 생성 메서드 질문드립니다.
질문에 앞서 좋은 강의 감사합니다:) 13:51초 부분에서 문득 든 생각때문에 질문드립니다. GameObject go가 @Managers오브젝트에 잘 연결됬는지는 확인하고 있지만 Manager컴포넌트도 안에 있는지는 체크를 안하고있는데 이부분은 크게 고려하지 않아도 되나요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
게임 오브젝트 던지기 질문
안녕하세요 강사님 배운 것을 토대로 게임도 만들어보고 2번째 게임 제작 중입니다. 게임 오브젝트를 드래그 앤 드롭으로 던지면 해당 속도만큼 게임 오브젝트가 날라가는 것을 구현하려고 합니다. 해당 구현부만 테스트 중이며 구글링으로는 마우스 클릭 시 오브젝트가 날라가는(?) 형식의 글 밖에 안보여서 질문드립니다. 제 나름대로 어느정도 구현을 하였는데 마우스 드래그 시작 시 이전 속도를 없애는 코드가 작동하지 않습니다. 그리고 귀찮으실 수 있겠지만 실제 게임에서는 구현을 어떤 식으로 하는지 궁금합니다. using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class Test : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler { Rigidbody rb; float y; float startTime, endTime; Vector3 startPostion, endPostion; private void Awake() { // y축 고정 y = transform.position.y; rb = GetComponent<Rigidbody>(); } // 드래그 중일 시 해당 객체가 따라오도록 설정 public void OnDrag(PointerEventData eventData) { transform.position = GetPosition(eventData); } public void OnBeginDrag(PointerEventData eventData) { startTime = Time.time; startPostion = GetPosition(eventData); // 드래그 시작 시 속도를 0으로 만듬(작동안함) rb.velocity = Vector3.zero; } // 드래그 종료 시 속도를 구해 해당 방향으로 날려보냄 public void OnEndDrag(PointerEventData eventData) { endTime = Time.time; endPostion = GetPosition(eventData); // 속도 = 이동거리 / 걸린시간 Vector3 dir = (endPostion - startPostion).normalized; float dis = (endPostion - startPostion).magnitude; float speed = dis / (endTime - startTime); // 해당 방향으로 속도의 10배에 가하는 힘을 가한다. rb.AddForce(dir * speed * 10f); } // 레이캐스트는 해당 객체가 아닌 해당 객체 뒤의 물체에 하며, 그 물체의 좌표를 반환 Vector3 GetPosition(PointerEventData eventData) { RaycastHit[] hits; Ray ray = Camera.main.ScreenPointToRay(eventData.position); //Debug.DrawRay(Camera.main.transform.position, ray.direction * 100f, Color.red, 1.0f); hits = Physics.RaycastAll(ray, 1000f); foreach (RaycastHit hit in hits) { if (hit.collider.name != transform.name) { return new Vector3(hit.point.x, y, hit.point.z); } } return transform.position; } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Animation 질문이 있습니다.
코드는 똑같은거 같은데 유니티에서 작동이 이상하게 됩니다. unity에서 마우스를 클릭하고 Run->Wait를 할 때, 0으로 떨어지지가 않습니다. 한 0.91 이정도로 밖에 떨어지지가 않네요.. 이상태로, 계속 돌아가네요... 왜이런지 디버그 하면서 봤는데도 잘 모르겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Raycast 오버로딩된 함수들 확인할때 사용하시는 단축키가
안녕하세요Raycast 오버로딩된 함수들 확인할때 사용하시는 단축키가 알고싶습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
모바일에서 Resources 폴더 사용 문제
이번에 새로 만드는 모바일 게임에서 만들어주신 프레임워크를 활용하려고 합니다. 그런데 기기 테스트를 해보니 로고가 나간 뒤 본 화면이 뜰 때까지 1초~2초 남짓의 시간이 걸리는 것을 발견했습니다. 원인을 계속 찾다가 Resources 폴더 안의 파일들이 게임 실행 시 일괄적으로 로딩이 되어 그렇다는 얘기를 듣고 Resources 폴더를 삭제해보니 딜레이가 사라졌습니다. 모바일에서는 Resources 폴더를 사용하면 안되는 걸까요? 아니면 딜레이를 해결할 수 있는 방법이 있을까요? 제 선에서는 딜레이가 생기는 도중 로딩 화면을 넣는 걸 생각해 봤지만 방법은 모르겠습니다. 답변 부탁드립니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
점프 관련 질문드립니다.
안녕하세요 Rookiss강사님 강의 잘 듣고 있습니다. 유니티 엔진 Part3까지 들었고 이후에 혼자 여러가지 추가해보고 있습니다. 현재 플레이어 점프 구현 중인데 며칠동안 문제를 찾지 못해서 질문드립니다. 점프 관련 구현한 것은 네번째 사진입니다. Space를 누르면 점프 실행되고 점프 애니메이션이 끝까지 실행됩니다. 그 이후로 바닥에 내려오면 Idle 상태로 넘어가도록 했으나 넘어가고 있지 않는 걸로 봐서는 바닥과의 충돌이 안되고 있는 것으로 보이는데 원인이 무엇이 있을까요? 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
싱글톤 관련 질문있습니다.
안녕하세요, Rookiss님. 좋은 강의 잘 보고 있습니다! 질문이 하나 있습니다. 아래의 강의 코드를 가지고 이것저것 실험해보던 와중, 한 가지 아쉬운 점을 발견했습니다. static void Init() { if (s_instance == null) { GameObject go = GameObject.Find("@Managers"); if (go == null) { go = new GameObject() { name = "@Managers" }; go.AddComponent<Managers>(); } DontDestroyOnLoad(go); s_instance = go.GetComponent<Managers>(); } } 여기서, @Managers라는 게임오브젝트는 만들었는데 그 오브젝트에 Managers 클래스를 컴포넌트로 붙이지 않은 특이한 케이스를 가정해보았습니다. 텅 빈 @Managers 오브젝트만을 만들고 바로 실행해보니 오류가 나더군요. 디버깅해보니, 이 코드가 @Managers라는 오브젝트는 있는데(go != null 인 경우), Managers 스크립트가 컴포넌트로는 없는 경우를 포착하지 않아 _instance에 null을 집어넣기 때문에 발생했습니다. 이 상황까지 고려해서 아래와 같이 코드를 짰는데, 이렇게 해도 괜찮은 걸까요? static void Init() { if (s_instance == null) { GameObject go = GameObject.Find("@Managers"); if (go == null) { go = new GameObject() { name = "@Managers" }; go.AddComponent<Managers>(); } else if (go.GetComponent<Managers>() == null) { go.AddComponent<Managers>(); } DontDestroyOnLoad(go); s_instance = go.GetComponent<Managers>(); } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의를 바탕으로 UI_Inventory구현
챕터 3 UI챕터부문을 바탕으로 다른 프로젝트 인벤토리 자동화를 구현했는데 본 영상에선 팝업 UI들을 Instantiate 한뒤 Destory로 없애주었는데 인벤토리 같은경우는 많이 사용하는 UI이고 생성시마다 Slot들을 생성해주는게 SetActive(false)를 이용하는 것보다 더 좋은 방법인가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
안녕하세요 잘 모르겠는 참조 문제가 나와 질문드립니다
안녕하세요 수업 들으면서 진행하구있는데요! 코드도 잘 따라했구 오타도없는것같은데 참조 문제가 나와서 질문드립니다 이 오류는 다른 게임 오브젝트에 PlayerController를 컴포넌트로 넣어 게임을 진행했을때 발생을 하는데 문제는 유니티와 비쥬얼스튜디오를 완전히 종료후 재실행 하면 오류가 나오지않아요 ㅠ Tank prefab을 진행할때도 탱크에 PlayerController를 넣어줬을때도 오류가 나와서 ㅠㅠ 계속 재부팅하면 사라지는 참조오류가 나오네요 ㅠ 왜그런지 알 수있을까요 ㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
BaseController 충돌기 질문
안녕하십니까 강사님 강의 코드 구조를 토대로 간단한 게임을 만들고 있습니다. PlayerController가 BaseController를 상속받고 있는데 해당 플레이어가 Collider가 있는 물체와 충돌했을 시OnCollisionEnter를 통해 코드 실행권을 가져오고 싶습니다. BaseController 스크립트가 직접 달려있는게 아니다보니 BaseController의 OnCollisionEnter가 작동하지 않는것 같은데 가져올 수 있는 방법이 있을까요? 코드 구조에 관한 내용이다보니 검색으로 찾기가 힘드네요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
c#과 유니티로 만드는 mmorpg 게임 개발
안녕하세요. 이제 3강을 끝마쳐가는 수강생입니다. 이 수업이 다 끝나갈때쯤 제가 루키스님께서 소개 영상에 올리신 2D 게임을 실제 게임서버로 운영도 하고 다른 사람들도 플레이 할 수 있고 배포할 수 있는걸까요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Popup 컴포넌트의 Start()는 왜 실행이 안된건가요?
UIManager의 ShowPopup() 메서드에서Utill.GetOrAddComponent<UI_Popup>() 메서드를 호출했기때문에 UI_Popup 컴포넌트가 무조건 생성되있을거라 생각하는데, Start() 이벤트 함수가 실행되지 않았는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Scene 이동하고 나서 검은 화면
Login Login scene에서 Q를 누르면 Game scene으로 이동하는 법을 학습 중입니다! 이동은 잘하는데 이동하고 나서는 카메라에선 Plane이 검정색으로 바뀝니다... 그냥 제가 자유롭게 보는 화면에선 제대로 보이는데 이유가 뭘까요?? 코드는 여러번 확인하여 Rookiss님과 동일함을 확인하였습니다!! 그리고 게임 시작 전에 UnityChan이 허수아비 처럼 서 있어야 하는데 제 오브젝트는 이렇게 게임 시작 누르기도 전에 준비자세를 취하고 있습니다!! 이유가 뭘까요..??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
다른 클래스 필드에 선언된 멤버변수 bool의 값을 실시간으로 받아오려면?
안녕하세요, 지난번 답변해주신 내용을 참고하여 이어서 작업을 해보다가... 이벤트 핸들러(UI_EventHandler)에 관한 질문을 한번 더 드려봅니다. 현재 제가 가장 헷갈리는 개념이 발생하는 지점은 UI_EventHandler의 Update에서 OnPointerDown시 bool isTouched로 체크해서 터치를 감지하고 있는 부분을 외부 클래스인 skillPopup(제가 만든 클래스 : 이는 UI_Base/UI_Popup을 상속받음) 에서 bool isTouched 값을 참조하고자 했는데, 이 값을 전혀 읽어오지 못해서였습니다. 저는 skillPopup의 Update에서, 혹은 다른 클래스가 UI_EventHandler의 bool값을 실시간으로 인지하길 원합니다. 이 값을 외부에서도 참조하려면 어떤 방법을 써야할까요? * 체크를 해주려는 이유는, 팝업창에서 버튼을 누르고 있는 동안 캐릭터 스탯을 += 1씩 올려주는 기능을 구현하기 위함인데요, 최초에는 매니저가 중앙에서 이를 대행해주길 원했지만 어려워서 일단 팝업에 구현해보고 있었는데 이 방법 조차 막혀서 어려운 상황이었습니다. 보통 이런 경우 매니저가 중앙에서 처리해주는 기능을 갖게되는게 맞나요? 어떤 방향으로 공부해보면 좋을지 힌트라도 주시면 정말 감사하겠습니다. 그럼 좋은 하루 되세요, 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
게임오브젝트와 컴포넌트의 차이
처음 만드신 Getchild 함수는 컴포넌트만 넣을수 있기때문에 GameObject를 제네릭에 넣었을때는 크래쉬가 난다고 하셨는데, Button이나 Text는 게임오브젝트가 아닌가요? Button이 게임오브젝트고 Button.transform 이런것들이 컴포넌트 아닌가요? 잘 모르겠습니다.