inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

10. Object Pooling 단계에서 스폰 포지션 이슈가 생겼습니다.

해결됨

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

10강까지 강의를 따라오면서 강의를 누락한 부분이 있기 때문에 생기는 이슈인지 궁금합니다. 누락으로 생긴 이슈라면 드릴 말씀은 없지만, 다른 분들도 따라하시다가 당황하실 수 있는 이슈로 여겨져서 글을 남겨 봅니다. 몬스터를 풀링하면서 몬스터가 생성될 때 프리팹에 적혀있는 좌표로 우선 생성되니까 해당 좌표에서 충돌 처리가 생기는 것 같습니다. 몬스터 생성 몬스터가 프리팹에 적혀 있는 0,0,0 위치에 생성 0,0,0 위치에서 콜라이더 충돌이 발생함 value.transform.position = spawnPos; 작동 작동하면서 좌표 값 변경 이후 강의에서 해결됐을 가능성이 농후하지만, 10강까지 따라왔을 때 누구에게나 생길 수 있는 이슈라고 느껴져서 글을 남깁니다. 몬스터 프리팹의 포지션 값을 변경하면서 일단 해결하였는데 제가 놓친 부분이 있었다면 참고하겠습니다.

  • C#
  • unity
  • 유니티6
Choi1997 댓글 2 좋아요 1 조회수 114

Pool_Mng, Base_Mng 참조

미해결

[Unity] 함께 만들어가는 방치형 게임 개발

안녕하세요 강사님! 수업 유익하게 잘 수강 중 입니다! 다름이 아니라, BaseMng, PoolMng 구현 중 궁금한 점이 생겨 질문드립니다. BaseMng의 경우 PoolMng를 관리하고 있고, PoolMng에서는 BaseMng.instance.InstantiatePath() 등으로 BaseMng를 참조하고 있는데, 추후에 순환참조되는 문제가 발생하지는 않는지 궁금하여 질문드립니다. 좋은 강의 제공해주셔서 감사드립니다!

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
홈런 댓글 3 좋아요 0 조회수 137

딜레이를 주고 싶을 때 코루틴을 사용하는 이유

미해결

절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스

강의에서 코루틴의 개념은 계산이 오래 걸리는 작업을 다른 루프에서 도와주는 거라고 했는데 그저 머즐 플래쉬를 발생시킬 때 딜레이를 주려는 것뿐인데 코루틴을 사용하는 이유가 뭔가요? 계산이 복잡해 보이지 않는데요. yield return new WaitForSeconds(0.2f); "yield return [조건]" 조건을 만족할 때까지 메인 루프에 양보한댔는데 위 코드가 어떻게 나온 건지 이해가 안 됩니다. 코루틴을 정확히 언제 쓰는 것인지 개념을 확실하게 알고 싶습니다.

  • C#
  • unity
SouthCreate 댓글 2 좋아요 0 조회수 145

Lobby 프리팹 구성 질문

해결됨

유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

안녕하세요! 제공해주신 강의 도움이 많이 되고 있습니다. Lobby 씬 구조 및 디자인 패턴 (LobbyManager, LobbyUIController) 강의 질문있습니다. Q. "LobbyManager, LobbyUIController를 구분하여 관리하자" 이해했습니다. 궁금한 부분은 해당 cs 파일들을 프리팹화 할때, 2개의 프리팹으로 나누었는데 1개의 프리팹에 몰아서 붙이고 Lobby라는 프리팹으로 관리해도 되지않을까? 라는 생각이 났는데 2개로 나누었을때 혹시 관리적인 부분에서 이점이 있을까요? Lobby 씬 구조 및 디자인 패턴 (LobbyManager, LobbyUIController)

  • C#
  • unity
  • 객체지향
전우형 댓글 3 좋아요 0 조회수 157

스팀 어드레서블

해결됨

유니티 시스템 프로그래밍 Pt.2 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지

안녕하세요! 강의를 듣다가 궁금한 점이 생겨서 질문을 드립니다. 제가 지금 시작하는 프로젝트는 PC용 빌드로 스팀에 출시할 계획인데, PC는 어드레서블을 쓰는게 유의미한지 궁금합니다! 프로젝트는 싱글게임입니다.

  • C#
  • unity
  • 객체지향
