inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Spider와 Monster 구현 방식을 구분한 이유

미해결

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

좋은 강의 잘 듣고 있습니다. 현재까지 Spider의 로직은 Behavior Graph로 구현하고, 일반 초록색 몬스터의 로직은 직접 스크립트로 구현하셨는데, 둘 다 어떻게 만드는지 과정을 보여주시려고 다른 방법으로 만드신건가요? 나중에 리팩토링 한다면 초록색 몬스터 로직도 Behavior Graph로 구현하는 것이 더 좋은걸까요?

  • C#
  • unity
tlawlxo78 댓글 1 좋아요 1 조회수 56

Sprute Sheet에 대해서.

미해결

[Unity6] 내가 연출하는 한 편의 이야기, 비주얼노벨 제작

여러번 죄송합니다. 학습에 크게 중요하지 않기 때문에 스킵하여 보고 있습니다. 갱신해 주신 Mia의 SpriteSheet를 보아도. 잠드는 모습 등의 Sprite는 없어 보입니다. 기존의 unitypackage도 있기 때문제 다시 한번 원본으로 주신 Sprite를 보아도 해당 애니메이션용 Sprite는 없어 보입니다. 아직 강의를 다 보지 못하여서 인지 하지 못하고 있을 지도 모르지만 나중에 Mia의 Sprite등이 수정이 있었을까요?

  • C#
  • unity
  • 유니티6
류학림 댓글 1 좋아요 0 조회수 81

ResourceManager 클래스 관련 질문

미해결

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

ResourceManager 클래스 관련 질문이 있습니다. ResourceManager 클래스를 만들어서 Load, Instantiate, Destroy 함수를 내장 함수를 래핑해서 만들었는데 래핑하는 이유를 잘 모르겠습니다. 그냥 내장 함수 바로 사용해도 되지 않나.. 라는 생각이 들었고 강의에서는 디버그 목적으로 래핑하는 것으로 이유를 이해했는데 뭔가 크게 와닿지 않아서 질문 드립니다.

  • C#
  • unity
안전한 소 댓글 2 좋아요 1 조회수 102

FBX chan 모델

해결됨

따라하면서 배우는 고박사의 유니티 기초

너무 많이 물어봐서 죄송합니다.. 모델이 핑크색이에요 인스펙터에서 뭐를 만졌더니 이렇게 됐어요 Material Shader를 URP/Lit으로 바꾸니까 됐어요 감사합니다

  • unity
제리스 댓글 1 좋아요 0 조회수 101

첨부된 수업자료와 강의 내용이 다릅니다.

해결됨

[Unity6] 내가 연출하는 한 편의 이야기, 비주얼노벨 제작

수업자료가 최신 데이이터가 맞을까요? 특히 Dot폴더의 캐릭터의 경우 0~192의 Multiple sprite로 되어 있기 때문에. 하나하나 매칭 해서 찾는건 힘들 것 같습니다! 확인 부탁 드립니다.

  • C#
  • unity
  • 유니티6
류학림 댓글 2 좋아요 0 조회수 144

몬스터 HP 게이지바 이동

미해결

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

현재 몬스터 HP 게이지바가 플레이어 캐릭터처럼 즉시 머리 위에 있는게 아닌 먼가 스르륵 따라가는 느낌이 있는데 몬스터의 HP바도 플레이어의 HP바 처럼 즉시 머리위에 바짝 붙어서 따라오게 할 수있을까요?

  • C#
  • unity
카쿠키 댓글 1 좋아요 0 조회수 70

02-02 NavMesh 응용 캐릭터 멈춤 문제

미해결

따라하면서 배우는 고박사의 유니티 기초

