묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
InventoryUI가 특정 상황에서 ESC로 나가지지 않는 현상
수강생들이 혹시나 동일한 경험할까봐 남겨둡니다.재현방법실행Lobby에서 InventoryUI 오픈InventoryUI에서 EquipmentUI 오픈ESC 입력하여 EquipmentUI 닫기 ESC 입력 재현결과InventoryUI 위에 게임을 종료하시겠습니까 ConfirmUI 오픈기대결과InventoryUI 닫기 재현버전(강의)진행 이후 수정되었을 수도 있어서 적어만 둡니다.아이템 장착 Pt.4사유이전에 GoodsUI를 추가 하면서 OpenUI() 중 여는 ui의 siblingIndex를 childCount - 1로 수정하였습니다.하지만 CloseUI() 할 때 그 다음 lastChild를 childCount -2로 조회하는 것으로 수정하지 않았습니다. 이 결과,해당 재현 상황에서 UIManager의 CloseUI() 중 lastChild로 InventoryUI가 들어와야 하는데 GoodsUI로 들어오게 됩니다. GoodsUI는 BaseUI를 상속하지 않으므로 GetComponent<BaseUI> 후 설정되는 m_FrontUI가 null이 됩니다. 이후 ESC를 누르면 m_FrontUI가 null이므로 InventoryUI가 있음에도 게임 종료 ConfirmUI가 노출됩니다. 간이 해결CloseUI시 frontUI에 GoodsUI가 아닌 그 다음 UI가 제대로 들어가게 하기.UIManager.cs CloseUI() 수정하기var lastChild = UICanvasTrs.GetChild(UICanvasTrs.childCount - 2);
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
창은 뜨는데 맵이 나타나지 않아요.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Algorithm { class Board { const char CIRCLE = '\u25cf'; // \u25cf = ● public TileType[,] _tile; // 배열 public int _size; public enum TileType { Empty, Wall, } public void Initialize(int size) { _tile = new TileType[size, size]; _size = size; for(int y = 0; y < _size; y++) { for(int x = 0; x < _size; x++) { if (x == 0 || x == _size - 1 || y == 0 || y == _size - 1) _tile[y, x] = TileType.Wall; else _tile[y, x] |= TileType.Empty; } } } public void Render() { ConsoleColor prevColor = Console.ForegroundColor; for (int y = 0; y < _size; y++) { for (int x = 0; x < _size; x++) { Console.ForegroundColor = GetTileColor(_tile[y, x]); Console.Write(CIRCLE); } Console.WriteLine(); } Console.ForegroundColor= prevColor; } ConsoleColor GetTileColor(TileType type) { switch(type) { case TileType.Empty: return ConsoleColor.Green; case TileType.Wall: return ConsoleColor.Red; default: return ConsoleColor.Green; } } } }using System; namespace Algorithm { class Program { static void Main(string[] args) { Board board = new Board(); board.Initialize(25); Console.CursorVisible = false; // 커서가 안 보임 const int WAIT_TICK = 1000 / 30; int lastTick = 0; // 마지막 시간 while (true) { #region 프레임 관리 // 시스템이 시작되고 난 후 시간으로 넣음 int currentTick = System.Environment.TickCount; // 1000/30이라고 쓴 이유는 ms(밀리세컨드)떄문에 // 1/30라고 안 쓰고 1000을 곱해줘서 작성한다. if (currentTick - lastTick > WAIT_TICK) continue; lastTick = currentTick; #endregion // 렌더링 Console.SetCursorPosition(0, 0); // 커서 위치를 (0, 0)으로 설정 board.Render(); } } } }
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
스트링을 말아서 로그 쏘실 때 두가지 방식 차이
학습 관련 질문을 남겨주세요.먼저 유사한 질문이 있는지 검색 부탁 드립니다.질문 내용이 상세할수록 명확한 답변을 드릴 수 있습니다.진행에 문제가 있는건 아니구요.강사님께서 스트링을 말아서 로그 쏘실 때 두가지 방식으로 나뉘더라구요.Logger.Log($"SerialNumber: {item.SerialNumber} ItemId: {item.ItemId}"); Logger.Log("Load failed (" + e.Message + ")"); 강사님은 역할이 구분되어 있던데 어떤 차이를 두고 사용하시는지 단순 궁금합니다.메시지는 무조건 string이니까 그런건지.. 가독성 측면에서 이점이 있는건지.. 유지보수에서 도움이 되는건지..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
수업자료 받는곳
안녕하세요, 수업자료가 제공된다고 되어있는데, 자료 받는 곳을 찾을 수 없습니다. 어디에서 받을 수 있는지 알고 싶습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
아이템 장착 Pt.1 ~ Pt.2 파트 문의
안녕하세요 선생님유니티 왕초보 질문 드립니다.강의 수강 도중 Pt.1 마지막 부분 Equipment UI 창 부분에서아이템 클릭 시 모든 아이템의 백그라운드 이미지가 Legendary(빨강색)로 설정되어 있는 것으로 보이는데요,Pt.2 파트로 넘어오니 작업한 게 없는거 같은데 각 아이템의 백그라운드 이미지가 등급에 맞게 조절되어 있는거 같습니다.현재 Pt.4 파트 수강 중인데 아이템 장착 / 탈착 시각 파츠에 EquippedItemIcon이 제대로 표기되지 않는거 같아 문의드립니다.
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
유니티 패키지파일 질문!
패키지 파일을 다운 받고 유니티에 넣었는데 압축된 파일 그대로 넘어오는건 어떻게 해결하나요????
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Coroutine과 uniTask 질문드립니다.
Coroutine을 적극 권장하신다고 하셨는데 new연산자로 코루틴은 인스턴스를 만들고 그로인해 가비지가 생성된다고 알고 있습니다. 이런 이유로 대안으로 uniTask가 나왔다고 들었습니다. 아직 uniTask보다 Coroutine이 보편화되어있고 성능적 이점이 크게 차이가 나지 않는 지 궁굼합니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
여유가 되신다면 mmorpg의 꽃, 레이드관련 강의 요청드려도 될까요
용가리가 브레스 쾅발구르기 낙석 쿠과광마지막 발악패턴 비늘탄막 슈슈숭난관을 넘어 던전에서 쌓여가는 우정!상상으로도 가슴뛰는 컨텐츠인데너무 무리한 부탁이겠지유
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
Data #2 까지 들었는데 빌드를 해보고싶은데, 어느 강의에서 확인할 수 있나요?
아무래도 어드레서블의 에셋로드가 안되고 있는것 같은데..글을 찾아보니 5월 강의에서 다룬다고 되어있더라구요.어느 강의를 봐야 이부분을 해결할 수 있나요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
피격 텍스트 영상이 피격 이벤트 영상과 동일합니다.
피격 텍스트 영상이 피격 이벤트 영상과 동일합니다.영상이 잘못 업로드된 것 같아요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
플레이어 포지션 변경 하기 위해 코드 추가
플레이어 포지션이 발이기 때문에 카메라가 계속 발을 찍고 있다고 해서 , 플레이어 포지션 값을 좀 올려보려고 float _playerhight = 1.0f; // 캐릭터 원하는 높이Vector3 playerPosition = player.transform.position + Vector3.up * playerhight;이 부분을 추가했는데 작동은 되는데 별로 차이가 없는것 같더라구요.. 제대로 한게 맞을까요? void LateUpdate() { float _playerhight = 1.0f; // 캐릭터 원하는 높이 Vector3 playerPosition = _player.transform.position + Vector3.up * _playerhight; if (_mode == Define.CameraMode.QuarterView) { RaycastHit hit; if(Physics.Raycast(_player.transform.position, _delta, out hit, _delta.magnitude, LayerMask.GetMask("Wall"))) { // dist : 거리 float dist = (hit.point - _player.transform.position).magnitude * 1.0f; transform.position = _player.transform.position + _delta.normalized * dist; } else { transform.position = _player.transform.position + _delta; transform.LookAt(_player.transform); } } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Arraysegment가 무엇일까요?
Arraysegment가 무엇일까요? 검색해봤는데요. 검색한 것마다 내용이 조금 달라서요.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
ResourceManager 메서드 역할
ResourceManager 의 메서드 중 LoadAllAsync<T>() 는 Addressables 에 있는 특정 label이 붙은 애들을 가져와서 _resource 에 넣어서 메모리에 올리는 역할을 하는 것이고, Load, instantiate 함수는 _resource 에 있는 애들을 불러와서 로드 하거나 게임에 생성하는 역할을 하는 게 맞는지 확인 부탁 드립니다.
-
해결됨1. 유니티가 어려운 입문자를 위한 강의
디버그시 발생하는 문제 & 질문
안녕하세요. 이번 강의 유익하게 들었던 한 수강생입니다. 디버깅 실행시 이상현상이 발생해 이렇게 문의 드립니다. 우선 저같은 경우는 이미 디버그 실행 버튼이 'unity에 연결'로 되어있었고, 디버그를 최초 실행하면 아래와 같은 화면이 떠 맨 첫번째 선택창을 선택하였습니다그 뒤로 디버깅을 해보았고 잘 되었습니다. 다만 불편한 점이 한가지가 있었는데위 사진처럼 가장 아래의 창이 빨간색으로 되어있다는 거였습니다. 혹시 영상과의 연결 방법 차이로 인해 발생하는 것인가 싶어 영상에 나온 초기 연결 방법대로 연결을 해보았지만 똑같았습니다. 위 현상을 해결하려면 어떻게 해야 하나요?그리고, 디버깅 중 디버그.로그를 써서 출력하는 것들은 유니티 콘솔창에 표시가 되므로, 디버깅 중에 확인할 수가 없었습니다. 물론 변수를 확인하면서 출력되는 것이 무엇인지 알 수도 있지만 그럼에도 저는 비쥬얼 스튜디오 내에서도 출력이 되도록 하고 싶습니다. 만약 그렇게 하려면 어떤 명령어를 써야 할까요?
-
미해결C# OpenCV 컴퓨터비전 입문 강좌
20강 threshold 질문이요.
안녕하세요 대희님. 대희님 강의 들으며 컴퓨터비전 맛보고 있는 학생입니다.20강 수강하면서 질문이 생겼습니다. 7분 정도(강의 지점)에서 FindContour 메소드에서 bin 필드 정의할 때bin = this.Binary(src, 150); 이라고 Binary 메소드에 threshold를 150으로 주셨는데150 말고 다른 숫자 이것저것 넣어봤더니 88 미만의 숫자를 입력하면 polygon.png 이미지의 외부에 빨간선이 그려지고, 88 이상의 숫자를 입력하면 polygon.png 이미지의 2열 4행 사각형의 내부에 빨간선이 그려지더라구요.혹시 threshold를 150으로 준 이유가 있으실까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강의 내용 이해
이번 벡터 강의가 이해가 되면서도 또, 헷갈리는 부분이 있는데 이럴때는 확실하게 이해를 하고 넘어가야 하나요? 아니면 어느정도 이해를 한 상황에서 추후 지식이 더 쌓였을때 다시 한번 듣는 것이 더 나을까요..?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UI Canvas가 여러개일 경우
안녕하세요.강의 잘 보고 있습니다.다름이 아니라, 강의 내용을 따라 하다 보면UIManager - UICanvasTitle - UICanvas이렇게 한 씬에 UICanvas가 두개 이상 존재할 때가 있는데요.Import한 프리팹에서는 UIManager 밑의 UICamera의 Priority 값이 1로 되어 있고, LobbyUIController나 Title의 UICamera에서는 0으로 되어 있더라구요.그래서 그런지 아래 사진처럼 UIManager의 화면만 나오네요. UICamera들의 Priority 값을 다 0으로 바꿔도 하나의 Canvas만 나오는데, 두 개 이상의 Canvas가 같이 화면에 나오게 하려면 어디를 수정해야 할까요?
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
강의 자료 질문
혹시 '4.3 유저 재화 관리 및 커스텀 메뉴 (UserGoodsData, GoodsUI, CustomTools)' 강의 자료에서 Art/UI/GoodsUI 폴더에 있는 아이콘이 없는게 맞는건가요?
-
미해결[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
에러해결방벙을 찾고싶어요
public T Load<T>(string key) where T : Object;//ResourceManager.Load<T>(string)은 abstract, eatern또는 partial로 표시되어 있지 않으므로 본문을 선언해야 합니다 라고 뜨는데 어떤 선언문을 써야 하나요?{ //','와' )'가 필요하다고 오류가 뜨는데 어디가 필요한 건지 궁금합니다 그리고 TryGetValue 와 key가 현재 컨텍스트에 없다고 에러가 뜨는데 어떻게 해결해야 하나요? if (_resources.TryGetValue(01Key, out Object resource)) //';'가 필요하다는 에러가뜨고 T도 현재 컨텍스트에 없다고 에러가 나옵니다 return resource as T; return null;}GameObject Instantiate(string key, Transform parent = null, bool pooling = false){ GameObject prefab = Load<GameObject>(key); if (prefab == null) { Debug.LogError($"Failed to load prefab : {key}"); return null; } //if (pooling) // return Managers.Pool.Pop(prefab); GameObject go = Object.Instantiate(prefab, parent); go.name = prefab.name; return go;}심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS1031 형식이 필요합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 17 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS8124 튜플에는 요소가 두 개 이상 있어야 합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 17 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 '{'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 16 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 '{'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 16 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 'as'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 18 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS1519 클래스, 레코드, 구조체 또는 인터페이스 멤버 선언에 잘못된 토큰 ';'이(가) 있습니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 18 활성 심각도 코드 설명 프로젝트 파일 줄 비표시 오류(Suppression) 상태 세부 정보오류 CS8803 최상위 문은 네임스페이스 및 형식 선언 앞에 와야 합니다. Assembly-CSharp C:\Users\Administrator\Desktop\taein]\MMO\mmorpg\Assets\@Scripts\Managers\Core\ResourceManager.cs 23 활성 그리고void LoadAsync<T>(string key, Action<T> callback = null) where T : UnityEngine.Object{ //Cache if (_resources.TryGetValue(key, out Object resource)) { callback?.Invoke(resource as T); return; } string loadkey = key; if (key.Contains(".sprite")) loadkey = $"{key}[{key.Replace(".sprite", "")}]"; var asyncOperation = Addressables.LoadAssetAsync<T>(loadkey); asyncOperation.Completed += (op) => { _resources.Add(key, op.Result); _handles.Add(key, asyncOperation); callback?.Invoke(op.Result); };앞에와 마찬가지로 resources 와 handles가 계속 이름이 현재 컨텍스트에 없다고 에러가 뜹니다 어떻게 해결해야 하나요?
-
해결됨[유니티6] 따라하면서 배우는 고박사의 2D 플랫포머 게임 제작
플렛포머 게임 3 - 1 강의 질문
안녕하세요. 선생님의 2D 플렛포머 게임 강의 3 - 1과 관련하여 질문이 있어서 남깁니다.StageData.cs 코드를 작성 후 Project의 + 를 클릭하면 Stage라는 버튼이 떠야되는데 밑에와 같은 문구가 뜨면서 활성화가 되지 않는 현상이 일어납니다. 이런 경우 어떻게 해결해야되는지 알 수 있을가요?CreateAssetMenu attribute on StageData will be ignored as StageData is not derived from ScriptableObject. UnityEditor.AttributeHelper:ExtractCreateAssetMenuItems ()