월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
CrossFade에 대해 질문 드립니다!
_playerAni.CrossFade("Attack", 0.1f, -1, 0); 으로 사용 할 때 이 코드를 한 번만 부르면 예로 Start에 이것 하나만 때려 박혀있는 상태라 가정하면 Attack이 지속적으로 실행되어야하 는게 맞지 않나요..? 애니메이션이 문제인건지 뭔지를 모르겠는데 한번 실행 후 멈춰 있는 느낌이여서 어쩔 수 없이 ani를 loop가능하게 체크하고 _playerAni.CrossFade("Attack", 0.1f); 이렇게 사용 하고 있는데 _playerAni.CrossFade("Attack", 0.1f, -1, 0); 이 코드를 사용 했을 경우 애니메이션이 루프가 돌지 않는 이유야 엄청 나고 상황에 따라 다르겠지만 혹시 혹시나 돌지 않는 이유중에서 뭔가 흔한 무언 그런 이유가 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Inven에서 오류 질문입니다!
인벤토리 실습을 따라하는 도중에 빨간줄이 떠서 무슨오류인가하고 살펴봤더니 강사님의 c#스크립트에는 뜨지않은 오류가 떴습니다. UI_Base의 Get함수도 살펴보고 다시 첨부터 돌려봤는데 어디서 잘못작성한것인지 감을 잡지 못하겠습니다.. 무엇을 잘못했는지 지적해주실 수 있으실까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
지금까지의 ui에 대하여 정리 및 확인질문입니다!
1. FindChild의 인자 => (호출한 곳 컴포넌트(Monobehavior가 붙어있는 클래스)가 붙어있는 게임오브젝트, 이름으로 찾기위하여 전달받은 오브젝트의 이름, 재귀적으로 찾기위함을 확인하기 위한 변수) 로 해석해도 될까요? 2. Util에서 GetComponentsInChilderen은 게임오브젝트 go에 붙어있는 모든 컴포넌트를 하나씩 검색하도록 쓰인것이라고 이해하면 될까요? 이를 위해서 foreach를 쓴것이구요 3.<T>를 사용하는 이유는 Bind를 호출하면서 내가 호출하고싶은 컴포넌트의 종류를 확정짓기 위함이 맞나요? 4. 제가 이해한것은 이 클래스들은 구성한 이유는 UI의 자식에 붙어있는 각 오브젝트를 자동으로 찾고싶어서 오브젝트에 붙어있는 컴포넌트를 조건으로 이름을 검색하여 코드상에서 찾도록 자동화를 시킨것인데 제대로 이해한것이 맞나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Collision질문입니다!
애니메이션파트를 전부 듣고나서 UI로 넘어가기전 배운것들을 여러가지 혼자서 실험하는도중에 어떤 오브젝트의 Collision을 잘못 건들인건지 UnityChan이 걸으면서 바닥에 고꾸라지는 모션을 취하고 있습니다. 제가 원하는것은 Run하는도중 상자를 만나면 wait하고 벽을만나면 카메라시점전환과 동시에 wait하는것인데 이것을 같이 충족하려 중력이나 Trigger등 여러가지를 만져보았지만 성공하지 못하였습니다 ㅠㅠ,, 이에 이 강좌의 부분에서 UnityChan의 중력과 Trigger상태는 어떻게 되어있는지 알고싶습니다. 또한 상자와 바닥, 벽등이 Is Trigger를 켜야하는 것이 맞는지 여쭤보고 싶습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
a project with an output type of class library cannot be started directly
빨간점 찍고 디버그를 하려는데 아래 사진과 같은 오류가 뜹니다. 아까까지만 해도 잘 됬었는데 갑자기 저렇게 뜨네요 검색해봐도 set as startup project 해봐라, output타입을 바꿔봐라 이런 소리만 하는데 다 안되네요.. 껐다켜도 안되는데 왜 이런 오류가 뜬금없이 뜰까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
안녕하세요 디버깅 문제
안녕하세요 강의 너무 잘듣고 있는 수강생 입니다.제가 디버깅을 할려고 하는데 break point가 전부다 비어있는 원으로 나오게 되고 커서를 가져다 되면 "중단점이 현재 적중되지 않습니다. 해당 위치를 찾을 수 없음"이라는 글이 나오네요... 실행해도 break 안걸리구요.도와주세요ㅜㅜ구글링 해보니 프로젝트랑 연결이 안되어있다고 해서 분명 연결 되있는거 같은데도 이러니.. 너무 답답하네요ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
transform 속도 질문입니다
다른 책같은 곳에서는 GetaxisRaw한다음 normalized한다음 이동시키는데 강의에서 구현한 if문으로 각각 따로 이동로직을 뒀을때 키를 동시에 눌러서 대각선 이동하면 직선이동 속도랑 같은지 다른지 궁급합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Resources.Load를 해도 계속 null인 상태입니다,,
강사님이 알려주신 방법대로 따라해보았는데 초기화시키길 원하는 오브젝트가 Null이라는 오류가 계속 뜹니다.. 제가뭔가 잘못 입력한것일까요..? ㅠㅠ 구글링해도 방법을 찾을 수 없습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
1분 34초 질문입니다!
UI부분이 어려워서 다시 듣고있는데요 1:34 에서 UnityEngine.Object[] objects = null; 라고 objects 리스트를 따로 만든 ㄴ 이유는 무엇인가요?? 강의 코드 43번째 줄에서 if문 안에서 Bind에서 만든 Objects리스트를 사용을 하는데 왜 또 위에다가 objects라는 동일한 이름의 리스트를 만들고, 만들 수 있는 이유를 모르겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Despawn하는 부분 질문
만약에 GameScene에서 SetMonsterKeepCount를 20으로 설정을 하고 _monsterCount 가 15정도가 되었을때 부터 생성되고 몇초후에 몬스터를 Despawn을 해보고싶어서 ReserveSpawn() 안에 if(_monsterCount > 14) 일때부터 Depsawn을 하기 시작하니 15마리까지 생성이 되고 Spawn이 멈추게 되던데 Spawn할때 Invoke로 1을 넘겨주고 Despawn하면 -1을 넘겨주니까 Despawn을 하게되면 자동으로 _monsterCount가 1이 깍여서 스포닝풀의 Update문 안의 while문이 계속 돌아야 한다고 생각이 드는데 _monstercount가 14를 넘긴후부터는 생성이 안됩니다.. 이런 부분은 어디서 손을 봐야 하나용..?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
파일을 못 가져옵니다
안녕하세요. 강좌에 Play함수의 매개변수로 파일경로를 지정하면 읽어와야 하는데 읽지를 못하고 있습니다. 소스코드는 강의에 나온 그대로이고, 확장자도 .wav 붙여서 해봐도 안됩니다.. 혹시나 스크립트 위치 기준으로 불러들이는가 해서 Play 함수와 관련된 스크립트 파일을 Assets에 옮겨서도 실행해봤는데 안됩니다. ㅈ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Action 관련해서 질문드립니다.
InputManager에서 public Action KeyAction = null; public void OnUpdate() { if (Input.anyKey == false) return; if (KeyAction != null) KeyAction.Invoke(); } 저 빨간 부분인 KeyAction.Invoke()에 대해 궁금한데요. 찾아보니까 Action을 사용하려면 Invoke가 붙어야 한다고 구글링을 통해 알았습니다만... 그런데 Invoke 없이 일반적으로 KeyAction(); 만 사용해도 문제없이 실행 되더라고요. 여기서 Invoke가 있고 없고의 차이가 무엇인지 알수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
gridPanel에서 nullreference 오류가 납니다
아래에 같은 질문이 있길래 따라 했는데 유니티랑 C# 둘다 처음이라 그런지 찾기가 너무 어렵네요 ㅜ 여기서만 4시간째 헤메고 있습니다 오류코드는 : NullReferenceException: Object reference not set to an instance of an object UI_Inven.Init () (at Assets/Script/UI/scene/UI_Inven.cs:32) UI_Inven.Start () (at Assets/Script/UI/scene/UI_Inven.cs:14) 이렇게 나오고 코드는 : using System.Collections; using System.Collections.Generic; using UnityEngine; public class UI_Inven : UI_Scene { enum GameObjects { GridPanel } void Start() { Init(); } public override void Init() { base.Init(); Bind<GameObject>(typeof(GameObjects)); GameObject gridPanel = Get<GameObject>((int)GameObjects.GridPanel); foreach (Transform child in gridPanel.transform) Managers.Resource.Destroy(child.gameObject); for (int i = 0; i < 8; i++) { GameObject item = Managers.Resource.Instantiate("UI/Scene/UI_Inven_Item"); item.transform.SetParent(gridPanel.transform); UI_Inven_Item invenItem = Util.GetOrAddComponent<UI_Inven_Item>(item); invenItem.SetInfo($"집행검{i}번"); } } } 이렇게 짰습니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
싱글톤 질문입니다.
안녕하세요. 예전에 다른 자료에서 이런식으로 짧게 써서 구현한걸 봤는데요, 처음에는 매니저를 못찾아서 안됐는데, 컴포넌트에서 스크립트를 뺐다가 다시 넣어주면 출력이 되더라구요. 왜 이런지 알 수 있을까요..??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 13:51 쪽 부분 질문입니다.
13:50초에서 애초에 PlayerStat playerStat = attacker as PlayerStat; 이런식으로 캐스팅을 해주니까 이전에 있던 Define.WorldObject type = Managers.Game.GetWorldObjectType(attacker.gameObject); if(type == Define.WorldObject.Player) 이부분을 지우셨는데 이렇게되면 OnDead에 들어오게되는 attacker가 Player일 경우에도 PlayerStat.Exp += 1; 이 되는 현상이 발생하지 않나요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 5:04분 GetPlayer 질문입니다!
GameManagerEx가 있기 전에는 FindObjectWithTag로 "Player"라는 Tag를 가진 Object를 찾아 주어서 없으면 null값으로 return;을 해버리고 끝내는 방식 이였는데 이전시간에 GameManagerEx를 만들고나서 5:04초 쯤에 GameManagerEx부분에 public GameObject GetPlayer { return _player; }이렇게 GameObject를 반환하는 함수를 구현을 해주었습니다. 그런데 제 생각에는 GetPlayer는 _player를 return만 하는 함수이지 FindObjectWithTag처럼 "Player"라는 Tag를 가진 오브젝트를 찾아서 반환을 하지 않고 GameObject를 return만 해주고 있는데 어떤 이유에서 FindObjectWithTag를 GetPlayer가 대체?를 할 수 있는 것인가요?? (GameManagerEx에서는 스폰, 디스폰, GetWorldObjectType 함수만 구현이 되있는 상태입니다.)
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
getChild() 반환이 왜 transform 타입인가요?
왜 자식을 GameObject로 저장을 안하고 transform타입으로 저장하는 것인가요? transform은 GameObject의 위치,회전,크기를 정하는 것인데 왜 transform인 것인지 이해가 안가서 그렇습니다. 그리고 혹시 어째서 GetChild() 함수가 transform에 있는 것인가요? transform은 위치 같은 정보를 가지고 있는 component 이라고 생각했는데... 조금 이상하게 느껴져서
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
컴포넌트의 이해 (싱글턴)
이해가 맞는지 확인하고 싶은데요 1. 싱글턴 패턴이라는게 "여러플레이어가 하나의 MANAGER라는 인스턴스를 각자 컴포넌트로 가지고 있는 것" 이런 이해가 맞을 까요 2. go.AddCompont<manager>에서 < >은 왜쓰는건가요감사합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Data.Contents의 stats의 초기화가 잘 이해가 안됩니다 ㅠㅠ
디버그해본 결과.. 1. 여기서 LoadJson이 실행되고 2. 여기서 FromJson을 통해 반환되는 값이 <Loader>라는 형식으로 변환되어서 리턴됨. 3. 그럼 이코드에서 LoadJson<StatData, int, Stat>("StatData")까지 수행된 상태에서, 반환받은 ILoader인 어떤것에서 . 이후의 MakeDict가 실행된다고 생각했습니다. 4. 그 다음 이 부분에서 stats는 null 이였다가 -> f11을 한번 더 누르니 갑자기 리턴받은 값으로 값이 채워져있었습니다. Q. 이때 이 stats가 초기화 된건지 모르겠어요 ㅠㅠ 저는 3번에서 MakeDict 이전에 StatData에서 가져온 값으로 가상의(?) 개체가존재하고 있어서 makeDict가 수행된거라고 생각했습니다. 근데 MakeDict이전에 stats = new List<Stat>()가 수행되는데 이때 null이였다가 f11을 한번 더 눌러 실행했더니 값자기 값이 들어옵니다. 대체 어디서 초기화가 된건가요? stats = 초기화할내용 이런 구문은 없는데 stats가 어떻게 초기화가 된건가요ㅠㅠ? 제가 어딘가에서 잘못 이해한것 같습니다 ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Transform과 GameObject의차이
안녕하세요 강의 잘보고 있습니다. 1. 강사님 코드를 보면 항상 Transform을 더 자주 사용하시는 것 같아요, 중요 기능도 GameObject보다 Transform과 같은 컴포넌트를 가져오고 거기서 게임오브젝트를 끌어오시는? 그런 코드를 자주 접했는데 속도면에서 장점등이 있어서 그런건가요? 2. 저는 컴포넌트를 게임오브젝트 산하의 부산물이라는 애매한 개념을 갖고있었는데 컴포넌트 == 게임오브젝트 이렇게 이해해도 될까요?