묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
유니티 한 씬에 여러 스테이지 표현
안녕하세요 유니티 독학을 한 후 제대로된 개발을 처음 해보는 사람입니다ㅠㅠ 다름이 아니라, 총 20스테이지에 각 스테이지마다 15개의 부가 스테이지를 만들고 싶은데요,, 스테이지마다 씬을 다르게 하려다보니 씬 갯수가 300개가 나올 것 같아서 질문 드립니다.각 스테이지마다 배경 이미지가 변경이 되어 한 스테이지에 나오는 15개의 부가 스테이지는 뒷 배경 변경이 없이 오브젝트만 변경이 될 것 같은데요 이럴 경우에 한 씬에 15개의 부가스테이지를 다 몰아서 표현할 수 있을까요? 배경만 같고, 부가 스테이지마다 클리어 조건은 다릅니다ㅠㅠ만약 가능하다면 혹시 어떻게 표현을 할 수 있을지 방법까지 여쭤봐도 될까요?ㅠㅠ 유니티 책 두권으로 독학을 했는데, 두 권 다 기초 책이라 새로운 씬을 만드는 방법만 알려주네요
-
해결됨[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
상업적 출시를 목적으로 한 게임에 코드를 재사용해도 되는지 질문드립니다.
안녕하세요.C# 서버 강의와 실전 코드 리뷰 강의들로 공부할 때 많은 도움을 받고 있습니다.아트를 제외한 소스코드 부분을 일부 수정하여 상업적으로 출시할 게임에 재사용해도 되는지 질문드립니다.감사합니다.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
[질문] OOP 상속 VS 컴포넌트 방식에 대하여
강의에서 알려주신 것처럼 OOP적인 관점에서 상속을 통해 몬스터-플레이어에 대한 내부 속성(체력, 속도 등등)의 정의와 그에 따른 변화를 함수(데미지처리, UI처리 등등)로 구현하다보면 때때로 모호한 경우가 생겨 고민에 빠진적이 종종 있었습니다.참고하기 위해 인터넷을 통해 다른사람 코드를 보다, 내부 속성들 조차 클래스로 정의 및 컴포넌트화하여 활용하는 것을 보았습니다. 예를들면, OOP에선 플레이어 클래스안에 존재해야하는 것들이 Health, Stamina 등등 클래스로 만들어 붙이는 것을 보았습니다.이런 방식이 처음엔 좀 이질적이었는데, 몇번 보다 보니 정리하기는 좀 난잡해보이지만 의외로 논리적으로 처리하는데 편리하게 느껴졌습니다. 그러다 문득 어떤 방식이 좀더 선호되는지, 해당 방식을 쓰는게 좋을지 궁금하여 질문 올립니다또한, 최근 유니티쪽에서 언급되는 DOTS 같은 경우에 대해 어떻게 생각하시는지, 위의 컴포넌트 방식의 극대화하여 최적화를 추구하는 방식으로 이해하면 되는 것인지 궁금합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷 클래스 관련 질문입니다.
안녕하세요, Generator로 만든 클래스들(packetHander.cs나 GenPackets.cs, ~~Packetmanager.cs)을 보면 namespace가 없는데요, namespace가 없어도 다른 클래스에서 선언 및 사용이 가능한데요,혹시 namespace 없이 클래스를 선언해 사용하는 것과 namespace를 정의하고 클래스를 선언해 사용하는 것이 어떤 차이가 있는지 알 수 있을까요??그리고 namespace는 책꽂이 같은 개념이라 namespace를 using으로 선언하고 그 scope아래에 클래스를 만들면, 해당 클래스가 어디 위치에 있다는 것을 정의하는 개념으로 사용된다고 알고 있는데요, 이것도 맞을까요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요 WriteLock의 Yield부분이 헷갈려 질문 드립니다
public void WriteLock() { int desired = (Thread.CurrentThread.ManagedThreadId << 16) & WRITE_MASK; while (true) { for (int i = 0; i < MAX_SPIN_COUNT; i++) { if (Interlocked.CompareExchange(ref flag, desired, EMPTYFLAG) == EMPTY_FLAG) { return; } } Thread.Yield(); } }이코드에서 MAX_SPIN_COUNT까지 시도 해보고 Thread.Yield()로 다른 쓰레드에게 양보한다고 이해하고 있는데 여기서 다시 while(true)로 인해 또다시 반복해서 문을 두드리면 굳이 Yield()를 하는 이유가 무엇인지 모르겠습니다.
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
2.17강에서 피격부분이 작동하지 않습니다
화면상에 물리법칙으로는 작동을 하는데,디버그 로그에서도 아무것도 안뜨고 적군한테 맞춰도 총알이 안 사라지고 2초 뒤에 사라집니다. Enemy 오브젝트랑 Bullet 프리팹에 스크립트 적용했습니다. 오브젝트 설정이랑 스크립트, 물리법칙 작동화면 스샷 첨부드립니다. <Bullet 프리팹 설정> <Enemy 오브젝트 설정> <물리법칙 작동화면(충돌합니다)> 작성한 스크립트
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
공부방법관련 질문드려요
안녕하세요공부 관련 질문있어서 글 작성해요!현재 part4까지 들었는데유니티 part2 부분과 part4 부분이 부족하여 복습하면서 계속 강의를 계속 들을 예정인데알고리즘/자료구조 공부도 이제 시작하는데시간 비율을 어느정도로 하는게 좋을지 궁금해서 여쭤보려고 해요현재는 C# 공부 6 : 코딩테스트 준비 4로 하려고 하는데C# 공부 비율을 더 늘리는게 좋은지 어떤지 잘 모르겠어서 질문남겨요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Player가 Monster를 타고 올라가는 이유는?
이전 질문을 검색하다 보니 hit.point가 몬스터를 클릭할 때 Y값이 1 이상으로 되면서 Player가 쓰러진다는 내용을 보고 코드를 아래와 같이 수정했더니 Playe가 쓰러지지 않았습니다.플레이어는 Use Gravity Off/ isTrigger On으로 된 상태입니다. 그런데 강사님이 공유해주신 코드를 비교해보면 y값을 잡아주지 않은 상태에서 몬스터 클릭시 hit.point의 y값이 1 이상이 되어도 Player가 몬스터를 타고 올라가지 않고, 넘어지지도 않습니다. _destPos의 Y값이 1 이상인데, Player가 움직일때 Y값을 0을 유지하는 설정, 코드가 있는 걸까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Player의 State가 Moving 상태일 때 몬스터 옆으로 가면 Collider가 사선으로 기우는 이유는?
13강 MiniRPG를 만들면서 보면Player가 Monster의 주변을 클릭하면 공격하지 않고 이동하는 경우가 있습니다. (Raycast가 monster에 맞지 않고 근처 땅에 맞은 경우라고 생각하고 있습니다.) 그때 Player가 사선으로 기우는 경우가 생깁니다. Player의 Rigidbody.Constraints.FreezeRotation을 x, y, z를 모두 체크해도 Player가 사선으로 기울게 됩니다. Q1. 왜 Player가 사선으로 기울게 되는지 알 수 있을까요?그런데 언젠가 부터 원기둥(캡슐 콜라이더는 아닌듯한)이 생겨있어요. 이 원기둥 때문에 사선이여도 뒤로 넘어지지 않는것 같은데, 이 Q2. 원기둥이 뭘까요?Monster(Moving 상태)와 Player(Moving 상태)의 콜라이더를 비교한 샷도 같이 올립니다.Player가 공격 기능을 넣을때부터 계속 나온 이슈인데, 해결이 되지 않고 있습니다. 설명 부탁드립니다.13강 MiniRPG를 만들면서 보면Player가 Monster의 주변을 클릭하면 공격하지 않고 이동하는 경우가 있습니다. (Raycast가 monster에 맞지 않고 근처 땅에 맞은 경우라고 생각하고 있습니다.) 그때 Player가 사선으로 기우는 경우가 생깁니다. Player의 Rigidbody.Constraints.FreezeRotation을 x, y, z를 모두 체크해도 Player가 사선으로 기울게 됩니다. Q1. 왜 Player가 사선으로 기울게 되는지 알 수 있을까요?그런데 언젠가 부터 원기둥(캡슐 콜라이더는 아닌듯한)이 생겨있어요. 이 원기둥 때문에 사선이여도 뒤로 넘어지지 않는것 같은데, 이 Q2. 원기둥이 뭘까요?Monster(Moving 상태)와 Player(Moving 상태)의 콜라이더를 비교한 샷도 같이 올립니다.Player가 공격 기능을 넣을때부터 계속 나온 이슈인데, 해결이 되지 않고 있습니다. 설명 부탁드립니다. (혹시나 해서 관련샷 추가합니다.)
-
미해결유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발
캐릭터 고정데이터 로딩 강의
집에 엑셀이 안되서 강의를 따라하지 못하고 있는데건너띄고 강의들어도 상관 없을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
git으로 협업할 때 conflict 발생
java 협업시 git을 써 보다가 유니티 작업을 git으로 협업을 하려고 하니 어려운 점이 있는데 도움 부탁드립니다. git으로 clone해서 작업하고 머지할 때 동일한 씬을 수정한 경우 컨플릭이 많이 발생합니다. 씬의 경우 컨플릭이 발생해도 사람이 작성한 코드가 아니다 보니 컨플릭을 해결하기가 어렵습니다. 씬 컨플릭이 발생하지 않게 git을 사용하는 방법이 있을까요?
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
send 과정에서 멀티스레딩에 관한 질문입니다
//양질의 수업 감사합니다. 데이터를 보내는 과정은 수업에서 크게send() // 데이터를 큐에 넣고 보내는 사람이 없으면 직접 보냄register_send() // 비동기로 send 실행on_send() // 데이터 전송 후 콜백 함수총 3가지 과정입니다근데 여기서 lock 경합 상태를 방지하기 위해 누군가가 보내고 있으면 큐에 데이터를 넣기만 하고 다른 일을 하러 가고 실제로 보내는 스레드는 단 1개로 설계한 것처럼 보이는데 큐에 데이터를 넣는 과정도 lock 안에 있어서 데이터를 보내는 스레드가 일을 마칠 때까지 큐에 데이터 못 넣고 대기 상태에 빠지지 않나요? 그래서 결국엔 lock 경합을 예방하는데 도움이 되는지 궁금하네요뭔가 send_queue 이 자원은 object key를 따로 만들어서 딱 이 녀석만 상호배제해야 할 것처럼 생각이 드네요
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
모델 Rig 타입은 어떻게 확인할수있나요?
강의에서 사용하시는 모델이 ㅇ없어서 다른 모델을 다운받았는데 애니메이션이 안먹히네요. 휴머노이드로 검색해서 다른걸로 한번 더 받아서 해도 먹통이고 유니티쟝을 갖다넣으면 되긴하는데..1. rig이 다른 경우 말고 또 어떤 경우에 호환이 되지 않는건가요?? 제가 받은 모델의 rig타입을 체크할 수 있는 방법이 있을까요? 구글님은 fbx??파일 확인하라는데 그런 파일은 없어요..ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
go = new GameObject(name = "@Managers"); 버그
using System.Collections;using System.Collections.Generic;using JetBrains.Annotations;using UnityEngine;public class Managers : MonoBehaviour{private static Managers s_instance;public static Managers instance {get {init(); return s_instance; }}// Start is called before the first frame updatevoid Start(){init();}// Update is called once per framevoid Update(){}static void init(){if (s_instance == null){GameObject go = GameObject.Find("@Managers");if (go == null){go = new GameObject(name = "@Managers");go.AddComponent<Managers>();}DontDestroyOnLoad(go);s_instance = go.GetComponent<Managers>();}}} Managers.cs(29, 37): [CS0120] static이 아닌 필드, 메서드 또는 속성 'Object.name'에 개체 참조가 필요합니다.이런 오류가 뜨는데 어떻게 수정해야 될까요? 제가 놓친 부분이 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
EventSystem 에러
안녕하세요 루카스님 강의를 듣고 있다가 위 사진과 같은 에러가 나옵니다. 커뮤니티 게시판에 저와 똑같은 에러를 가지는 분의 글을 보고말씀해주신 대로 해당 경로에 EventSystem이 있는지 확인해 보았는데 위 사진과 같이 있습니다. 아무리 해도 해결이 안되어 질문 남깁니다. 감사합니다.
-
미해결C# WPF .NET Core(7.0)
7강에서 마지막 이미지 추가하는 부분...
안녕하세요. 강의 잘 보고 있습니다. 다름이 아니라 7강 마지막에서 이미지 추가하는 부분에 해당 이미지 속성창에서"빌드 작업" -> "없음"을 "리소스" 로 변경하면실행 시 적용되는 부분에 대해 설명 추가하면 좋았을 것 같습니다.(해당 속성을 "리소스"로 변경하지 않으면 실행 시 이미지가 나타나지 않습니다.) 약간 아쉬움이 남는 부분인 것 같아서 의견을 드려 보았습니다. 좋은 강의 감사합니다. ^^
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Json으로 데이터를 관리하는 방법에 대해 질문이 있습니다.
안녕하세요, 루키스님.강의에서 다뤄주신 부분은 아니지만,학교에서 다른 학생분들과 프로젝트를 하는 중에 Json으로 데이터를 관리하려는데 궁금한 부분이 생겨서 혹시나 싶어 여쭤봅니다...구글 스프레드시트에 데이터를 관리하면서 Json으로 불러와서 사용하고 있는데요.현업에서도 Json으로 데이터 관리를 많이 하시나요?기본타입이 아닌 Enum이나 Class타입인 데이터같은 경우, 시트에 문자열로 작성하고 Unity에서 사용할 때에는 리플렉션을 사용하여 동적으로 변환시키나요?다른 분들 작업하신 시트를 봤을 때에는 모든 시트에 첫 열을 index값으로 설정하셨던데, 어차피 Dictionary로 읽어온다면 유닛의 이름이나, 몬스터의 이름같은 값으로 첫 열을 설정하면 사용하기 더 편하지 않나요? 데이터의 첫 열을 index로 설정하는 이유가 궁금합니다.강의에서 다루시지 않은 부분에 대해 질문드려서 죄송합니다..구글에 검색해보면 "이렇게 이렇게 한다"라는 내용 뿐이지 왜 이렇게 하는지 납득할만한 내용을 찾을 수가 없더군요.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
비동기 함수와 lock 의 관계에 대한 질문입니다
lock(key){ bool pending = recvAsync() if(pending == false) //콜백 함수}이런 상황에서 비동기 함수가 pending == true면 흐름이 끊긴다고 할까요? 대기 중인 상태 랄까요 어쨋든 이런 상황에서는 다른 스레드가 lock 안으로 들어올 수 있나요?? 질문을 다시 정리하면 스레드 1이 위의 코드에서 pending 이 true 인 상태면 lock 을 빠져나가서 스레드2가 lock 안으로 들어 올 수 있나요 아니면 스레드가 1 이 lock 안에 계속 있는 판정이라서 스레드2 가 lock 안으로 들어올 수 없나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
RegisterSend 의 NullReferenceException 오류
유니티에서 NetworkManager static Instance를 통해 Send를 하면 다음과 같은 오류가 발생합니다. 어떤 이유인지 알 수 있을까요? ㅠㅠServerSession에서 로그를 찍으면 문제가없습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
게임 장르에 따른 서버 선택 여쭤보고 싶은 게 있습니다.
안녕하세요.게임서버 웹서버 강의 두 개를 듣고 있는 수강생입니다.강의를 마치고 작은 방치형 게임을 하나 만들어 보고자 합니다. 게임 설계에 따라 전부 다르겠지만,보통 방치형 게임은 웹서버, 게임 서버 중에 어떤 서버방식으로 사용되는지 알 수 있을까요? 제가 만들 게임은 온라인 서버에서 싱글플레이어로 진행되는 게임이기에 실시간 연결서버가 필수는 아닐 것으로 보입니다. 다만, 미래지향적으로 컨텐츠에 따라 게임서버가 좋지 않을까 싶은데 보통 방치형 게임에서는 웹서버를 사용하는지, 게임서버를 사용하는지, 어떤 형태로 설계되는지 궁금합니다.실제 개발 환경 경험이 없다보니... 정보를 얻기 쉽지 않네요.