월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몇 가지 질문이 있습니다.
1. public GameObject Instantiate(string path, Translate parent = null)에서 Translate 밑에 오류가 뜹니다. 형식 또는 네임스페이스 이름을 찾을 수 없다고 하는데, 왜 이런 건가요? 2. Instantiate의 경우 그냥 곧바로 prefab을 넣어서 사용했는데 왜 Destroy는 tank에 Instantiate를 넣은 뒤 tank를 넣어서 삭제해야 하나요? 3. public GameObject Instantiate(string path, Transform parent = null)에서 parent의 의미는 무엇인가요? 4. GameObject prefab = Load<GameObject>($"Prefabs/{path}");의 작동 원리를 모르겠습니다. 경로를 입력하는 것까진 알겠는데 경로에서 'Tank' 프리팹을 불러오려면 불러올 프리팹의 이름도 입력해 주어야 하는 게 아닌가요? 5. public GameObject Instantiate(string path, Transform parent = null)를 보면 Instantiate의 파라미터가 두 개인데 어째서 Managers.Resource.Instantiate에서 불러올 땐 Managers.Resource.Instantiate("Tank");로 파라미터가 하나만 들어가나요? 제가 모자라서 질문이 너무 많네요ㅠ 매번 친절히 답변해 주셔서 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Scene 전환시 데이터 유지와 설계 질문
안녕하세요 ㅎㅎ 강의를 들으며 토이프로젝트로 조그마한 게임을 하나 만들고 있습니다. 몇 가지 궁금한 점이 생겨 질문드립니다. Q1.1) 아래 사진은 루카노르 백작 이라는 게임입니다. 캐릭터가 위의 문을 열고 들어가면 빌런인 염소가 존재합니다. 문제는 이 방을 나갔다 새로 들어와도 염소의 자리는 그대로 방을 나갈 당시 위치에 있습니다. 게임을 해본 추억을 되짚어 보니 두 가지로 나뉘더군요 1) 방을 나갔다 다시 들어오면 몹이 초기 젠 자리로 가있는 경우 2) 방을 나갔다 들어와도 아래와 같이 몹이 그자리 그대로 있는경우 1)번의 경우 모든걸 초기화하고 새로 만들면 될 것 같은데 2)번의 경우 기존의 정보를 어떤 방식으로 관리하는지 궁금합니다. 만약 던전의 방도 Scene으로 관리한다면 본 강의의 예제에서는 Scene간의 전환시 Manager를 통해 clear하는데 어떤식으로 코드를 수정해야할지 여쭙고싶습니다. 횡설수설하지만 정리해서 말씀드리면.. Scene전환시 이전 Scene으로 돌아갈때 이전 Scene의 상태를 그대로 유지한상태로 돌아가는 방법은 무엇인가요? Q2) 또 한가지 의문은, 리니지나 디아블로의 경우 던전의 한 층 자체를 Scene으로 관리할 것 같은데 아래와 같이 던전 내에 여러개의 문이 있고, 문에 입장하면 장면이 전환되는 경우 던전 내의 방들은 Scene으로 관리하나요? 설계는 개발자 마음대로라지만 Rookiss님이 게임을 만드신다면 어떻게 설계하실지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
static에 대한 질문
조금 막연한 질문인거 같아서 죄송한데 너무 궁금해서 여쭤봅니다. static이 약간 고유의 값을 가지는 그런 느낌이라는건 알겟는데 언제 어디서 사용해야 될지 감이 안옵니다.. utill파일에 있는 함수들은 전부 static이 붙었는데 ui_base같은 경우는 AddUIEvent만 static이 붙어있고 다른거에는 없는데 제가 혼자 만들때는 어떻게 감을 잡는게 맞을까요..?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
InputManager의 작동 원리가 잘 이해되지 않습니다.
InputManager의 작동 원리가 잘 이해되지 않습니다. 그래서 디버깅으로 한 줄 한 줄 따라가 봤는데, 여전히 궁금한 점들이 있습니다. 1. 왜 InputManager _input = new InputManager();를 읽은 뒤 Init()를 다시 실행해서 DonDestroyOnLoad(go);를 읽는 건가요? Init();은 Start에 들어 있으니 첫 실행 때 한 번 호출되고 끝이어야 하는 게 아닌가요? 2. Managers의 업데이트에서 OnUpdate를 계속 호출해 줘서 키 입력을 감지하는 건 알겠는데 키 입력이 들어온 뒤 KeyAction.Invoke();가 어떤 역할을 하는지 모르겠습니다. 혹시 InputManager에서 if( KeyAction != null)일 경우 바로 OnKeyboard()를 호출하는 게 문법적으로 불가능하기 때문인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
궁금한 게 있습니다.
1. 작성하신 코드를 보면 Quaternion.Slerp를 사용할 때 따로 transform.rotation에 넣어서 사용하셨는데 transform.Translate처럼 그냥 바로 사용할 순 없나요? 없다면 이유가 뭔지 궁금합니다. 2. transform.position += Vector3.forward * Time.deltaTime * _speed; 위 코드에서 transform.position은 월드 좌표이고 Vector3.forward는 로컬 좌표인데 왜 월드 좌표로 전환하지 않고도 바로 사용할 수 있는 건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
맵 질문
연습으로 게임을 하나 만들고 있는데 맵 같은 경우에는 terrain과 AssetStore의 에셋을 이용하여 본인이 원하는대로 일일이 꾸미는 건가요? 혹시 맵 제작시에 편리하게 할 프로그램 같은게 있을까요? 참고로 3D RPG 형식 제작중입니다 유튜브에 맵 제작 관련하여 검색하니 terrain 말고는 따로 나오는게 없어서 여쭤봅니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
공격 판정이 잘 안됩니다
공격 판정이 기사의 발을 클릭해야 공격이 들어갑니다 머리를 클릭하면 RUN상태로 부비부비를 하고 있어요 ㅜㅜ 코드는 강의 그대로 따라했습니다! ============================================ using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; public class PlayerController : MonoBehaviour { public enum PlayerState { Die, Idle, Moving, Skill, } int _mask = (1 << (int)Define.Layer.Ground) | (1 << (int)Define.Layer.Monster); PlayerStat _stat; Vector3 _destPos; GameObject _lockTarget; [SerializeField] PlayerState _state = PlayerState.Idle; public PlayerState State { get { return _state; } set { _state = value; Animator anim = GetComponent<Animator>(); switch (_state) { case PlayerState.Die: break; case PlayerState.Idle: anim.CrossFade("WAIT00", 0.1f); break; case PlayerState.Moving: anim.CrossFade("RUN00_F", 0.1f); break; case PlayerState.Skill: anim.CrossFade("Attack1", 0.1f, -1, 0); break; } } } void Start() { #region // Managers.Input.KeyAction -= OnKeyboard; // Managers.Input.KeyAction += OnKeyboard; #endregion _stat = gameObject.GetComponent<PlayerStat>(); Managers.Input.MouseAction -= OnMouseEvent; Managers.Input.MouseAction += OnMouseEvent; Managers.UI.ShowSceneUI<UI_Inven>(); } void UpdateDie() { } void UpdateMoving() { //몬스터가 내 사정거리보다 가까우면 공격 if(_lockTarget != null) { float distance = (_destPos - transform.position).magnitude; if(distance <= 1) { State = PlayerState.Skill; return; } } //이동 Vector3 dir = _destPos - transform.position; if (dir.magnitude < 0.1f) { State = PlayerState.Idle; } else { NavMeshAgent nma = gameObject.GetOrAddComponent<NavMeshAgent>(); float moveDist = Mathf.Clamp(_stat.MoveSpeed * Time.deltaTime, 0, dir.magnitude); nma.Move(dir.normalized * moveDist); Debug.DrawRay(transform.position + Vector3.up * 0.5f , dir.normalized, Color.green); if(Physics.Raycast(transform.position + Vector3.up * 0.5f, dir, 1.0f, LayerMask.GetMask("Block"))) { if (Input.GetMouseButton(0) == false) State = PlayerState.Idle; return; } transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(dir), 10 * Time.deltaTime); } } void UpdateIdle() { } void UpdateSkill() { if(_lockTarget != null) { Vector3 dir = _lockTarget.transform.position - transform.position; Quaternion quat = Quaternion.LookRotation(dir); transform.rotation = Quaternion.Lerp(transform.rotation, quat, 20 + Time.deltaTime); } } void OnHitEvent() { Debug.Log("OnHitEvent"); if(_stopSkill) { State = PlayerState.Idle; } else { State = PlayerState.Skill; } } void Update() { switch (State) { case PlayerState.Die: UpdateDie(); break; case PlayerState.Moving: UpdateMoving(); break; case PlayerState.Idle: UpdateIdle(); break; case PlayerState.Skill: UpdateSkill(); break; } } #region //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; // } // _moveToDest = false; //} #endregion bool _stopSkill = false; void OnMouseEvent(Define.MouseEvent evt) { switch (State) { case PlayerState.Idle: OnMouseEvent_IdleRun(evt); break; case PlayerState.Moving: OnMouseEvent_IdleRun(evt); break; case PlayerState.Skill: { if(evt == Define.MouseEvent.PointerUp) _stopSkill = true; } break; } } void OnMouseEvent_IdleRun(Define.MouseEvent evt) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); bool raycastHit = Physics.Raycast(ray, out hit, 100.0f, _mask); // Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f); switch (evt) { case Define.MouseEvent.PointerDown: { if (raycastHit) { _destPos = hit.point; State = PlayerState.Moving; _stopSkill = false; if (hit.collider.gameObject.layer == (int)Define.Layer.Monster) _lockTarget = hit.collider.gameObject; else _lockTarget = null; } } break; case Define.MouseEvent.Press: { if (_lockTarget == null && raycastHit) _destPos = hit.point; } break; case Define.MouseEvent.PointerUp: _stopSkill = true; break; } } }
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
5강 Property 내부에서 Init() 호출하면 안되는 이유가 궁금합니다.
5강 마지막에 보면 인터페이스 최적화를 위해 이렇게 구현을 하셨는데요... public static Managers Instance { get { Init(); return s_instance; } } // 유일한 매니저를 갖고 온다 아래처럼 에러가 나고 있습니다. 마치 무한히 재귀호출이 일어나는 것처럼 보이는데... 그래서 Init(); 호출을 지우면 이런 오류는 안나옵니다. 무한 호출이 일어나는 이유를 알 수 있을까요? StackOverflowException: The requested operation caused a stack overflow. Managers.get_Instance () <0x252b47f87f0 + 0x00008> in <3152d6b1a9334587bbe43f1d8528b776>:0 Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.Init () (at Assets/Scripts/Managers/Managers.cs:25) Managers.get_Instance () (at Assets/Scripts/Managers/Managers.cs:8) Managers.In<message truncated>
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Visual Studio 와 Unity 연결
- 강의를 보면 Visual Studio에서 Unity 관련 함수들이 자동완성되고 Breakpoint도 걸리는데 제꺼는 다 안되고 있어서요..ㅠㅠ 설정 참고할만한 곳이 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
script 프로젝트 열기
마지막 최종+코드 폴더를 다운로드후에 비주얼코드로 소스를 확인하고 싶은데, 강의에서처럼 전체 트리구조로 볼려면 어떻게 해야되나요? 이후 프로젝트에서는 .sln파일이 있는데 3강에서는 폴더로 열기해도 안되고, 개별로만 열리네요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매핑 단어 뜻
강의중간중간 매핑이라는 단어가 나오는데 코드를 보고 구글링을 해도 정확한의미를 잘 모르겟어서 질문드립니다 ㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Managers 생성
(@Scene)오브젝트 CursorController.cs의 Start 함수에서 Managers.Resource.Load 호출 시 Managers의 Init 함수가 호출되면서 @Managers오브젝트가 Hierachy에 생성이 되야 된다고 생각을 했는데 안되는거보니 생각이 틀린듯한데 어떤 부분이 틀렸는지 간단하게 답글을 달아주시면 감사하겠습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
The script don't inherit a native class that can manage a script.
HelloUnity 스크립트를 GameObject에 추가하려했더니 The script don't inherit a native class that can manage a script. 이렇게 뜨는데 왜그러는 걸까요ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
집행검 아이콘 클릭시 콘솔출력이 안됩니다.
itemnametext에 집행검 0~7까지는 표시가 됩니다.그런데 이제 이벤트가 작동을 하지 않습니다. 정확히는 집행검 아이콘 클릭시 콘솔출력이 안됩니다.코드정리 자료다운받아서 복붙해보기도 했는데, 역시 똑같이 집행검 아이콘클릭시 출력이 안되는 문제가 있었습니다. Subitem 폴더의 UI_Inven_item 스크립트에서 Get<GameObject>((int)GameObjects.ItemIcon).BindEvent((PointerEventData) => { Debug.Log($"아이템 클릭! {_name}"); }); <--코드 중에 _name변수값에 null값이 들어가는 것까지는 디버깅으로 확인을 했습니다... 그런데 어떻게 해결을 봐야할지 잘모르겠어서 질문드립니다바쁘실텐데 한가하실때 답변주시면 감사하겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
외람된 질문드립니다. 글씨체 색깔은 어디서 변경하나요?
강의 영상처럼 글씨 색깔을 바꾸고 싶은데 어떻게 바꾸는지 궁금합니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Plane 뒷면 안보임 및 충돌 감지가 안됩니다.
안녕하세요. 루키즈님 콜리전 관련해 질문이 생겨 연락드립니다. 아래 영상 처럼 윗면만 메테리얼이 지정되고, 게임을 실행시켰을 때 유니티 짱을 벽 근처에 가까이 가면 충돌하는 모션이 생기지만, 아래의 plane바닥과는 다르게 통과할 수 있습니다. 이유를 알수 있을까요?? 감사합니다. -- ------ 추가 적으로 유니티 짱의 Capsule Collider에서 Direction 부분을 X-Axis 인것을 하나 더 추가했더니 벽은 충돌 감지를 하나, 처음부터 가만히 서있어도 떼굴떼굴 구르네요...
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
KeyAction.Invoke()와 KeyAction();의 차이점이 궁금합니다.
안녕하세요. Rookiss님 질문이 생겨서 글 올립니다. Input Manager 강의에서 KeyAction.Invoke()로 구독을 신청한 함수들을 실행시키는 코드를 쓰셨는데, 이전 delegate강의에서는 KeyAction() 처럼 invoke()없이 부르셨던게 기억이 났습니다. KeyAction()으로 실행시켜도 똑같이 잘 실행이되는데 내부적으로 차이점이 있을까요? 감사합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
19:51 _speed가 20
[SerializeField] 설정으로 유니티에서 _speed 값을 20으로 바꾼 탓에 저렇게 나오는거 같은데 그럼 우선순위가 유니티에서 설정한 값이 코드상 값보다 무조건 우선인가요? . 추가적으로 position이나 rotation 이런 애들도 코드보다 유니티 툴에서 설정한 값이 우선인가요? 아니면 SerializeField 설정된 애만 그런건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
마우스 클릭시 기울어집니다
캐릭터가 키보드로 움직일때 별 이상이 없지만 마우스로 클릭 할시 밑사진과 같이 목적지에 도착하고나서 기울어지는데 is kinematic을 키는거 말고 방법이있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Instance에 Managers를 왜넣어주는건가요?
이 강의에서 Instance는 이미 Managers 클래스 안에 있는 변수인데 어째서 다시 Instace에 Manager를 넣어주는 건가요?