월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Action 질문
Action에 += 으로 함수를 추가하면 값이 복사가 되는건가요 아침 참조형식인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Slerp궁금증입니
if (Input.GetKey(KeyCode.W)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), rotateSpeed); transform.position += Vector3.forward Time.deltaTime speed; } if (Input.GetKey(KeyCode.A)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.left), rotateSpeed); transform.position += Vector3.left Time.deltaTime speed; } if (Input.GetKey(KeyCode.S)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), rotateSpeed); transform.position += Vector3.back Time.deltaTime speed; } if (Input.GetKey(KeyCode.D)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.right), rotateSpeed); transform.position += Vector3.right Time.deltaTime speed; }이런식으로 하고 rotateSpeed를 1.0f로 한뒤 유니티에서 a를 살짝 눌렀는데 90도만큼 회전하지 않아서 왜 그런지 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Init()을 static으로 선언해 주신 이유가 있을까요?
Init()을 static으로 선언해 주신 이유가 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GetComponent 함수 관련 질문이 있습니다!
선생님 언제나 좋은 강의 잘 보고 있습니다.싱글톤패턴 복습과정 중 이것저거 테스트하다s_instance에 값을 넣어 줄 때 저렇게 그냥 바로 GetComponent<>(); 해버려도 작동이 되더라구요GetComponent 함수가 특정 게임오브젝트에 있는 Component 를 가져오는것인 줄 알고 사용했는데 위 코드는 왜 동작하는지 이유를 알려주실 수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
남은 수업 수강 질문
선생님 안녕하세요 강의 너무 잘듣고있습니다. 수업과 관련없는 질문이지만, 저는 현재 플레이팹 데이터 + Azure 클라우드 스크립트 기반의 간단한 싱글 모바일 게임을 제작하려고 합니다. 선생님의 유니티 수업 이후, 게임 서버와 DB, 웹서버 강의를 수강하게 되면 제가 이용하는 서버 기반 API는 수업과 달라도 지금 수업처럼 프레임워크를 짜는데 참고할 수 있을지 궁금해서 이렇게 질문을 드리게 되었습니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
animation event
inspector 창에 다른 파라미터들?이 뜨게 하려면 어떻게 해야 하는지 알고싶습니다... 어떻게 이벤트를 생성해도 창이 뜨지 않아서 ㅠㅠ 넘어가질 못하고 있습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Util.cs의 FindChild의 recursive == true인 부분이 이해가 가질 않습니다.
안녕하세요 수업을 듣다가 16분쯤에 질문이 생겨 남깁니다.재귀라 하면 자식의 자식, 자식의 자식의 자식까지 쭉 돌면서 계속 찾아야하는 거라고 생각했는데 현재 코드대로라면 자식의 자식까지만 탐색하고 종료한다고 생각합니다.else - foreach에서 FindChild<T>(component, name, true)로 함수를 다시 호출해야하는 건 아닌지 궁금합니다.감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Start() 순서 관련하여 문제가 발견된듯 합니다
강의에서 stat 클레스 생성후 start Start()문이 PlayerController Start() 보다 느리게 만들어져 speed값이 0이 되는 문제가 발견 됬습니다 이럴때는 어떻게 하면 좋을까요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
manager들 사이의 호출순서가 궁금해요
manager public class Managers : MonoBehaviour{static Managers s_Instance; //유일성이 보장된다public static Managers instance { get { Init(); return s_Instance; } } // 유일한 매니저를 갖고온다InputManager _input = new InputManager();public static InputManager input { get { return instance._input; } }// Start is called before the first frame updatevoid Start(){Init();}// Update is called once per framevoid 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);s_Instance = go.GetComponent<Managers>();}}}==================================playercontroller.cs public class PlayerController : MonoBehaviour{[SerializeField]float _speed = 10.0f;// Start is called before the first frame updatevoid Start(){Managers.input.KeyAction -= OnKeyboard; //실수 방지용으로 미리 한번 -함Managers.input.KeyAction += OnKeyboard;}// Update is called once per framevoid 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;}}}==================================public class InputManager{public Action KeyAction = null; public void OnUpdate(){if (Input.anyKey == false)return;if (KeyAction != null)KeyAction.Invoke();}}==================================player.cs public class Player : MonoBehaviour{ // Start is called before the first frame updatevoid Start(){Managers mg = Managers.instance;}// Update is called once per framevoid Update(){ }} 지금 unitychan 오브잭트에 playercontroller 컴포넌트를 inspector창에다 추가한뒤에 실행을 하는데 input값을 입력받을떄마다 어떤식으로 작동이되는지 순서가 이해가 안가요playercontroller 에 update()에 아무것도 없는데 지속적으로 어떻게 key값을 받는지 궁금해요start()는 1회실행되는 함수인데 player.cs도 지금 존재 이유가 유일한 manager 컴포넌트를 쓰게하기 위해서 만들었는데[ 점점 갈수록 어렵네요
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
LayerMask를 사용하면 왜 최적화가 되는지 잘 이해가 되지 않습니다.
LayerMask를 통해 RayCasting을 하면 하지 않았을 때보다 최적화가 된다고 하셨는데 왜 그런지 잘 이해가 되지 않습니다. 혹시 더 자세하게 알려주실 수 있나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
게임을 만들기 전에 서버공부부터 해야할까요?
안녕하세요! 캐쥬얼 싱글 게임을 만드려고 하는 뉴비입니다. 강의수강중에 서버에 관련한 질문을 보다가 저도 비슷한 궁금증이 있어서 댓글 남깁니다. 싱글 게임에는 굳이 서버가 필요 없다고 하셨는데요 그래도 플레이팹이나 파이어베이스같은 서버를 붙히고 싶습니다!1. 유저 데이터를 서버에서 받아서 여러 기기에서 플레이해도 설정값 등등을 불러올수 있도록2. 주기적으로 클라이언트의 데이터 값과 서버의 데이터값을 비교해서 동기화3. 인게임 재화를 이용한 상자에서 나오는 아이템들을 처리하는 함수등등 중요한 데이터를 서버에서 호출4. 우편함 시스템 등등위와 같은 기능들을 서버로 구현해서 보안도 향상시키고 일부 편의 기능들도 추가하고싶어요. 그런데 제가 서버에 대한 지식이 전무하다는게 문제입니다 : (그래서 지금 당장 서버공부 부터 시작을 해야할까요? 게임을 만들다가 추후에 서버를 붙히려고 하면 기존의 코드를 전부 수정해야한다던지 하는 일이 일어나지는 않을까요..? (이부분이 제일 궁금합니다) 배움의 순서가 어느것이 맞는 것인지 게임을 만들면서 추후에 서버를 고려해도 괜찮은지 루키스님의 의견 부탁드립니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
제네릭 타입 질문
학습중에 클래스를 제네릭으로 받으면 어떻게 될까 궁금해 한번 받아봤습니다!우선 필요한 정보를 받아올때 json 파일마다 역직렬화 & 직렬화 용도의 클래스가 다르기 때문에해당 부분을 public IEnumerator CoDownLoadJsonData<T>(string URL) where T : class { UnityWebRequest request = UnityWebRequest.Get(URL); yield return request.SendWebRequest(); // 에러 발생 시 if (request.result == UnityWebRequest.Result.ConnectionError || request.result == UnityWebRequest.Result.ProtocolError) { Debug.Log(request.error); } // 에러 없을 시 else { // S3의 JSON 파일 읽어와서 넣어주기 T[] jsonDatas = JsonConvert.DeserializeObject<T[]>(request.downloadHandler.text); // 그 뒤 값 처리 해주는 부분 foreach (T jsonData in jsonDatas) { // TEMP Debug.Log(무슨 값을 넣어야 할까요); } } }이렇게 짜봤습니다. 위의 함수를 실행 할 때 넣은 T 값은 public class JsonData{ public string name; public int coin; public int ruby;}JsonData라는 클래스 입니다.그리고 다운로드 받은 json 데이터의 name 값을 보기위해 '무슨 값을 넣어야 할까요'부분에 jsonData.name을 쳐보았지만 타입이 제네릭이라 받기전까지 name이 있나 없나를 알 수 없기 때문에 당연히 해당 코드는 에러가 났습니다. 이러면 파싱 받을 json 데이터 마다의 클래스를 따로 분기해서 처리해줘야 한다는 말인데 제네릭 타입을 이용하여 루키스님 처럼 우아?하게 코드를 짜보고 싶은 생각이 드네요. 방법을 못 찼겠어서 질문드립니다!!현재 저의 머리로는 제네릭으로 만든후 안에 조건문을 추가해서 as 로 파싱되면 그쪽으로 처리하는 분기문을 만드는게 한계인거 같네요 ㅠㅠ값은 정상적으로 받아와집니다만 브레이크 포인트를 통해서 값을 확인하는 것이 아니면 확인이 안되네요 ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
마우스 커서 클릭
혹시 롤 처럼 마우스 클릭시 이동 좌표에 여기로 가라?라는 이미지는 좌표 를 받아와서 애니메이션으로 처리해야하는건가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코드 저작권 관련 질문입니다.
안녕하세요, 루키스님 강의를 들으며 게임 개발자의 꿈을 키우고 있는 학생입니다!다름이 아니라 강의 파트3에서 나온 소스코드를 기반으로 여러 기능적 요소를 추가하고 바꿔서 싱글플레이 RPG게임을 만들어 itch.io에 배포를 하려고 하는데, 유니티 에셋 스토어에서 제공되는 에셋들처럼 개인적, 또는 상업적 용도의 게임에 사용할 수 있는지 궁금하여 질문드립니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Clamp
Mathf.Clamp 스피드 가 목적지 보다 커져서 정확한 목적지 에 도착하려고 왔다갔다 하는거를 Clamp에 속도가 0 에서 목적지 사이에 값을 반환해서 속도를 줄여주는건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
싱글톤패턴에서 질문
18:25쯤에 public static Managers instance {get{init(); return s_instance;}}로 함수에서 프로퍼티로 바꿔서 ()없이 가져오기 편하게 바꾸셧는데 이떄 {}안에 init();을 넣은 이유는 안넣으면 return s_instance;할때 오류가나서 그런가요? 이유를 알고싶어요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
수강생입니다
메일 주소 좀 알 수 있을까요? 길게 말씀드릴께 있어서
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
FBX warning이 궁금합니
위 오류들이 나는 이유가 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코드에서 질문이 하나 있습니다
lockTarget의 경우에는 BaseController으로부터 공용으로 PlayerController, MonsterController둘 다에서 사용되는데 locktarget이 각각 따로따로 적용되는 건지 아님 한곳에서 lockTarget이 Knight로 설정되어 있으면 다른 한곳에서도 똑같은 lockTarget이 Knight로 설정되어 있는 건지 궁금합니다.그리고 각각 따로 설정된다면 왜 그런지 알고싶습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코드중에 궁굼한사항이 있어 질문남깁니다
BaseControllerprivate void Start() { Init(); } protected virtual void Init() { }PlayerControllerprotected override void Init() { base.Init(); _stat = gameObject.GetComponent<PlayerStat>(); //Managers.Input.KeyAction -= OnKeyboard; //Managers.Input.KeyAction += OnKeyboard; Managers.Input.MouseAction -= OnMouseEvent; Managers.Input.MouseAction += OnMouseEvent; Managers.UI.MakeWorldSpaceUI<UI_HpBar>(transform); //Managers.UI.ClosePopupUI(ui); //Managers.Resource.Instantiate("UI/UI_Button"); }1.BaseController에 start는 스크립트를 추가하지 않았는데 왜 실행되는지2. public과 protected 사용 기준이 두가지가 궁금합니다!