묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
카메라가 많아지면 렌더링 비용이 커지나요?
현재 강의에서 UI 카메라를 추가하시고 메인 게임과 별도로 작업을 진행하시는데, 이러면 카메라마다 렌더링 비용이 따로 발생하여 최적화에 불리한지 궁금합니다.또한 원신같은 게임에서 궁극기를 쓰는 경우와 같이, 스킬 컷씬을 보여주는 상황에서도 지금처럼 Skill CutScene Camera를 따로 생성해서 구현하는 것이 더 좋은 방법인지 궁금합니다
-
미해결AI 시대의 혁신적인 게임 개발 입문 with Unity6
3:56에 폰트 불러온 과정이 궁금합니다 ㅠㅠ
중간에 과정이 편집되었는데,엄청 간단한 거지만 제가 못찾고 있는 걸까요? 드래그해도 안되고, file에 import 하는 것도 없고, 폰트 불러오기 검색해도 안떠서 질문드립니다. 어떤 과정을 해야 강의처럼 되는건지 궁금합니다! ㅠㅠ
-
미해결절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
Spider와 Monster 구현 방식을 구분한 이유
좋은 강의 잘 듣고 있습니다.현재까지 Spider의 로직은 Behavior Graph로 구현하고,일반 초록색 몬스터의 로직은 직접 스크립트로 구현하셨는데, 둘 다 어떻게 만드는지 과정을 보여주시려고 다른 방법으로 만드신건가요? 나중에 리팩토링 한다면 초록색 몬스터 로직도 Behavior Graph로 구현하는 것이 더 좋은걸까요?
-
미해결[Unity6] 내가 연출하는 한 편의 이야기, 비주얼노벨 제작
Sprute Sheet에 대해서.
여러번 죄송합니다.학습에 크게 중요하지 않기 때문에 스킵하여 보고 있습니다.갱신해 주신 Mia의 SpriteSheet를 보아도. 잠드는 모습 등의 Sprite는 없어 보입니다.기존의 unitypackage도 있기 때문제 다시 한번 원본으로 주신 Sprite를 보아도 해당 애니메이션용 Sprite는 없어 보입니다.아직 강의를 다 보지 못하여서 인지 하지 못하고 있을 지도 모르지만 나중에 Mia의 Sprite등이 수정이 있었을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
ResourceManager 클래스 관련 질문
ResourceManager 클래스 관련 질문이 있습니다.ResourceManager 클래스를 만들어서 Load, Instantiate, Destroy 함수를 내장 함수를 래핑해서 만들었는데 래핑하는 이유를 잘 모르겠습니다. 그냥 내장 함수 바로 사용해도 되지 않나.. 라는 생각이 들었고 강의에서는 디버그 목적으로 래핑하는 것으로 이유를 이해했는데 뭔가 크게 와닿지 않아서 질문 드립니다.
-
해결됨따라하면서 배우는 고박사의 유니티 기초
FBX chan 모델
너무 많이 물어봐서 죄송합니다.. 모델이 핑크색이에요 인스펙터에서 뭐를 만졌더니 이렇게 됐어요 Material Shader를 URP/Lit으로 바꾸니까 됐어요 감사합니다
-
해결됨[Unity6] 내가 연출하는 한 편의 이야기, 비주얼노벨 제작
첨부된 수업자료와 강의 내용이 다릅니다.
수업자료가 최신 데이이터가 맞을까요?특히 Dot폴더의 캐릭터의 경우 0~192의 Multiple sprite로 되어 있기 때문에. 하나하나 매칭 해서 찾는건 힘들 것 같습니다!확인 부탁 드립니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
몬스터 HP 게이지바 이동
현재 몬스터 HP 게이지바가 플레이어 캐릭터처럼 즉시 머리 위에 있는게 아닌먼가 스르륵 따라가는 느낌이 있는데몬스터의 HP바도플레이어의 HP바 처럼 즉시 머리위에 바짝 붙어서 따라오게 할 수있을까요?
-
미해결[유니티6] 따라하면서 배우는 Top-Down Shooting 게임
TextMeshPro용 커스텀 한글 2350자.txt 파일은 어디에 있나요?
TextMeshPro용 커스텀 한글 2350자.txt 파일은 어디에 있나요?
-
미해결따라하면서 배우는 고박사의 유니티 기초
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; } }
-
미해결따라하면서 배우는 고박사의 유니티 기초
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; } }
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
C#에서의 RAII
안녕하세요 항상 좋은강의 제공해주셔서 감사합니다. C++ 서버강의를 수강하고 C#을 복습해보고 있는와중에. C++에서는 LockGuard처럼 소멸자 기반으로해서 RAII를 사용하는걸로 압니다. 하지만 C#에는 GC가있어서 메모리 해제시점을 모르니, 찾아보니 IDisposable을 상속받아서 구현할 수 있더라구요. 여기서 질문이 C#에서도 이런 RAII를 직접만들어서 관리를 자주할까요?? 그냥 lock (obj) 를 많이 쓸 것 같은데 혹시라도 직접 구현한 Lock같은경우는 어떤지 궁금합니다!
-
미해결절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스
Scene 뷰에서 Enemy Entity가 보이지 않는 문제
안녕하세요, 강사님.수업 잘 듣고 있습니다.다름이 아니라, Scene 뷰에서 Enemy Entity가 보이지 않아서 질문 드립니다. 혹시 설정해야 하는 것이 있나요?감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
Lessons 3 & 4 don't have subtitles unfortunately
Lessons 3 & 4 don't have subtitles unfortunately
-
미해결클로드코드 Utniy6 Behavior로 소울라이크 스타일 게임 만들기
클로드코드 + 유니티 컨텐츠만들기 응용에 대하여 질문드립니다.
안녕하세요. 현재 유니티로 할 수 있는 모든 것을 하고싶은 수강생1입니다. 제가 지향하고있는 게임이 있다면 붉은사막인데요. 이유가 로딩지연없는심리스에 나름지성이있는 NPC에 여러가지 방대한 컨텐츠들이 있어서 인데요. 재미난 기능요소만 있다면 일단 만들고 넣고보는게 감명을 받았습니다. 지금 현재기준으로 만들고싶은게 있다면 vr 컨텐츠 방탈출 및 전투컨셉을 만들고싶고 차후에는 스마트글래스 컨텐츠들을 만들고싶습니다. 예를들어 손제스처로 몬스터볼을 던져서 포획하는 포켓몬go라던지 마블 아이언맨 1인칭 시점 HUD 이런느낌으로 컨텐츠들을 제작을 하고싶습니다. 본론으로 넘어가서 클로드 + 유니티 + 블렌더 등등의 툴들을 이용하여 제가 구상하고있는것들을 만들수있는지 그리고 현재강의를 듣고 근접하거나 응용할수있는지 방향성을 여쭙고싶습니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
매니저 관련 질문이 있습니다.
void Start(){Init();}이것을 실행 시키려면 결국매니저라는 스크립트가 하이라이키에 있는 오브젝트가 있어야 스타트가 동작하는데후반에 가면 매니저 스크립트가 게임오브젝트에 없는대도 잘 실행됩니다.플레이어컨트롤러에서 불러오게 되는건가어떻게 게임오브젝트에 매니저가 없는데 Init():를 실행시키게 되는지 궁금합니다.어디서 Init():를 호출했는지 보는 방법이 있을지요. 브레이크 걸고 에프11 누르면 다음으로 이동하는데 다음 말고 이전으로 가는 방법도 있는지 궁금합니다.
-
미해결절대강좌! 유니티6 - ECS/DOTS 프로그래밍 마스터클래스
Instantiate
런타임 Entity 생성시 커멘드 버퍼를 이용한다고 하셨습니다. 대량 발사체 구현 파트에서는 발사체를 커멘드 버퍼로 엔티티를 생성하는데, 여기 EnemySpawn에서는 state.EntityManager.Instantiate 으로 생성하네요어떤 차이점이 있는건가요?
-
해결됨AI 시대의 혁신적인 게임 개발 입문 with Unity6
유니티 허브 다운로드
2026년 5월 7일 기준 '유니티 허브 다운로드' 라고 검색하니까 Unity Industry 다운로드 밖에 안뜨는데(유료인 거 같아요), 혹시 어디서 어떤 거를 다운로드 해야 하나요? ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
비쥬얼 스튜디오에서 unity연결이 없습니다.
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
UserDataManager 클래스 hasSaveError 처리
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가 실패로 발생하면 개발자 입장에서는 어떻게 버그를 알 수 있을까요?그리고 개발자는 어떻게 대처를 해야 될까요??