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

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

미해결

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

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

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

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

스킬쿨타임UI관련

해결됨

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

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

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

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

미해결

[유니티 실전 프로젝트] 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 조회수 102

카드 레벨업 별ui 부분이 생략된 것 같습니다

해결됨

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

추가된 스킬 쿨타임 영상도 보고왔는데, 카드 레벨업을 별이미지로 표현한 UI 부분이 빠진 것 같습니다. 스킬 매니저 부분 듣고있어서 뒷부분에 나오는지 모르겠네요. 일단 진행에 크게 중요한 부분은 아니니까 이어서 듣고있겠습니다.

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

12강 npc 네비게이션 위치 질문입니다.

미해결

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

네비게이션에서 나중에 배치되어 제작시, 알수없는 위치에 추가되는 오브젝트에 따라 npc 네비게이션이 작동되는걸 만들려면, 콜라이더(충돌)로 하면 될까요?

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

스킬구슬(Skill Frame) 구현하는 강의는 몇번째 강의인가요?

해결됨

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

지금 27.쿨타임 연출 강의를 듣고 있습니다. 스킬구슬(Skill Frame) 구현하는 강의는 몇번째 강의인가요? 순차적으로 듣고 있는데, 갑자기 스킬구슬 구현 없이 건너 뛰어서 어떻게 구현된 건지 혼란스럽네요.

  • C#
  • unity
  • 유니티6
천류 댓글 2 좋아요 0 조회수 115

궁금하게 있습니다.

미해결

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

해당 강의의 리소스를 사용하여 게임을 직접 제작하고 출시 해도 될까요? ※ ex) 애니메이션

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

손님AI에서 0:13 초 나오는 Q로 해도 되긴하는데

미해결

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

손님AI에서 0:13 초 나오는 Q로 해도 되긴하는데 라고하시는데 여기서 말한 Q가 뭘까요?

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

NullReferenceException 에러

미해결

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

