월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
씬화면이 아무것도 안보입니다
후반부에 검 이미지 다루는부분에서 뭘 잘못건들였는지 갑자기 모든 scene 이미지들이 다 안보입니다. 게임화면도 안보이고 이거 어떻게 해야하나요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
마우스 클릭 이벤트를 받는 위치에 대해 궁금한 점이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. InputManager클래스에서 마우스 이벤트를 전부 받지 않고, UI_EventHandler를 따로 만들어서 마우스 이벤트를 따로 만들면 좋은 장점이 있나요? 입력에 관련해서 전부 InputManager클래스에서 받게될 줄 알았는데, UI와 상호작용하는 입력은 따로 두신 것 같아, 혹시 그렇게 분리시키신 이유나 장점이 있는지 여쭤보려고 글을 남기게 되었습니다. 항상 좋은 강의 감사합니다. 마지막까지 완강해서 열심히 따라가겠습니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
안녕하세요 update()가 이해가 가질않아서 질문드립니다.
처음 이동에 관한 조건문을 PlayerController Class의 Update()문에 작성하여 매 프레임마다 확인하였는데 이벤트를 사용하여 Managers에서 관리하는 것 까지는 이해를 하였습니다. 그런데 이제 이 이벤트 호출 검사를 Start()에서 하게되는데 이럴 경우 실행시 한번만 체크를 한다고 하셨는데 계속적으로 입력하는 값을 어떻게 검출하는 건가요? Managers의 Update()함수와 상관관계가 있을것 같은데 무슨 관계인지 이해가 가질않습니다. PlayerController의 Start()함수에 작성하여도 그 안에 호출하는 기능이 다른 클래스의 Update()함수에 있으면 매 프레임마다 검사하는 것인가요? 그럴경우에는 그냥 PlayerController의 Update() 함수에서 바로 검사하는 것과 성능상 차이가없을 것 같은데 이 부분이 이해가 가질않아서 문의드립니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋 라이선스 관련하여 질문드립니다!
안녕하세요 항상 좋은 강의 들려주셔서 감사합니다. 저희는 이제 막 총 2명으로 구성되어있는 개발팀이며, 첫 게임 개발 준비중에 있고, 스팀 출시까지 생각을 하고 있습니다. 다름이 아니라 게임 개발을 위해 에셋을 구매하려는 와중 라이선스부분에 싱글 엔티티와 멀티 엔티티가 있던데 따로 알아본 바로는 싱글 엔티티는 개인만이 프로젝트에 접근할 수 있고, 멀티 엔티티는 대기업과 같은 여러 명의 인원이 프로젝트에 접근할 수 있다라고 나와있던데 그러면 2명뿐인 저희도 같이 개발을 진행하기 위해선 멀티 엔티티를 구매해야 하나 싶어서 여쭤봅니다. 큰 금액차이가 아니라면 그냥 구매하려했는데 무려 2배가 넘도록 차이가 심하여 어떡해야하나 싶어서 여쭤봅니다 ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Login Scene -> Game Scene 이동 에러?
Pool Manager 강의 따라오면서 에러없이 잘 실행되었습니다. 그런데 아래 사진과 같이 Login Scene -> Game Scene이동하면 에러없이 유니티짱도 잘 이동을하는데 화면이 검은색으로 나옵니다... 빛?? 이 없는거같은데 어떻게 해결해야하나요?? 이사진은 현재 Login 에서 Game으로 씬이동을 했을때 DirectLight입니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
임포트가 제대로 안됩니다.
Medieval Town Exteriors | 3D Fantasy | Unity Asset Store 이 링크에 있는걸 임포트했고, Readme에 적힌대로 URP를 임포트 패키지로 열어서 시키는대로 다했습니다. 그리고 또 Readme에 있는대로 Demo를 열어봤더니 전부 자주색으로 나오네요. 공격2 파일을 다운로드해도 Demo_Terrain.asset 밖에 없고, Demo는 없는데 이제 어떻게하면 좋을까요...
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의와 많이 관련없는 질문입니다
수업 열심히 잘듣고잇습니다 3강만하더라도 지금은 첫번째 듣고잇는거긴하지만 이해가 안가는 부분이 많아서 몇번더 볼 생각입니다. 그리고 다른 개발 잘하시는분들이 만든 게임을보거나 플레이하거나 그럴때 뭔가 내가 만들면 더 잘만들고 이쁘게 만들거같다는 생각이 들어서 찾다보니 마야랑 파이썬으로 3d 모델링을하여 유니티나 언리얼에 사용이 가능한것을 유튜브보다가 유튭알고리즘으로 우연히알게되었습니다 그래서 한번해보고싶은데 현재 듣는 유니티 강의도 너무 좋은거같아서 같이 마야랑 공주를하여고하는데.. 개임업게나 게임업게에서 3d모델링 전망이나 분위기같은것을 물어볼것도 없어서 여기다가 적습니다. 1. 게임업계 쪽에서 3d모델링쪽이 전망이나 연봉같은경우 어떻게 되나요? 2.물론 유니티랑 마야를 둘다 다룰줄안다면 좋겟지만 강사님같은경우에는 제자가잇다면 향후 미래나 게임업계를 바라보신다면 유니티랑 마야 둘중에 무엇을 추천하고싶으신가요? 3. 유니티와 마야가 잘 쓰이는건지 아니면 다른 조합이 있는지 알고싶습니다 4. 아직 유니티도 잘 못하는데 유니티부터나 해라 네가지 정도 질문이잇는데 답변해주면 감사할거같습니다!!😺
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Extension 클래스가 어떤방식으로 적용되는건지 헷갈립니다.
안녕하세요. Extension.cs 에 새 메소드를 넣은게 오랜만이라서 해당 기능에 대해 갑자기 헷갈리는게 있어서 질문드립니다. Extension 클래스는 클래스 자체는 참조하지 않고 클래스안의 메소드만 참조해서 사용하는 정적 클래스 형식이던데 어떻게 Extension을 참조하거나 상속받지 않고 해당 메소드를 사용할수 있는건지 궁금합니다. 정적 클래스여도 해당 메소드를 사용할 땐 Extension.IsValid() 이런식으로 사용했던걸로 기억하는데(다른 스크립트에서 Managers를 갖고오듯이...) 아무리 봐도 _player 오브젝트에선 IsValid()가 정의된 Extension 클래스를 받는 부분을 찾을수가 없어서 잘 모르겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
전체적인 내용 질문입니다.
1. foreach( T component in go.GetComponentsInChildren<T>()) 에서 만약 T가 Text 타입이라고 한다면 go.GetComponentsInChildren<T>()는 go 산하에 있는 모든 gameObject들의 모든 Text 컴포넌트를 Text[]배열로 저장하고 있는것이 맞나요? 2. foreach문 내부에서 component.name은 component의 이름이 아닌 component를 가지고 있는 gameObject의 name을 뜻하는 것이 맞나요? 3. 결론적으로 Bind<Text>(typeof(Texts))를 실행했을 때 Texts에 있는 문자와 같은 이름을 가진 gameObject의 Text에 대한 정보가 _objects 딕셔너리에 저장되는 것이 맞나요? 이해가 잘 안돼서 몇번은 돌려본 것 같은데 제가 이해한 것이 맞는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_HPBar의 rotation을 카메라의 rotation과 돌리면 캔버스 자체가 돌아버립니다
캐릭터가 움직여도 HPBar는 카메라를 향해 계속 바라보게 하기 위해서 transform.rotation = Camera.main.transform.rotation; 으로 UI_HPBar를 맞췄는데 이렇게 작성하니 캔버스인 UI_HPBar의 rotation x y z 전부 카메라의 rotation에 맞춰 회전해버려서 해당 사진의 Scene 뷰 처럼 이상하게 표현이 되네요. 우선 transform.rotation = Quaternion.Euler(new Vector3(0, 0, 0)); 로 임시로 바꿔서 땜빵하긴 했는데 강의에서 UI_HPBar는 같은 캔버스인데도 어떻게 rotation을 했을때 제대로 표현되는건지 궁금해서 여쭤봅니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
error refreshing packages
몇일전에는 분명이 됐었는데 오늘 package manager로 들어가서 my assets 들어가니까 아무것도 뜨지 않고, error refreshing packages만 뜹니다. 아래와 같은 방법을 다 시도해봤는데 안됩니다. 1. reset packages to defaults 2. 백신 유니티 설치폴더, 세이브 폴더 예외 등록 3. firewall 전부 off 4. 새 프로젝트 만들어서 시도 5. 재부팅 여러번 해결방법 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
are you missing a component
강의 진행하다가 어느 순간부터 콘솔에 저런 에러가 일정 시간 간격으로 뜹니다.. TankAnim가 리시버를 가지지 않는다가 무슨 뜻인가요? 저쪽은 UI 강의 들으면서 딱히 변경한 기억은 없는데 모르겠습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
9분 27초 질문입니다.
public Poolable Pop(GameObject original, Transform parent = null) 함수가 이전까지 class Pool안에서 Create, Push, Pop을 만들었었는데 @Pool_Root안에서 tank, unitychan같은거 구분하기위한 Pool을 만들었던것이고 _pool안에서 original.name을 key값으로 찾은다음 value가 해당 Pool이니까 Pool클래스 안의 Pop함수를 통해 인자로 parent를 넣어줘서 해당 parent Poolable 컴포넌트를 가지고있는 gameobject(어떤 게임오브젝트인지는 상관없고)를 반환하는것이다. 이렇게 이해를 했는데 어느정도 이해를 한것인가요??? Poolable를 반환하는 함수라도 Poolable 스크립트를 반환하는것이 아니라 Poolable 컴포넌트(스크립트파일)을 가지고있는 gameObject를 반환하는것인가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Poolable Create()질문입니다.
제가 이해한것이 맞는지 한번만 봐주세용 현재 Pool 클래스, Create함수, Push 함수 코드인데요 class Pool { public GameObject Original { get; private set; } public Transform Root { get; set; } Stack<Poolable> _poolStack = new Stack<Poolable>(); public void init(GameObject original, int count = 5) { Original = original; Root = new GameObject().transform; // 위에서 Root를 Transform으로 설정해놔서 Root.name = $"{original.name}_Root"; for(int i =0; i < 5; i++) { Push(Create()); } } Poolable Create() { GameObject go = Object.Instantiate<GameObject>(Original); go.name = Original.name; return go.GetOrAddComponent<Poolable>(); } public void Push(Poolable poolable) { if(poolable == null) { return; // 없다면 바로 끝낸다. } poolable.transform.parent = Root; // 영상 꺼놓는 부분 poolable.gameObject.SetActive(false); poolable.isUsing = false; // 이렇게까지해서 설정이 완료되었으니 stack에 넣어주면된다. _poolStack.Push(poolable); } } 먼저 init에서 original을 받아서 init안에서 Push(Create()) 를 하게되면 Create안에서 GetOrAddComponent를 통해서 컴포넌트가 없으면 붙여주고 있으면 리턴을해서 Poolable컴포넌트를 return한것을 Push함수에 넣게되면 그 poolable컴포넌트를 가지고있는 gameobject도 같이 Push함수에 들어가게되어서 poolable.transform.parent = Root; 위의 코드 한줄이 Create함수에서 반환받은 gameobject에 적용이 되는것인가요? 아니면 유니티가 알아서 Create함수를 반환할때 poolable을 가지고있는 게임오브젝트를 찾아서 poolable.transform.parent = Root; 코드를 수행하게 되는것인가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋스토어 구매 관련
안녕하세요. 수업을 정말 즐겁게 듣고 있는 직장인입니다. 다름이 아니라 에셋스토어에서 유료로 구매한 것을 활용하여 게임 출시하는 것도 문제가 될수 있는지 궁금해서 문의 남깁니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
CS0103 오류가 생겼습니다
안녕하세요. 강의를 따라하던 중 UI_Button.cs에서 Bind함수의 for문 안에 Util을 넣는 순간(?) 유니티에서 아래와 같은 오류가 떴습니다. 강의를 다시 보며 확인해봤지만 어느부분에서 틀린건지 찾지 못해서 도움을 요청합니다...ㅜㅠ UI_Button.cs 코드입니다 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class UI_Button : MonoBehaviour { Dictionary<Type, UnityEngine.Object[]> _objects = new Dictionary<Type, UnityEngine.Object[]>(); enum Buttons { PointButton } enum Texts { PointText, ScoreText } private void Start() { Bind<Button>(typeof(Buttons)); Bind<Text>(typeof(Texts)); } 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); } } int _score = 0; public void OnButtonClicked() { _score++; } } Util.cs 코드 입니다 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Util { public static T FindChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object { if (go == null) return null; if(recursive == false) { for (int i = 0; i < go.transform.childCount; i++) { Transform transform = go.transform.GetChild(i); if (string.IsNullOrEmpty(name) || transform.name == name) { T component = transform.GetComponent<T>(); if (component != null) return component; } } } else { foreach(T component in go.GetComponentsInChildren<T>()) { if (string.IsNullOrEmpty(name) || component.name == name) return component; } } return null; } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
인벤토리 이미지가 위쪽으로 정렬되는 이유를 모르겠습니다..
이미지 그리고 패널의 그리드 여러가지 건드려봐도 위쪽으로 계속 고정되어 있습니다.. 이유를 알고싶네요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
카메라 질문
안녕하세요. 유니티짱과 카메라 사이에 벽이 있으면 카메라가 줌이 되는건 좋은데 유니티짱의 발바닥에 오브젝트가 있어서 결국엔 발 밖에 보이지가 않네요. 그래서 void LateUpdate() { RaycastHit hit; if(Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall"))) { float dist = (hit.point - _player.transform.position).magnitude * 0.8f; transform.position = _player.transform.position + _delta.normalized * dist; transform.LookAt(_player.transform.FindChild("cheek").position); } 로 해봤는데 null 이 뜨더라구요. transform.position += Vector3.up * 1.5f; 이 코드를 추가해서 해결했긴 했는데, 나중에 오브젝트가 많아지면 전부 크기가 다른데 일일히 1.5f 이 부분을 수정해야 하는 상황에 놓이게 되진 않을까 염려스럽습니다. 또다른 괜찮은 방법이 있을까요? 그리고 한글 깨짐문제에 대해서 FindChild 함수가 obsolete되어서 Find를 쓰라고 사진과 같은 창이 뜨면서 다시 들어가보면 한글주석이 전부 깨져있습니다. 일단 Text editor의 'Auto-detect UTF-8 encoding without signature'는 꺼진 상태이구요. 이건 어떻게 해결방안이 없을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매니저들 관련 질문입니다.
지금까지 여러가지 매니저들을 만들면서 프레임워크를 구축한 것 같은데 여기에 사용된 코드들을 전부 이해하고 다음 챕터로 넘어가야 할까요? 아니면 일단 사용법만 숙지하고 다음 수업을 들어도 될까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
도대체 어떤 오류인지 모르겠습니다. 갑자기 이런 오류가 납니다. 제발 도와주세요ㅜㅜ
Win32Exception: ApplicationName='C:\Program Files\Unity\Editor\Data\Tools\RoslynScripts\unity_csc.bat', CommandLine='/noconfig @Temp/UnityTempFile-ba6ab091483534d4c8005ffa081b9d1f', CurrentDirectory='', Native error= 지정된 파일을 찾을 수 없습니다. 유니티를 실행하면 자동적으로 이 오류 메시지가 뜨면서 오브젝트에 스크립트를 붙일 수가 없습니다. can't add scripts 뜨면서 거부되네요 ㅜㅜ 혹시 해결법이 있을 까요? 아무리 찾아봐도 못 찾겠어서;;;; 재부팅해도 해결 안되고 유니티를 재설치 해도 해결이 안됩니다;;;