묻고 답해요
145만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
DontDestroyOnLoad() 가 적용이 안됩니다
코드는 제대로 작성했는데 정작 유니티로 돌아가면 적용되지 않는 이유가 무엇일까요.........using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; //유일성 보장 public static Managers Instance { get { init(); return s_instance; } } //유일한 매니저를 가져온다 // Start is called before the first frame update void Start() //반드시 부품으로 들어가있을때만 호출 가능함 (즉 monobehaviour이 필요함) { //초기화 //Instance = this; init(); } // Update is called once per frame void Update() { } static void init() { if (s_instance == null) { GameObject go = GameObject.Find("@Managers"); if (go == null) //@manangers가 없다면 { go = new GameObject { name = "@Managers" }; go.AddComponent<Managers>(); } DontDestroyOnLoad(go); //웬만해서는 삭제 안됨 s_instance = go.GetComponent<Managers>(); } } }using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { // Start is called before the first frame update void Start() { Managers mg = Managers.Instance; } // Update is called once per frame void Update() { } }
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 강의 시청중 궁금한점 생겨서 질문드립니다.
소켓 프로그래밍 예제들을 찾아보다가 아래의 사진처럼 await/async 비동기 방식으로 소켓프로그래밍 하는 예제를 보았는데요, 강의에서 사용된 소켓 프로그래밍 코드와 await/async 비동기 방식을 사용한 소켓프로그래밍 코드의 차이점(생산성, 속도 등등)이 궁금합니다.
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
안녕하세요. 실행관련 질문입니다!
강의 잘 듣고 있습니다.!!다름이 아니라ServicesInitializationException: The Analytics service has not been initialized. Please initialize Unity Services. 이와 같은 오류가 뜨면서 프로젝트 실행이 안되서 질문글 올립니다. 구글링 해보니 인앱결제시스템관련? 오류 같은데 이리저리 설정을 닷 해봐도 해결이 안되네여 ㅠㅠ 혹시 해결방법 있을까요 ㅠㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
프리펩 - Rect transform 수정 관련
안녕하세요 며칠 전부터 간단해보이는 문제 때문에 고민하다가 질문 남겨요ㅠㅠㅠㅠ Q1 - 프리펩 수정 관련먼저, 강의 내용을 봤을 때는,프리펩 제작 후 수정하고 싶을 때는,-> 프리펩 수정 페이지에서 수정 or Scene의 Prefab Instance에서 수정 후 override (Apply All) 이 두가지 루트인데,이미지-source image 수정할 때는,위 두 가지 루트로 접근 시 전부 수정이 정상적으로 가능했습니다. 그러나, 사이즈 변경이 필요해서 사이즈를 변경하려고 Rect transform에 들어가서width, height 값을 수정했는데앞서 말한 두 가지 루트 모두 변화를 인식 못합니다.프리펩에 들어가서, 프리펩 수정 페이지에서 수치 변화 -> 적용 안됨개별 프리펩 인스턴스에서 값 수정 -> override 여부가 뜨지 않음 ( 변화 인식 못함) 관련 사진 첨부입니다..1- 프리펩 페이지의 실제 프리펩( 앞서 말했던 첫 번째 수정 방법을 확인하기 위해i) 먼저 프리펩을 43x43으로 제작 후 프리펩 화 > 이후 프리펩 인스턴스화ii) 그런 뒤, 프리펩 페이지에서 프리펩을 45x45로 변경 >>>> 수정 사항 적용 X( AutoSave 모드입니다.) 2- Scene에서 사용하고 있는 프리펩 인스턴스( 나머지 Inspector 요소들은 실험 도중 prefab 삭제 및 unpack 하다보니 길어졌네요.. 무시하셔도 됩니다 ) i) 수정 사항 변경 확인을 위해 43x43의 프리펩을 42x42로 변경했음에도,override 여부가 뜨지 않음 ( 변경 사항을 인식 못함)Q2 - 알 수 없는 오류.. Unable to rename a GameObject with HideFlags.NotEditable.UnityEngine.GUIUtility:ProcessEvent(int,intptr,bool&) >> 이 오류가 갑자기 노란색 에러로 뜨는데, 그럴 때마다 다시 껐다가 키면 사라져 있습니다..뭐가 문제일까요..? 오류는 검색하는데 이건 사례도 별로 없어서 12년도 자료 나오고 명확한 해결 방법도 안 나오네요..
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
client에서 send시에 sendBuff 출력방식 문의(강의20분경 연결테스트중)
20분쯤 테스트 진행시에client에서 sending한 sendbuff내용이첫줄은 hello world 1회반복두번째 통신은 hello world 4회반복이후 통신은 hello world 5회 반복이 고정되어 통신되는데반복문 알고리즘을 이해하지 못한건지 정확한 메커니즘을 알고싶습니다. 너무 기초적인 질문일 수 있지만 답변 부탁드려요;;
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
게임룸에 관한 질문입니다.
안녕하세요.강의를 보면서 fps를 주제로 포트폴리오 준비를 하고있는 도중에 궁금한 것이 있어서 질문드립니다. 유니티 데디케이트 서버? 로제작할 예정입니다.fps게임에서 여러개의 그룹, 방을 가지고 있는데 서버에서는 이 방마다 각각의 맵을 생성한뒤 가지고 있나요?다른 필요한 정보들은 검색으로 방향을 찾았는데 이러한것은 어떻게 검색해야하는지 감이 안잡히네요.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
배운것을 활용하여 프로젝트를 하다가 궁금한것들이 생겼습니다.
현재 강의에서 배운 내용을 활용하여 rpg게임을 개발하고 있는데 궁금한 것들이 생겨 질문하게 되었습니다.맵을 만들면서 맵에 있는 잔디나 나무들 때문에 렌더링 해야 될것들이 많아져 이를 어떻게 해결해야 될지 잘 모르겠습니다. 일반적인 경우에는 오브젝트의 거리별로 해당 오브젝트를 렌더링 할지 말지를 정하는걸로 아는데 이를 구현하는 방법을 잘 모르겠습니다.적들이 쫓아 올때 적들이 겹치거나 서로 밀리는 현상이 있었습니다. 그래서 navmeshagent에서 적들의 이동 우선순위를 결정 해주고 radius를 줄여보았지만 자연스럽게 되는게 아닌 옆으로 조금씩 밀리면서 되거나 몇마리는 앞에 있는 몬스터들에게 끼여 있는 현상이 생기더군요 이를 어떻게 해결해야될지 답변해주시면 감사하겠습니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
오류
C:\Users\(사용자)\Desktop\ml-agents-release_17>mlagents-learn config/ppo/3DBall.yaml --env=C:\Users\(사용자)\Desktop\Project\Env\3DBall --run-id=mlagent_test1를 실행하면 Traceback (most recent call last): File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in runmodule_as_main return runcode(code, main_globals, None, File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in runcode exec(code, run_globals) File "C:\Users\chosun\PycharmProjects\pythonProject\venv\Scripts\mlagents-learn.exe\__main__.py", line 4, in <module> from mlagents.trainers.learn import main File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\learn.py", line 2, in <module> from mlagents import torch_utils File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\torch_utils\__init__.py", line 1, in <module> from mlagents.torch_utils.torch import torch as torch # noqa File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\torch_utils\torch.py", line 6, in <module> from mlagents.trainers.settings import TorchSettings File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\settings.py", line 625, in <module> class TrainerSettings(ExportableSettings): File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\mlagents\trainers\settings.py", line 648, in TrainerSettings cattr.register_structure_hook( File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\cattrs\converters.py", line 280, in register_structure_hook self._structure_func.register_cls_list([(cl, func)]) File "C:\Users\chosun\PycharmProjects\pythonProject\venv\lib\site-packages\cattrs\dispatch.py", line 57, in register_cls_list self._single_dispatch.register(cls, handler) File "C:\Users\chosun\AppData\Local\Programs\Python\Python39\lib\functools.py", line 855, in register raise TypeError(TypeError: Invalid first argument to register(). typing.Dict[mlagents.trainers.settings.RewardSignalType, mlagents.trainers.settings.RewardSignalSettings] is not a class.이렇게 오류가 뜨면서 실행이 안 돼요.. 정말 완전 초보라 해결을 못 하고 있는데 어떻게 하면 되나요..?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매니저 생성 오류
public class TestUnity : MonoBehaviour { // Start is called before the first frame update void Start() { Managers mg = new Managers(); } // Update is called once per frame void Update() { transform.Rotate(new Vector3(1.0f, 1.0f, 1.0f)); } }해당 코드에서 Managers로 생성, 저장 후에 유니티로 들어가면Assets\TestUnity.cs(10,9): error CS0246: The type or namespace name 'Managers' could not be found (are you missing a using directive or an assembly reference?)라는 코드가 뜨는데 어떻게 해결해야 할까요.........
-
미해결[실전 게임 코드 리뷰] 유니티 클리커 게임
데이터 질문이요.!
실제 출시한 게임도 데이터를 로컬에서 불러오나요??아니면 매번 게임접속시 서버에서 데이터를 불러오나요?로컬에서 저장하면 해킹위험 있지않는지, 어처피 해킹당하면 서버에서 불러와도 똑같이 위험한지..궁금합니다
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
게임 시작 시 Quest Target Marker 오브젝트 비활성화
안녕하세요. 강의 완강 후 해결되지 않은 점이 있어 올립니다..! 퀘스트를 등록하고 업데이트나 데이터를 저장하고 가져오는 등의 기능들은 정상적으로 작동하나 게임 시작 시 Quest Target Marker 게임 오브젝트가 비활성화되어 작동하지 않습니다..!! 강의를 여러 번 돌려봤지만 어디서 잘못된 건지 찾기가 힘들어서요..! 다시 살펴보아야 할 부분이 어딜까요..?ㅜㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
BitConverter.TryWriteBytes에 success 부분 질문드립니다.
안녕하세요.BitConverter.TryWriteBytes 리턴으로 성공,실패 여부를 bool 값인 true,false로 반환하는데 이부분을 &= 로 해야되는 이유가 뭔지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
몬스터 데미지 처리 방식 질문입니다.
이번 프로젝트에서는 화살에 대한 충돌 정보를 콜라이더를 통해서 하는게 아닌 매니저에서 List에 담긴 적 오브젝트에 위치 정보와 화살에 대한 위치 정보를 비교해서 해당 위치에 적 오브젝트가 존재할 경우 데미지를 처리하는 방식으로 로직을 구현하신 이유가 궁금해서 질문 남깁니다.현재 프로젝트에서 충돌 판정을 위해 List에 등록된 모든 object들의 위치 정보를 대조하는 방식으로 구현이 되어있는데, 대부분에 2D 온라인 게임들은 이런 방식으로 로직을 구성하는 건가요? 진행중인 프로젝트와 유사한 게임으로 예시를 들어주신 바람의나라, 리니지와 같은 게임 한정으로 이렇게 로직을 구성하는 건가요?개인적인 생각인데, List로 적 오브젝트를 관리하게 될 경우 적 오브젝트 수가 늘어나 생성,파괴,충돌, 이동이 수시로 일어날 경우 각 정보를 클라이언트들에게 뿌려주기 위해서 서버에 과부화가 있을 거 같은데, 이를 보완하는 방식이 있는지 혹은 List 말고 다른 방식이 존재하는지 궁금합니다 항상 좋은 강의 감사합니다.
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
CPU로 학습해도 충분할까요?
안녕하세요. 학습 관련해서 질문 있습니다!집 데스크탑은 라데온이라 그런데 CPU로 학습만 해도 충분한 정도인가요?그리고 서버로는 CUDA를 쓸수 있으면 remote하게 학습하는 방법도 활용 가능할까요?유니티나 ml-agents는 처음 써봐서 질문 드립니다...!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
에셋 분홍색으로 뜰때 해결방법
Shader를 Standard로 바꾸기 이걸로 많은 분들이 해결되기를 바랍니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Lock과 SpinLock 질문
안녕하세요 이 강의를 수강하기 앞서 학교 강의에서C++을 통해 멀티쓰레드 개념을 살짝 배운 상태입니다. C#을 대상으로 하는 강의라 조금 동떨어진 느낌이 있지만 언리얼 쪽으로도 강의하시는거 보고 혹시 알고계실까 해서 질문합니다. C#의 lock과 C++의 unique_lock<mutex>가 상당히 흡사해 보이는데 맞나요? 차이점이 있을까요? C++에선 mutex라는 것을 사용했는데 C#에서는 object로 할 수 있는 이유? 그러는 이유? 가 궁금합니다. Spin Lock이 Busy Wait 방식으로 lock이 풀리길 기다리는 방식을 뜻하는 것 같은데, C++에서는 condition_variable와 같은 것으로 CPU를 무의미하게 점유하는 것을 막았던 것으로 기억납니다. lock이나 condition_variable을 사용하지 않고 이런 방식을 사용하는 이유가 있는지 알 수 있을까요.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
ScoreText 만 fail이 뜨는 이유
코드는 다음과 같이 작성하였는데 ScoreText만 Fail이 왜 뜨는지 모르겠습니다그리고 제너릭에서 text -> TextMeshProUGUI로 바꾸니까 UI_Button이 한개 생성되다가 실행과 동시에 두 개 생성되는데 코드에서 어디엔가 오류가 있는걸까요?
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
QuestView 테스트시 착선이 그어지지 않는 현상
안녕하세요 선생님 QuestView.cs 작성을 완료하고 UI에 전부 부착하고 테스트를 하는도중,완료된 task의 description에 착선이 그어지지 않는 현상이 있어서요..isComplete가 true인 조건문이 발동되지 않아 착선이 그어지지 않는것 같은데제가 실력이 부족해 왜 발동이 안되는지 인지가 되지 않아 질문 남깁니다강의에서는 착선이 그어졌는지 확인하는 장면은 없는것같아원래 안그어지는 버그인지, 제 코드의 문제인지 확인이 어렵네요 ㅜ.ㅜ무엇이 원인인지 답변 주시면 감사하겠습니다! 완료된 퀘스트가 ??로 보이는 모습 // QuestDetailView.cs -> Show 메서드 중.. foreach (var taskGroup in quest.TaskGroups) { foreach (var task in taskGroup.Tasks) { var poolObject = taskDescriptorPool[taskIndex++]; poolObject.gameObject.SetActive(true); // 실행 안되는 부분 if (taskGroup.IsComplete) poolObject.UpdateTextUsingStrikeThrough(task); // else if (taskGroup == quest.CurrentTaskGroup) poolObject.UpdateText(task); else poolObject.UpdateText("● ??????????"); } }
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
모바일 2d 캐쥬얼 게임
Rookiss 님을 멘토 삼아 게임 개발을 위해 달리고있는 청년입니다 ! 모바일 2d 캐주얼 게임 제작을 목표로 두고있는데 ,결제와 관련된 중요한 장비나 캐릭터 정보같은건 서버에서 처리할까요? 혹시 서버를 따로 공부 해야한다면 루키스님 강의중 게임서버 , 웹서버 둘중 어떤걸 들어야할까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 부모영향 안받고 자식으로 들어가기
체력바를 플레이어의 자식으로 들어가게 하니까 플레이어의 scale에 영향을 받아서 제가 원하던 크기가 나오지가 않아요 ㅠㅠ일일이 하드 코딩으로 맞춰주기에는 나중에 이런 비슷한 일이 생기면 어떡하지 싶기도 한데...혹시 하위 자식으로 들어가더라도 들어 가기전의 스케일을 유지하는 방법 있을까요?아무래도 scale이 비율이다 보니까 자식으로 들어가기 전 크기가 1,1,1 이고 들어가고 나서도 1,1,1 이라고 해도 영향을 받더라구요!ㅠㅠ위치는 영향을 받지만 크기만 영향을 받지 않게 하고 싶은데 도무지 모르겠네요...