묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[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); } } }
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
스킬제작 질문입니다
리그오브레전드로 예시를 많이 드셨는데 바루스 Q나 비에고W같은 스킬은 어떻게 제작할 수 있을까요.간단한 힌트를 부탁드립니다..
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
Missing (Mono Script)
어떤 스크립트가 끼워져 있었는지 모르겠어요.(물론 빌드하면, 게임 플레이는 정상적으로 되긴 하지만. 그래도 어떤 스크립트가 들어가 있는지 확인할 수가 없어서 답답하네요.)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Arraysegment가 무엇일까요?
Arraysegment가 무엇일까요? 검색해봤는데요. 검색한 것마다 내용이 조금 달라서요.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
ResourceManager 메서드 역할
ResourceManager 의 메서드 중 LoadAllAsync<T>() 는 Addressables 에 있는 특정 label이 붙은 애들을 가져와서 _resource 에 넣어서 메모리에 올리는 역할을 하는 것이고, Load, instantiate 함수는 _resource 에 있는 애들을 불러와서 로드 하거나 게임에 생성하는 역할을 하는 게 맞는지 확인 부탁 드립니다.
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
DrawFoldoutTitle에 질문이 있습니다.
CustomEditorUtility에 있는public static bool DrawFoldoutTitle(string title, bool isExpanded, float space = 15f)와 public static bool DrawFoldoutTitle(IDictionary<string, bool> isFoldoutExpandedesByTitle, string title, float space = 15f)이 각각 있는데 첫번째 DrawFoldoutTitle에서 space 값을 변경해도 두번째의 DrawFoldoutTitle에있는isFoldoutExpandedesByTitle[title] = DrawFoldoutTitle(title, isFoldoutExpandedesByTitle[title], space);여기 때문에 변경이 안되는거고 타이틀이 여러개 있을경우를 대비해서 여러개 각각의 간격을 위한건가요
-
미해결1. 유니티가 어려운 입문자를 위한 강의
디버그시 발생하는 문제 & 질문
안녕하세요. 이번 강의 유익하게 들었던 한 수강생입니다. 디버깅 실행시 이상현상이 발생해 이렇게 문의 드립니다. 우선 저같은 경우는 이미 디버그 실행 버튼이 'unity에 연결'로 되어있었고, 디버그를 최초 실행하면 아래와 같은 화면이 떠 맨 첫번째 선택창을 선택하였습니다그 뒤로 디버깅을 해보았고 잘 되었습니다. 다만 불편한 점이 한가지가 있었는데위 사진처럼 가장 아래의 창이 빨간색으로 되어있다는 거였습니다. 혹시 영상과의 연결 방법 차이로 인해 발생하는 것인가 싶어 영상에 나온 초기 연결 방법대로 연결을 해보았지만 똑같았습니다. 위 현상을 해결하려면 어떻게 해야 하나요?그리고, 디버깅 중 디버그.로그를 써서 출력하는 것들은 유니티 콘솔창에 표시가 되므로, 디버깅 중에 확인할 수가 없었습니다. 물론 변수를 확인하면서 출력되는 것이 무엇인지 알 수도 있지만 그럼에도 저는 비쥬얼 스튜디오 내에서도 출력이 되도록 하고 싶습니다. 만약 그렇게 하려면 어떤 명령어를 써야 할까요?
-
미해결[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 + T2)
에러해결방벙을 찾고싶어요
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가 계속 이름이 현재 컨텍스트에 없다고 에러가 뜹니다 어떻게 해결해야 하나요?
-
해결됨따라하면서 배우는 고박사의 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 ()
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
deadstate 질문입니다
deadstate에서 에니메이션이 다 재생된후 destroy를 할려면 어떻게 해야할까요따로 함수를 만들어 애니메이션 트리거로 destroy를 하고 있는데 더 나은 방법이 있을까 해서 질문해봅니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
FindObjectOfType() 에 대한 질문입니다.
강의 11분 53분 지점에서 EventSystem을 찾는 부분에서코드를 작성할때 강의대로 따라가며 Object obj = GameObject.FindObjectOfType(typeof(EventSystem)); 코드를 작성했는데 비주얼스튜디오에서 빨간줄 녹색줄 노란줄이 화려하게 난무하고 유니티에서도 널크러시가 나서요. 비주얼스튜디오에서 잠재적수정사항으로 FindObjectOfType() 가 아니라 FindAnyObjectByType()를 사용하라고 권장해서 일단 임의로 비주얼스튜디오가 하라는대로 FindAnyObjectByType()를 사용하여 코드를 작성했습니다. 비주얼스듀디오가 권장한 대로 수정한 후에 문제가 발생하지 않아 그냥 이대로 진행해 보려고 합니다만 왜 FindObjectOfType()사용에서 널크러시가 발생한 것인지 의문이 생겨서요.구글링 결과 두 함수 사이에 성능의 차이가 있다는 글을 찾았는데 단순히 성능차이때문에 널크러시가 나지는 않을듯 하고 제가 사용하는 유니티와 비주얼스튜디오의 버전차이 때문인지 아니면 제가 이전에 작성한 코드에 문제가 있어 수정이 필요한 사항인지 궁금해서 문의드립니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
스프라이트 자료
아무리봐도 스프라이트 자료가 안보이는데 어디서 다운받을 수 있을까요? 같은 질문을 찾아봣는데 구름모양이 없어서요
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
현업에서 OdinInpector도 자주 쓰이나요??
OdinInspector를 구매해 둔 김에 사용해보고 싶어서 강의를 따라가며 Editor코딩 부분을 Odin으로 해볼까 싶은데요일단 기본적인 Editor코딩 경험 vs OdinInspector사용 경험둘 중에 어떤 것을 더 추천하시나요??
-
미해결따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 02
[2048] PC에서 Build 할 경우 해상도 문제
[2048] 게임을 다 만들고 PC 에서 빌드를 하니 해상도가 너무 커서 위 아래 부분이 잘리고 가운데 부분만 보입니다.Canvas - Canvas Scaler - Reference Resolution 에서 설정을 변경하면 UI 에 영향을 주어 크기를 변경하기가 어렵더군요.혹시 PC에서 해상도가 정상적으로 나타나도록 설정하는 방법이 있을까요?빌드 후 실행 화면입니다.유니티 편집 화면입니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
경험치를 빼앗아 레벨 다운을 시켰을 경우
포트폴리오를 만드는 과정 중 UI 작업에서 자료를 찾다가 해당 강의를 수강하게 되었습니다, 이런 자기만의 프레임 워크를 만드는 강의 정말 좋다고 생각하고 설명도 이해가 잘 되게 알려주셔서 잘 듣고 있습니다!!해당 강의 중 27:30에 level 변수에 1을 넣어 경험치를 빼앗았을 경우 레벨 다운도 가능하다고 말씀 해 주셨는데 해당 작업을 수행하려면 추가로 로직을 더 작성해야 하는 거죠??추가로 level이 3일 때 레벨업을 하게 되면 if문에 걸러져서 break가 나는 로직인데 int level = 1이 계속 들어오면 레벨 3에서도 레벨업이 되지 않나요..??위와 반대로 level = _level일 때 레벨 다운을 하고 싶을 경우 만렙 기준에서는 레벨 다운이 안되는 현상이 있을 거라고 생각합니다..!이러한 조건에 의해 레벨 다운에 있어 추가 작업이 필요하고 level = 1이 됐을 때 만렙을 넘겨 레벨업을 할 수 있다고 생각하는데 맞나요??
-
해결됨[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템
이런 스킬시스템을 저장하는 방법
강의 모두 잘들었습니다. 공부한 내용을 바탕으로 스킬시스템을 넣은 게임을 만드려고 합니다. 추가로 파이어베이스의 리얼타임 데이터베이스까지 사용해서 세이브/로드 기능도 구현하려고 하는데, 이때 Json으로 저장하는 부분에서 어려움을 느끼고 있습니다. 우선 제가 알고있는 수준은 string json = JsonUtility.ToJson(player); 같이 ToJson으로 변환해서 저장하는 정도입니다. 다만 이 방법으로는 int,string,float 같은 기본 자료형만 저장이 가능한데, 이때 Entity가 들고있는 저장해야하는 데이터들. 여기서는 SkillSystem과 Stats도 저장에 포함되어야겠죠 스탯과 스킬이니깐. 이런 것들은 어떤식으로 저장을 구현하는지 마땅히 떠오르지 않습니다..멀티 게임은 아니고 싱글게임에 서버만 입혀주는 정도기 때문에 Player(강의의 Entity)의 다양한 데이터를 저장하는 방법을 알아야 하는데, 이 강의에서 나오는 현재 플레이어가 보유한 스탯,스킬의 정보는 어떤식으로 저장을 해야하나요? 최대한 쉽게.. 알려주시면 정말 너무 감사하겠습니다 ㅠㅠ 어려워요..