강의 너무 이해가 잘돼요 감사합니다 캐릭터가 offMeshLink 앞에서 멈춥니다. 그 상태에서는 아무것도 안하고 그 자리에 가만히 있습니다. 앞에분이랑 비슷한 상황인데 점프도 안되고 아래로 떨어지는 거, 사다리타는거 다 안 돼요. 시작, 종료 지점 위치도 navigation 범위 안에 잘 있습니다 전에는 잘 됐는데 사다리 코드를 작성하니까 이렇게 됐어요 using System.Collections; using UnityEngine; using UnityEngine.AI; public class OffMeshLinkClimb : MonoBehaviour { [SerializeField] private int offMeshArea = 3; [SerializeField] private float climbSpeed = 1.5f; private NavMeshAgent navMeshAgent; private void Awake() { navMeshAgent = GetComponent<NavMeshAgent>(); } IEnumerator Start() { while ( true ) { // IsOnClimb() 함수의 반환 값이 true 일 때 yield return new WaitUntil(() => IsOnClimb()); // 올라가거나 내려가는 행동 yield return StartCoroutine(ClimbOrDescend()); } } public bool IsOnClimb() { // 현재 오브젝트의 위치가 OffMeshLink 에 있는지 if ( navMeshAgent.isOnOffMeshLink ) { // 현재 위치에 있는 OffMeshLink 의 데이터 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; // 현재 OffMeshLinkData 가 true 면 수동 OffMeshLink, false 면 자동 OffMeshLink // 현재 위치에 있는 OffMeshLink 가 수동으로 생성한 것이고 장소 정보가 Climb 라면 if ( linkData.offMeshLink != null && linkData.offMeshLink.area == offMeshArea ) { return true; } } return false; } private IEnumerator ClimbOrDescend() { // 내비게이션 이동 일시 중지 navMeshAgent.isStopped = true; // 현재 위치에 있는 OffMeshLink 시작/종료 위치 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; Vector3 start = linkData.startPos; Vector3 end = linkData.endPos; // 오르내리는 시간 설정 float climbTime = Mathf.Abs(end.y - start.y) / climbSpeed; float currentTime = 0.0f; float percent = 0.0f; while ( percent < 1 ) { // deltaTime 만 더하면 무조건 1초 뒤에 1퍼센트가 되기 때문에 climbTime 변수를 연산해서 시간을 조절 currentTime += Time.deltaTime; percent = currentTime / climbTime; // 시간 경과에 따라 오브젝트 위치 변경 transform.position = Vector3.Lerp(start, end, percent); yield return null; } // OffMeshLink 를 이용한 이동 완료 navMeshAgent.CompleteOffMeshLink(); // 내비게이션 이동 다시 시작 navMeshAgent.isStopped = false; } }

  • unity
제리스 댓글 1 좋아요 0 조회수 71

02-02 NavMesh 응용 캐릭터 멈춤 문제

미해결

따라하면서 배우는 고박사의 유니티 기초

강의 너무 이해가 잘돼요 감사합니다 캐릭터가 offMeshLink 앞에서 멈춥니다. 그 상태에서는 아무것도 안하고 그 자리에 가만히 있습니다. 앞에분이랑 비슷한 상황인데 점프도 안되고 아래로 떨어지는 거, 사다리타는거 다 안 돼요. 시작, 종료 지점 위치도 navigation 범위 안에 잘 있습니다 전에는 잘 됐는데 사다리 코드를 작성하니까 이렇게 됐어요 using System.Collections; using UnityEngine; using UnityEngine.AI; public class OffMeshLinkClimb : MonoBehaviour { [SerializeField] private int offMeshArea = 3; [SerializeField] private float climbSpeed = 1.5f; private NavMeshAgent navMeshAgent; private void Awake() { navMeshAgent = GetComponent<NavMeshAgent>(); } IEnumerator Start() { while ( true ) { // IsOnClimb() 함수의 반환 값이 true 일 때 yield return new WaitUntil(() => IsOnClimb()); // 올라가거나 내려가는 행동 yield return StartCoroutine(ClimbOrDescend()); } } public bool IsOnClimb() { // 현재 오브젝트의 위치가 OffMeshLink 에 있는지 if ( navMeshAgent.isOnOffMeshLink ) { // 현재 위치에 있는 OffMeshLink 의 데이터 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; // 현재 OffMeshLinkData 가 true 면 수동 OffMeshLink, false 면 자동 OffMeshLink // 현재 위치에 있는 OffMeshLink 가 수동으로 생성한 것이고 장소 정보가 Climb 라면 if ( linkData.offMeshLink != null && linkData.offMeshLink.area == offMeshArea ) { return true; } } return false; } private IEnumerator ClimbOrDescend() { // 내비게이션 이동 일시 중지 navMeshAgent.isStopped = true; // 현재 위치에 있는 OffMeshLink 시작/종료 위치 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; Vector3 start = linkData.startPos; Vector3 end = linkData.endPos; // 오르내리는 시간 설정 float climbTime = Mathf.Abs(end.y - start.y) / climbSpeed; float currentTime = 0.0f; float percent = 0.0f; while ( percent < 1 ) { // deltaTime 만 더하면 무조건 1초 뒤에 1퍼센트가 되기 때문에 climbTime 변수를 연산해서 시간을 조절 currentTime += Time.deltaTime; percent = currentTime / climbTime; // 시간 경과에 따라 오브젝트 위치 변경 transform.position = Vector3.Lerp(start, end, percent); yield return null; } // OffMeshLink 를 이용한 이동 완료 navMeshAgent.CompleteOffMeshLink(); // 내비게이션 이동 다시 시작 navMeshAgent.isStopped = false; } }

  • unity
제리스 댓글 2 좋아요 0 조회수 95

C#에서의 RAII

미해결

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

안녕하세요 항상 좋은강의 제공해주셔서 감사합니다. C++ 서버강의를 수강하고 C#을 복습해보고 있는와중에. C++에서는 LockGuard처럼 소멸자 기반으로해서 RAII를 사용하는걸로 압니다. 하지만 C#에는 GC가있어서 메모리 해제시점을 모르니, 찾아보니 IDisposable을 상속받아서 구현할 수 있더라구요. 여기서 질문이 C#에서도 이런 RAII를 직접만들어서 관리를 자주할까요?? 그냥 lock (obj) 를 많이 쓸 것 같은데 혹시라도 직접 구현한 Lock같은경우는 어떤지 궁금합니다!

  • C#
  • unity
  • 네트워크
pnj991122 댓글 3 좋아요 0 조회수 134

Scene 뷰에서 Enemy Entity가 보이지 않는 문제

미해결

절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스

안녕하세요, 강사님. 수업 잘 듣고 있습니다. 다름이 아니라, Scene 뷰에서 Enemy Entity가 보이지 않아서 질문 드립니다. 혹시 설정해야 하는 것이 있나요? 감사합니다.

  • unity
  • unity-dots
  • unity-ecs
  • multithread
  • 유니티6
지이스 댓글 2 좋아요 0 조회수 93

Lessons 3 & 4 don't have subtitles unfortunately

미해결

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

Lessons 3 & 4 don't have subtitles unfortunately

  • C#
  • unity
bos.roberto 댓글 1 좋아요 0 조회수 69

클로드코드 + 유니티 컨텐츠만들기 응용에 대하여 질문드립니다.

미해결

클로드코드 Utniy6 Behavior로 소울라이크 스타일 게임 만들기

안녕하세요. 현재 유니티로 할 수 있는 모든 것을 하고싶은 수강생1입니다. 제가 지향하고있는 게임이 있다면 붉은사막인데요. 이유가 로딩지연없는심리스에 나름지성이있는 NPC에 여러가지 방대한 컨텐츠들이 있어서 인데요. 재미난 기능요소만 있다면 일단 만들고 넣고보는게 감명을 받았습니다. 지금 현재기준으로 만들고싶은게 있다면 vr 컨텐츠 방탈출 및 전투컨셉을 만들고싶고 차후에는 스마트글래스 컨텐츠들을 만들고싶습니다. 예를들어 손제스처로 몬스터볼을 던져서 포획하는 포켓몬go라던지 마블 아이언맨 1인칭 시점 HUD 이런느낌으로 컨텐츠들을 제작을 하고싶습니다. 본론으로 넘어가서 클로드 + 유니티 + 블렌더 등등의 툴들을 이용하여 제가 구상하고있는것들을 만들수있는지 그리고 현재강의를 듣고 근접하거나 응용할수있는지 방향성을 여쭙고싶습니다!

  • unity
  • ue-blueprint
  • 애니메이션
  • multiplayer
  • game-ai
신동혁 댓글 1 좋아요 0 조회수 137

매니저 관련 질문이 있습니다.

미해결

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

void Start() { Init(); } 이것을 실행 시키려면 결국 매니저라는 스크립트가 하이라이키에 있는 오브젝트가 있어야 스타트가 동작하는데 후반에 가면 매니저 스크립트가 게임오브젝트에 없는대도 잘 실행됩니다. 플레이어컨트롤러에서 불러오게 되는건가 어떻게 게임오브젝트에 매니저가 없는데 Init():를 실행시키게 되는지 궁금합니다. 어디서 Init():를 호출했는지 보는 방법이 있을지요. 브레이크 걸고 에프11 누르면 다음으로 이동하는데 다음 말고 이전으로 가는 방법도 있는지 궁금합니다.

  • C#
  • unity
카쿠키 댓글 2 좋아요 0 조회수 120

Instantiate

미해결

절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스

런타임 Entity 생성시 커멘드 버퍼를 이용한다고 하셨습니다. 대량 발사체 구현 파트에서는 발사체를 커멘드 버퍼로 엔티티를 생성하는데, 여기 EnemySpawn에서는 state.EntityManager.Instantiate 으로 생성하네요 어떤 차이점이 있는건가요?

  • unity
  • unity-dots
  • unity-ecs
  • multithread
  • 유니티6
moonfgg 댓글 2 좋아요 0 조회수 88

유니티 허브 다운로드

해결됨

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

2026년 5월 7일 기준 '유니티 허브 다운로드' 라고 검색하니까 Unity Industry 다운로드 밖에 안뜨는데(유료인 거 같아요), 혹시 어디서 어떤 거를 다운로드 해야 하나요? ㅠ

  • C#
  • unity
  • 인공지능(ai)
이름바꺼 댓글 2 좋아요 1 조회수 152

UserDataManager 클래스 hasSaveError 처리

해결됨

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

public void SaveUserData() { bool hasSaveError = false; for (int i = 0; i < UserDataList.Count; i++) { bool isSaveSuccess = UserDataList[i].SaveData(); if(!isSaveSuccess) { hasSaveError = true; } } if(!hasSaveError) { ExistsSavedData = true; PlayerPrefs.SetInt("ExistsSavedData", 1); PlayerPrefs.Save(); } } 여기로직에서 hasSaveError가 실패로 발생하면 개발자 입장에서는 어떻게 버그를 알 수 있을까요? 그리고 개발자는 어떻게 대처를 해야 될까요??

  • C#
  • unity
  • 객체지향
  • game-programming
Jorn 댓글 2 좋아요 0 조회수 78

제공해주신 자료에 스크립트들이 빠져있습니다

해결됨

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

Scripts폴더에 InGame폴더가 빈 폴더입니다 확인부탁드립니다

  • C#
  • unity
  • 객체지향
  • game-programming
carttman 댓글 2 좋아요 0 조회수 82

플레이어를 왜 ECS로 만드는 건가요?

미해결

절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스

안녕하세요, 유니티로 데이터 대량 처리 때문에 강의를 수강하게 되었습니다. 플레이어는 대량 처리가 필요 없다고 생각하는데, ECS로 만드는 이유는 무엇인가요?

  • unity
  • unity-dots
  • unity-ecs
  • multithread
  • 유니티6
댓글 1 좋아요 0 조회수 90

인기 태그

인프런 TOP Writers

주간 인기글