안녕하세요. 튜토리얼과 세이브 파일 강의 수강하고 코드를 그대로 작성했는데 해당 널 에러가 발생합니다. NullReferenceException: Object reference not set to an instance of an object GameManager+<CoInitialize>d__12.MoveNext () (at Assets/@Scripts/Manager/GameManager.cs:46) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <28bc61a429714536ab08181feb5cfb97>:0) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&) public IEnumerator CoInitialize() { yield return new WaitForEndOfFrame(); Player = FindAnyObjectByType<PlayerController>(); Restaurant = FindAnyObjectByType<Restaurant>(); int index = Restaurant.StageNum; Restaurant.SetInfo(SaveData.Restaurants[index]); //26번째 줄 StartCoroutine(CoSaveData()); } 널 체크를 해봤는데도 Player와 Restaurant 모두 널이 아닙니다. 그래서 Restaurant의 SetInfo() 함수 부분을 봤더니 Restaurant의Restaurant Systems와 Props들이 전부 비어있습니다. 근데 코드 상으로 널 체크해서 디버그를 출력하도록 해도 디버그가 찍히지 않습니다. 필요한 Props들 전부 UnlockableBase를 상속하였고 RestaurantSystemes도 SystemBase 상속하고 자식 오브젝트에 위치하고 있고 코드도 전부 동일합니다. SetInfo 함수의 호출 순서의 문제 일까요? 어디의 문제인지 어딜 수정해야하는지 모르겠습니다 ㅠㅠ

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

10강 애니메이션 강의에서 enum EState부분 질문있습니다.

미해결

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

Define에서 enum EState를 정의하셨는데 State앞에 E를 붙인 특별한 이유가 있나요? 그리고 PlayerController에서 EState 변수 선언을 했는데 Define.Estate라고 안하고 바로 EState 라고 하셨는데 이게 어떻게 가능한건가요?

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

튜토리얼

미해결

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

강의 잘보고있습니다. 혹시 전투게임이라고 가정하면 Stage마다 특정 지역을 몬스터를 처치하면서 진행되는 게임시스템이면 튜토리얼 처럼 코루틴으로 하는 방법보다는 FSM을 사용하여 처리하는게 더 깔끔하고 좋을까요??

  • C#
  • unity
  • 유니티6
Anack 댓글 3 좋아요 0 조회수 170

수업코드 git이 있을까요?

해결됨

[Unity] 직접 구현하는 게임 알고리즘 & 게임 시스템 구현

안녕하세요 수업코드를 다운로드 받을수 있는 git이 있을까요?

  • C#
  • unity
  • 객체지향
  • 유니티6
손봉호 댓글 2 좋아요 0 조회수 153

Scripts 폴더 만들 때 왜 골뱅이(@) 붙이나요?

미해결

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

@Resources @Scenes @Scripts 등 폴더 이름 지을 때 왜 앞에 @를 붙이나요?

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

Havecard

미해결

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

안녕하세요 선생님 혹시 HaveCard 만드는 영상은 어디에 있나요 ?? ㅠㅠ

  • C#
  • unity
  • 유니티6
anhyeokjun 댓글 3 좋아요 0 조회수 142

자료 다운로드에 대해 궁금합니다.

미해결

유니티6 타임라인 2D도트 감성 연출 하기

좋은 강의감사드립니다. chat 이미지파일과 retro_Multiple_v1.wav 파일은 어디서 받을 수 있을까요

  • 유니티6
LEE JACK 댓글 1 좋아요 0 조회수 99

skillMng질문

해결됨

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

안녕하세요 선생님 수강중에 헷갈린게 있습니다 public void RegisterSkill(CardDB db, int level) { SkillBase existing = activeSkills.Find(x => x.skillid == db.id ); if (existing != null) { existing.LevelUp(level); return; } SkillBase existing = activeSkills.Find(x => x.skillid == db.id ); 이 부분이 이해가 잘 안됩니다 그리고 혹시 지금 스킬 파트 하고 있는데 스킬카드 선택 할때마다 별표시 추가랑 ,타임 옆에 스킬구슬ui 에 스킬 들어가는거 강의가 없는데 혹시 없는건가요 ? 스킬이 나오질 않아요 ㅠㅠ

  • C#
  • unity
  • 유니티6
anhyeokjun 댓글 4 좋아요 0 조회수 221

카드 DataBase - CardSelector.cs 와 SessionManager.cs 에 SelectedCard 함수에 대하여

해결됨

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

우선 풍성한 내용의 강의에 항상 감사드립니다. 1.SelectedCard 함수가 CardSelector 에서는 유아이에서 선택 관련한 함수이고 Session Manager 에서는 데이터를 다루는 듯 한데요. 이름을 좀 다르게 쓰는게 낫지 않을까요. 아니면 크게 상관이 없는 건가요. 2.그리고 강의 전반에 걸쳐 Initalize 라고 쓰시는 거 같은데 Initialize 를 줄여서 임의로 쓰시는지도 궁금합니다. CardDB.cs 에서 CardDB 변수명을 db 로 간단히 사용하시는 부분은 차후에 다른 몬스터 db 나 혹은 게임이 확장되었을 시에 좀 혼란스럽지 않을까 하는데 강사님의 의견이 궁금합니다

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

Pooling 오류

해결됨

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

안녕하세요 설명을 잘 해주셔서 몬스터 풀링 적용 했습니다 폰트 쪽에서 오류나는거 같은데 잘 모르겠습니다 ㅠㅠ 돌려 보면서 코드 비교 했는데 해결 하지못해서 질문합니다 Parent of RectTransform is being set with parent property. Consider using the SetParent method instead, with the worldPositionStays argument set to false. This will retain local orientation and scale rather than world orientation and scale, which can prevent common UI scaling issues. UnityEngine.Transform:set_parent (UnityEngine.Transform) Object_Pool:Retrun (UnityEngine.GameObject,System.Action`1<UnityEngine.GameObject>) (at Assets/00_Scripts/Pool_Mng.cs:35) Pool_Mng:Add_Queue (string) (at Assets/00_Scripts/Pool_Mng.cs:90) Pool_Mng:Pooling_OBJ (string) (at Assets/00_Scripts/Pool_Mng.cs:67) Bullet:OnTriggerEnter (UnityEngine.Collider) (at Assets/00_Scripts/Bullet.cs:42)

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

인기 태그

인프런 TOP Writers

주간 인기글