월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
14:38분에서 질문드립니다.
x*x + y*y 까지는 이해가 되었는데, z*z 를 더해서 루트를 씌워주는 건, 3차원 공간에서 두 점 사이의 거리를 구하는 공식이기 때문이라고 생각하면 되는 건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
12:54분 관련해서 질문드립니다.
C# 문법에 관련된 질문이긴 한데, new GameObject { name = "@Managers"}; 의 의미를 모르겠습니다. 분명 매개변수가 하나인 생성자인 것 같긴 한데, GameObject 클래스의 생성자는 public GameObject(string name); 되어있습니다. 그럼 제 생각에는 new GameObject("@Managers"); 이렇게 만들어야 하지 않나 하고 생각하고 있습니다. new GameObject { name = "@Managers"} 와 new GameObject ("@Managers")와 차이가 있습니까?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
랜덤 스폰 높이
제가 맵을 바꾸면서 지형이 울퉁불퉁하게 했습니다. 이 경우에는 다른 분이 질문한 답을 보니 Heightmap을 통해 Terrin의 높이를 추출하라고 하셨는데.. 만약 아래 이미지 처럼 저는 terrin이 아니라 언덕모양의 오브젝트를 여러개 조합하여 땅을 제작했는데 이 경우에는 어떻게 추출할 수 있을까요.. 네비게이션은 해당 지형에 따라 bake 시켰습니다. 혹시 네비게이션(푸른색 지역)에 높이를 따오는 방법은 없을까요??
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
로딩씬 전환 코르틴 질문
강의를 이해한대로 밑에 나오는 코드에 접목시켰는데.. 이해가 안되서 질문합니다.ㅠㅠ public void LoadLevel(int sceneIndex) { StartCoroutine(LoadAsynScene(sceneIndex)); } IEnumerator LoadAsynScene(int sceneIndex) { AsyncOperation op = SceneManager.LoadSceneAsync(sceneIndex); while (!op.isDone) { slider.value = op.progress; yield return null; } }제가 이해한 바로는 yield return null를 만나면서 해당 함수 가 실행된 부분까지의 대한 정보를 저장한 후에 호출해준 곳으로 다시 돌아가게 되어 소유권이 넘어갑니다. 그리고 LoadAsynScene함수를 한번 실행 되어 이후에는 실행 되지 않아야 되는걸로 아는데 보니깐 함수를 yield return null; 에서부터 다시 실행이 되는것 같습니다....혹시 저 위에코드는 동작방식이 어떻게 되는건가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강사님 포폴에 대하여 질문이 있습니다.
안녕하세요. 일전에 취업준비때문에 질문을 드렸던 수강생입니다. 다름이 아니라 제가 전에 학원을 다닌다고 말씀을 드렸는데요. 학원에서는 포폴을 우선적으로 유니티 즉, 디비나 서버 연동 없이 유니티를 우선적으로 해야한다고 그러더라고요.( Text 를 콘솔로 보여주는 것은 쉽지만, text를 렌더링해서 움직이는것 자체가 어렵다) 는 말씀을 하셔서 이 작업만 해도 오래 걸린다고 그러시더라고요.. 그래서 걱정이 많습니다. 제가 타분야 개발직군을 공부하다가 넘어왔는데 타 개발분야는 포폴을 기본적으로 프론트엔드, 백엔드, DB 이 세가지를 이용해 만들었는데.. ex) CRUD 게시판 그런데 정말 유니티만 가지고 취업에 성공할 수 있을 지가 의문입니다. 그리고 강사님의 내년정도 쯤에 나오는 취업을 위한 언리얼 엔진을 듣고 싶지만 저에게 시간이 많지 않습니다... 내년 3월 목표로 취업준비중입니다.( 취준생 생활이 어느덧 1년 11개월 째네요.) 그래서 정말 진지하게 궁금합니다. 강사님 요약을 하자면 1. 유니티만을 이용해 취업이 가능한지? (서버x 디비x) 2. 만약 1번이 불가능 하다면 어떤걸 준비해야 할지? (참고로 강사님의 강의 1, 2, 3 파트를 사서 현재 듣고 있고, 따로 C++ 공부중입니다. 아마 취업을 준비하게 된다면 유니티엔진을 중점으로 포폴을 만들 것 같습니다.) 끝으로 바쁘실텐데.. 너무 많은 질문과 제 허접한 글을 읽어주셔서 감사합니다...
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
5분 20초에 이름 바꾸기.
변수나 함수 이름에 커서를 두고 Ctrl+R을 두번 연달아 누르면, 비주얼 어시스트처럼 바꿀 수 있지 않나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
_object.Add() 타이밍 질문있습니다~
Bind 메서드에서 아래의 Add가 먼저되고 난다음에 objects에 컴포넌트가 채워지는데 objects가 참조형 변수라서 먼저 Add를 해도 메서드를 빠져나가기 전에 objects가 변경되면 해당 objects로 Add가 되는게 맞나요? 여기서 직관적으로 Add를 for 문 뒤로 빼면 안되나요? _object.Add(typeof(T), objects); for (int i = 0; i < names.Length; i++) { objects[i] = Util.FindChild<T>(gameObject, names[i], true); }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Util에 짠 코드가 잘이해 안됩니다.
Transform transform = go.transform.GetChild(0); 여기에서 게임오브젝트의 직속자식을 가지고 오는데 transform을 사용 한다는게 잘이해가 가질 않습니다... tansform은 위치와 관련된 컴포넌트 아닌가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
StrongKnight가 없네요...
암거나 다른거로 하고 있어요 ㅋㅋ
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몬스터 스폰할때 3D 지형이면 어떻게 스폰할 위치를 구하는지 궁금합니다..
높이 값이 다 다른 예를 들어서 굴곡이 있는 언덕같은 지형이라고 했을 때 몬스터 스폰은 어떻게 결정하는지 궁금해요.. 스폰범위의 근방 3d 맵 메쉬 데이터를 전부 뒤져서 언덕인지 아닌지 찾아봐야하는건가요..?? 이렇게 한다고 해도 이걸 어떻게 어떤 알고리즘으로 해야하는지도 모르겠네요;; 아니면 뭔가 3d맵을 2d로 만듬다음에 높이값만 어떻게 추가적으로 넣는다던지..? 2차원 배열에서 각 배열 원소에 높이값을 추가? 아니면 그냥 3차원배열로 관리? 3d지형 메쉬를 직접 관리할 것 같지는 않은데.. 서버같은 경우는 3d지형 데이터를 보통 어떤식으로 관리하나요?? 지형 메쉬데이터를 설마 다뽑아서 관리하나요..???!? 너무 궁금합니다! 서버같은 경우도 어떻게 구하는지 궁금합니다. 아니면 뭔가 꼼수 같은게 있는 건지요..? 실무에선 보통 어떻게 하는지 궁금해요 강의 항상 감사합니다~!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
인벤토리 제작
이 강의를 다 듣고 월드에 있는 아이템을 먹으면 인벤토리 창에 추가할려는 기능을 구현하고 있습니다.근데 제가 아이템을 prefab으로 저장하고 그 해당 prefab를 드래그앤드롭해서 월드에 위치시켜줬습니다. 월드에서 플레이어가 아이템을 먹으면 플레이어가 가지고 있는 스크립트 list에 추가한 후에 월드에 있는 아이템은 사라지도록 Destory를 했습니다.일단 리스트에 size가 늘어나는거 보면 들어오기는 하는데.. Destory를 해서 그런지 해당 리스트에 담긴것이 없어지면서 missing으로 나옵니다ㅠㅠ. 혹시 방법이 있을까요??..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강사님 메일주소를 몰라서 여기에 질문남깁니다. ㅠㅠ
아까 강사님이 제질문에다가 답변남겨주신걸 보게되었는데요.. C++기반 커리큘럼을 공부하라는게 C++ 언어를 공부해서 언리얼엔진공부하라는 건가요? 아니면 언어는 C++ 공부하되 유니티 공부를 하라는건가요? 현재 저는 아무래도 게임쪽은 제가 처음 접하는 분야이고(프로그래밍 경험은 있습니당!: 안드로이드) 하다보니 학원의 힘을빌려 지금은 게임학원을 다니고 있습니다. 그런데 게임학원에서 유니티를 가르쳐주시는데 요즘 게임잡 공고를 보면 대부분의 회사들이 언리얼과 C++을 원하는 것 같더라구요... 결국은 저 혼자 공부하는 수밖에 없을까요? ㅠㅠ
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
인벤토리 실습
제가 인벤토리와 장비창을 만들 예정인데 일단 토글형태로 I키로 인벤토리를제어 할려고 합니다. 이 인벤토리 관련해서 SetActive으로 껏다 켰다하는 것과 UIManager를 통해서 Instantiate, Destory 중 어떤게 더 바람직 할까요??..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Null Reference Exception 에러
참조할 수 없는 오브젝트를 참조하려고 할때 해당 에러가 나온다고 하는데, 지금 InputManager.cs ,Managers.cs , PlayerController.cs 전부 코드상 강의와 똑같고 문제가 없습니다. 무엇이 문제일까요 아래는 코드와 에러메세지입니다. Managers.cs에서 10번째 라인,PlayerController 17번째 라인에서 문제가 생기는데 public static InputManager Input { get { return Instance._input; } } Managers.Input.KeyAction -= OnKeyboard; Managers.Input.KeyAction += OnKeyboard; 이부분이네요. /////////// InputManager using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class InputManager { public Action KeyAction = null; public void OnUpdate() { if (Input.anyKey == false) return; if (KeyAction != null) KeyAction.Invoke(); } } //////////////////// Managers using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; static Managers Instance { get { Init(); return s_instance; } } InputManager _input = new InputManager(); public static InputManager Input { get { return Instance._input; } } void Start() { Init(); } void Update() { _input.OnUpdate(); } 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); Managers mg = go.GetComponent<Managers>(); } } } ///////////////////////// PlayerController using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] float _speed = 10.0f; void Start() { Managers.Input.KeyAction -= OnKeyboard; Managers.Input.KeyAction += OnKeyboard; } void Update() { } void OnKeyboard() { if (Input.GetKey(KeyCode.W)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), 0.2f); transform.position += Vector3.forward * Time.deltaTime * _speed; } if (Input.GetKey(KeyCode.S)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.2f); transform.position += Vector3.back * Time.deltaTime * _speed; } if (Input.GetKey(KeyCode.A)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.left), 0.2f); transform.position += Vector3.left * Time.deltaTime * _speed; } if (Input.GetKey(KeyCode.D)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.right), 0.2f); transform.position += Vector3.right * Time.deltaTime * _speed; } } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
아이템 데이터베이스
인벤토리에 있는 아이템과 아이템의 능력치 같은 경우에도 json으로 많이 저장을 하나요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
질문
캐릭터 시선으로 바라보는 축이 Local 인데 강의에서 45도 정도 로테이션 한상태로 캐릭터를 움직이면 글로벌축으로 움직여서 캐릭터시선으로 움직임을 주려고 다이렉션을 줬는데 , 주석에서 트랜스폼 다이렉션은 Local -> World 라고 하셨는데 혼동이 옵니다 World 와 Global 다른가요 ? 로컬이 캐릭터 시선이 아닌가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
질문
싱글톤 사용되는 오브젝트의 특성이 궁금합니다 강의에서는 게임매니저를 싱글톤 패턴으로 동작 구성 했는데 그외로 몬스터를 설계를 할때 동일한 몬스터를 클론으로 많이 복제 하게 될때 도 싱글톤 으로 패턴을 디자인 해야 하나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이해 질문
1. 고블린() 1) 어택() - 돌팔매질 컴포넌트 - 빠따질 컴포넌트 고블린 클래스안에 어택클래스에 어떤 공격 부품을 넣느냐에 따른 투척고블린, 일반 고블린 등으로 나눌때 종속되지 않고 상황 에 따라 교체가 편하게 하기 위해 컴포넌트라는 개념을 가지고 작업 하는게 맞나요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
foreach문에 관련한 질문입니다
foreach문은 무조건 자기자신을 제외한 자기 자식들만 가져오는 문법인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Knight 질문!!!
안녕하세요 ! 열심히 강의듣고 공부하고있는 학생입니다 . 동영상 11분쯤 까지 코드를 작성 하고 실행하면 knight의 LockTarget 이 자기신인 Knight로 잡혀 혼자 칼질하다가 죽습니다.그리고 로그창엔 Look rotation viewing vector is zero 라는게 뜨는데 이건 Knight 가 Knight를 잡아서 그런거같구... 아무리 코드를 봐도 모르겟습니다 ㅠㅠ