집사 댓글 1 좋아요 0 조회수 138

완제품 코드로 분석할려고 하는데. 작성 순서(흐름)이 이해가 안됩니다ㅠㅠ

미해결

[유니티 실전 프로젝트] Burger Please 모작

처음에 없던 오브젝트풀링이들어가고나서 완성된 코드라 이해가 잘안되네요. 순서가 햇갈려요 어느 스크립트부터 따라 적어야하는지 말씀해줄수있을까요? 흐름이 이해가 안갑니다. 코드를 해석할 수 있도록 작성 순서를 알려주시면 감사 드리겠습니다.

  • C#
  • unity
  • 유니티6
Wind mill 댓글 1 좋아요 1 조회수 146

질문 드립니다. string.IsNullOrEmpty(name)

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

else { foreach (T compo in go.GetComponentsInChildren<T>()) { if (string.IsNullOrEmpty(name) || compo.name == name) { return compo; } } } public static T FineChild<T>(GameObject go, string name = null, bool recursive = false) where T : UnityEngine.Object { if (go == null) { return null; } if (recursive == false) { for (int i = 0; i < go.transform.childCount; i++) { Transform trf = go.transform.GetChild(i); if (string.IsNullOrEmpty(name) || trf.name == name) { T compo = trf.GetComponent<T>(); if (compo != null) { return compo; } } } } else { foreach (T compo in go.GetComponentsInChildren<T>()) { if (string.IsNullOrEmpty(name) || compo.name == name) { return compo; } } } return null; } string name =null 로 한 이유 -> enum에서 null 자체가 생성이 안되는데 저렇게 한 이유 [연계질문] if (string.IsNullOrEmpry(name) 으로 component를 리턴하는 이유 -> 이름이 없는데 왜 해당 컴포넌트를 리턴하는지.. 답변부탁드립니다.

  • C#
  • unity
ttest 댓글 2 좋아요 0 조회수 114

안녕하세요 취업 학원 관련해서 문의드립니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

저는 30대 넘어서 코딩 입문하게된 비전공자입니다. 기존에 웹개발하다가 게임개발 흥미가 느껴서 여기로 취업하고자하는데요 학원에서는 유니티 클라이언트 쪽으로 준비하는게 낫다고 해서 일단 유니티쪽 공부하고있습니다. 아무래도 비전공자이다보니 CS지식도 부족하다고 느끼고 C/C++ 필요성도 느끼고 있는데요 취업시에 유니티클라이언트를 깊게 파서 구현하는것을 목표로할지 CS공부겸 서버쪽도 조금 추가해서 공부하는것을 목표로 할지 고민이됩니다. 어느쪽이 더 나을까요? ㅠㅠ (일단 취업목표기간은 8개월~1년 잡고있습니다.)

  • C#
  • unity
  • 네트워크
팡곰이 댓글 2 좋아요 0 조회수 189

Pooling 에서 문제

미해결

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

저는 현재 10.Object Pooling을 듣고 있는 학생입니다(초보) 저는 현재 이와 같이 풀링이 제대로 작동하지 않고 있습니다. 분명 강의에서는 풀링이 제대로 작동하여 들어갔다가 나오는게 되지만 저는 코드에서 오류가 났는지 제대로 작동하질 않고 있어요ㅠㅠ. 제 코드 보시고 어떤 문제점이 있는지 알려주셨으면 합니다. (Projectile만 문제 있어요) using System.Collections; using UnityEngine; public class Player_Attacker : MonoBehaviour { public GameObject bulletPrefab; private void Start() { StartCoroutine(FireCoroutine()); } IEnumerator FireCoroutine() { yield return new WaitForSeconds(1.0f); FireProjectile(); StartCoroutine(FireCoroutine()); } void FireProjectile() { Vector3 fireDir; if ( Player.instance.target != null) { fireDir = Player.instance.Direction(); } else { fireDir = transform.forward; } var bullet = MANAGER.POOL.Pooling_OBJ("Projectile").Get((value) => { Vector3 pos = transform.position + new Vector3(0, 1.0f, 0) + fireDir * 1.0f; value.transform.position = pos; value.GetComponent<Bullet>().Initalize(fireDir); }); } } 이 코드가 문제가 맞는지 확인해주셨으면 감사하겠습니다.

  • C#
  • unity
  • 유니티6
rnjsxogus0705 댓글 2 좋아요 0 조회수 126

순환참조 문제로 인해 발생하는 문제는 없을까요?

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

안녕하세요. 강의 잘 듣고 있습니다. 강의를 듣다보니 Map <-> Hero(or Object) <-> Session 이 서로 참조를 하고 있는데요. 이론 공부할 때는 순환참조의 객체 생성, 무한 호출 등의 문제로 인해 객체 간 순환참조를 금지한다고 학습했는데, 게임처럼 상호작용이 필요한 도메인은 순환참조 문제를 엔지니어 역량으로 막는걸까요? 자바-스프링 같은 프레임워크를 쓸 때는 객체 간 순환참조를 프레임워크단에서 체크해서 애플리케이션 실행 시점에 막더라구요.

  • C#
  • unity
홍지범 댓글 2 좋아요 0 조회수 194

page와 windows 사용구분

미해결

WPF (.NET Core, C#, 자막제공)

언제 page를 쓰고 언제 window를 쓰나요?

  • C#
  • .net
  • mssql
  • mvvm
  • wpf
지현명 댓글 2 좋아요 0 조회수 131

Nagle Algorithm

해결됨

[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)

Is there a reason why its not switch off in socket? Isnt it a problem with mmo servers and we hold packets on our own?

  • C#
  • unity
  • mysql
  • MMORPG
  • ef-core
  • asp.net-web-api
Frontal Achivment 댓글 1 좋아요 0 조회수 122

스킬쿨타임UI관련

해결됨

[Unity6] 함께 만들어가는 서바이벌 게임 개발 - 스팀 출시 도전기

SetSkillFrame함수에서 먼저 frame들을 다 삭제시키고 다시 생성하고있는데요 frame내에서 saveCooltime도 다 삭제가되니 레벨업을하고 다시 UI가 초기화될때 쿨타임도 아예 초기화가 되버리는 것같은데 제가 놓친부분이 있나요? 그리고 SetSkillFrame함수는 MANAGER.SESSION.onSelectedCard 델리게이트에 바인딩 시켜놓으면 되는건가요?

  • C#
  • unity
  • 유니티6
시엘 댓글 2 좋아요 0 조회수 109

상속 구조에서의 awake흐름 및 init 함수 질문있습니다

미해결

[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작

강의 중에 사용하신 init 관련 코드에서 하나 궁금한 점이 있습니다. BaseController 의 Awake() 안에서 _init = true 를 먼저 설정한 다음 init() 을 호출하게 되면, init() 안에서는 이미 _init == true 상태라서 실제 초기화 로직이 수행되지 않고 false 만 반환하게 되는 것 같습니다. 그런데 MonsterController 에서는 base.init() 이 true일 때 return 하도록 돼 있어서, 결과적으로 자식 클래스의 초기화 로직이 실행되지 않을 수도 있어 보인다 는 생각이 들었습니다. 혹시 의도된 흐름이 맞는지, 아니면 _init = true 설정 위치나 분기 조건 쪽에 조정이 필요한 부분이 있는지 궁금합니다.

  • C#
  • unity
  • object-pooling
코딩 댓글 1 좋아요 0 조회수 104

CSV대신 DB

해결됨

[Unity] 함께 만들어가는 방치형 게임 개발

안녕하세요 강의 공부하다가 궁금증이 생겨서 질문합니다. 강의에서는 .csv를 사용해서 레벨 데이터를 저장하고 가져오는 방법을 사용하셨는데 서드파티 데이터베이스로 구현을 해놓고 넣었다 빼는 방식을 사용해도 괜찮을까요? 그러면 앱 업데이트를 할 필요없이 DB상의 값을 바꾸는 것만으로도 난이도를 조정할 수 있을 것 같아서요. 현직에서는 어떻게 구현하는지 궁금해서 질문합니다.

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
dalim508 댓글 2 좋아요 0 조회수 114

사운드를 어떻게 플레이 시켜야 하나요

미해결

[유니티 실전 프로젝트] Burger Please 모작

각 상황에 맞는 사운드를 플레이하도록 구현하고 있는데요. Interaction 함수 안에서 사운드 출력 코드를 추가했는데 소리가 제대로 나오지 않고 계속 반복되서 출력되는 것처럼 치지지직 하다가 끝나버립니다. void OnMoneyInteraction(WorkerController wc) { if (!wc.Tray.IsPlayer || _moneyPile.ObjectCount == 0) return; _moneyPile.DeSpawnObjectWithJump(wc.transform.position, () => { GameManager.Instance.AddMoney(Define.MONEY_PER_BURGER); GameManager.Instance.AddExp(1f); SoundManager.Instance.PlaySFX("SFX_Money_Get"); }); } 그래서 제대로 한번만 사운드가 출력되도록 하기 위해 bool형 예외처리를 해서 코드를 수정했더니 0.1초만에 소리가 났다가 사라집니다. audioSource 제대로 부착했고 loop 체크x, PlayOnAwake 체크 등 기본적인 것들은 다 제대로 세팅했습니다. 어떻게 해야 제대로 된 소리를 출력할 수 있나요? public class SoundManager : Singleton<SoundManager> { [Header("BGM")] public AudioSource bgmSource; [Header("SFX")] public AudioSource sfxSource; [Header("SFX Clips")] public List<AudioClip> sfxClips; [Header("BGM Clips")] public List<AudioClip> bgmClips; public void PlaySFX(string clipName) { AudioClip clip = sfxClips.Find(c => c.name == clipName); if (clip != null) { sfxSource.volume = 1f; sfxSource.PlayOneShot(clip); } else { Debug.LogError($"SFX clip not found: {clipName}"); } }

  • C#
  • unity
  • 유니티6
쿠쿠쿠쿠쿠쿠 댓글 1 좋아요 0 조회수 100

DB 관련 궁금한 점이 있습니다.

해결됨

[Unity] 함께 만들어가는 방치형 게임 개발

게임들 중에 건물을 짓고 일정 시간이 지나면 건물이 완공이 되는 게임들이 있잖아요. 그 시간은 게임을 실행하지 않더라도 시간이 흐르고 게임에 접속하면 건물이 완공되는 식으로 진행이 되는데, 그럼 그런 건물들의 내용들도 다 DB에 저장을 하고 게임을 켤 때와의 시간 계산을 하나요 ?

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
호빈 김 댓글 2 좋아요 0 조회수 105

파워업을 먹었는데 파괴됩니다.

해결됨

2. 유니티가 어려운 입문자를 위한 입문용 게임 제작

안녕하세요, 최근 강의 듣고 따라가고 있는 unity 입문자입니다. 매번 테스트 하실 때 따라 테스트 하면서 진행했는데, 이번 강의 편 마지막 테스트 할 때 보니 파워업 아이템을 먹었는데 player가 파괴되면서 enemy bullet 1이 player 파괴된 자리 근처에 생성되는 현상이 있습니다. 디버깅을 어떻게든 해보고 해결하고 싶은데, 사실 방법을 잘 모르겠습니다 ㅠㅠ 어떻게 확인해볼 수 있을까요? ItemController, PlayerController, PowerUpController 내용은 확인했습니다만 별다른 점을 못 느꼈습니다.. EnemyBulletController에서도 어느 부분을 건드려야 할 지 고민입니다.. 혹시 참고할 만한 팁이 있을까요?

  • C#
  • unity
LHwn_13 댓글 6 좋아요 0 조회수 178

visual studio Code에서 코딩할때 자동완성기능이 수업과 다릅니다.

해결됨

AI 시대의 혁신적인 게임 개발 입문 with Unity6

위 이미지처럼 Input.을 누르면 수업내용처럼 GetMouseButton등이 나오지 않습니다. visual studio Code에서 C#과 관련된것을 받아야하는건가요?

  • C#
  • unity
  • 인공지능(ai)
이원석 댓글 3 좋아요 1 조회수 982

피격 사운드 관련 질문

미해결

절대강좌! 유니티6 - 네트워크 게임 개발 마스터클래스 (Part 1)

안녕하세요. 상대 플레이어 탱크에서 포탄 발사 시 소리가 들리지 않는데, 이 부분이 들리게 하려면 FunRPC 어트리뷰트가 붙은 Fire 쪽에 배치해야 할까요?

  • C#
  • unity
  • photon
Rio Song 댓글 2 좋아요 0 조회수 64

인기 태그

인프런 TOP Writers

주간 인기글