inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

enum을 이용한 UI자동화를 한 경우는 값이 자주 바뀌어야하면 비효율적인가요?

해결됨

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

안녕하세요! 강사님 이번 프로젝트에서 더 나아가 rpg 연습 프로젝트를 하는 도중 인벤토리 구현을 하는데 있어서 궁금한 것이 있어 질문 남깁니다. 아래처럼 슬롯 UI를 구현해서 이제 Clear일때는 text,와 image를 지워주고 update에는 또 새로운 값을 대입해주거나 해야하는데 그때마다 Get~= null, Get~= stack++;이런식으로 해주어야하는건가요? 클래스 멤버변수로 Text stackText 를 하나 선언해서 Init할때 stackText = Get~ 이런식으로 받아놓고 사용하면되는걸까요? 다루어야할 데이터가 늘어나면 enum형에 있는만큼 더생기니까 뭔가 바인딩하려고 enum형에 다 선언을 해놨는데 변수를 하나 더 만드는 거 같아 이런식으로 사용하는게 맞는지 모르겟습니다. 머리를 굴려서 생각해본 결과 SetInfo를 값을 변화시켜야할때마다 호출하는 방식으로 해놓긴했습니다ㅠㅠ using System.Collections; using System.Collections.Generic; using TMPro; using UI; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; public class UI_InvenItemSlot : UI_Base { enum Images { ItemImage } enum Texts { ItemStackText } void Start() { Init(); } public override void Init() { Bind<GameObject>(typeof(Texts)); Bind<GameObject>(typeof(Images)); //클릭했을 때, 장착 바뀌기 이런 이벤트 함수 만들어서 연결 } private void OnClickSlot() { } private void ClearSlot() { // image =null //itemstacktext= null } private void UpdateStackText() { } private void SetInfo(Sprite image, int stackCnt) { GetText((int)Texts.ItemStackText).text = stackCnt.ToString(); GetImage((int)Images.ItemImage).sprite = image; } //슬롯 인덱스 // 슬롯 아이템 보유 여부 // 슬롯 접근 가능 여부 -> 다른 종류 아이템이거나 꽉찼으면 접근 X // 아이템 이미지 // 수량 텍스트 //기능 // 아이템 이미지 변경/ 보이기/ 숨기기 // 수량 텍스트 변경/보이기/숨기기 // 슬롯 접근가능 여부 변경 }

  • C#
  • unity
황주은 댓글 2 좋아요 0 조회수 350

inputManager 질문 있습니다

미해결

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

강의 내용을 보면 PlayerController에서 update함수에 캐릭터가 움직이는 로직을 직접 넣는것은 규모가 큰 게임에서는 효율이 안좋다고 하셨는데 어떤부분이 직접적으로 안좋은것이고 매니저를 따로 만들어서 작동시키는것이 어떤점이 좋은건지 조금 구체적으로 알고싶습니다. 이후강의에 resource manager도 같은 맥락으로 궁금점이 생겼는데요. resource manager같은 경우에는 진짜 유니티에서 제공하는 함수를 한번 더 박싱을 해서 쓰는것 뿐인데 왜 따로 매니저를 만드는지 궁금합니다 지금은 Camera편 강의를 보고 있다가 질문거리가 생겨서 여기에 질문 같이 올립니다. inputmanager, resource manager의 상위에 Managers라는 또 다른 매니저를 만들어서 여러가지 매니저들을 관리하는데요. 여러가지 매니저들을 따로따로 써도 될것같은데 굳이 한번 더 복잡하게 상위 매니저를 만들어서 한번에 쓰는것인지 궁금해요.

  • C#
  • unity
강감찬 댓글 2 좋아요 0 조회수 440

시네머신 FreeLook 관련

미해결

레트로의 유니티 C# 게임 프로그래밍 에센스

시네머신을 생성하고 시네머신 프리룩을 만들고 캐릭터를 Follow 와 Look at 에 넣었는데도 플레이를 누르면 화면이 회전하지 않고 정지해 있는데.. 이유를 모르겠습니다.

  • C#
  • unity
sunrise3225 댓글 1 좋아요 0 조회수 263

아이폰으로도 빌드하는 방법 알고 싶어요

미해결

비전공자도 쉽게 시작하는 증강현실(AR)로 나만의 고양이 만들기

강의 잘 듣고 있습니다. 그런데 제가 가지고 있는 핸드폰이 아이폰 뿐이라서 아이폰으로 실습할 수 있는 방법을 단계적으로 알수 있을까요? 빌드 부분만 틀린 것이라면 간단한 글로 방법을 설명해 주셨으면 합니다. 그부분만 잘 설명된 사이트가 있으면 알려주셨으면 합니다.

  • C#
  • unity
  • VR/AR
hanikeepers 댓글 1 좋아요 0 조회수 327

lock-free 관련

미해결

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

안녕하세요 lock 관련해서 찾아보다가 lcok-free 알고리즘을 보게 되었는데요 lock-free라는게 이번 강의처럼 Queue자료구조를 이용해서 GameRoom의 Broadcast, Enter, Leave에 lock을 풀어내느걸 lock-free라고 할 수 있는건가요? 만약 아니라면 즉 말 그대로 lock에서 완전히 자유로울 수 있다면 lock-free 알고리즘을 사용하지 않는 이유를 알 수 있을까요? 어떠한 한계가 있는걸까요?

  • C#
  • unity
  • 네트워크
toyboy0113 댓글 1 좋아요 0 조회수 244

집에서 서버 돌리기

미해결

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

네트워크 기초 이론 강의 8분 25초 말씀 중에 큰 규모의 게임의 서버를 돌리려면 성능이 좋은 컴퓨터를 써야 한다고 하셨는데 큰 규모가 아니라 동시 접속자 500~1000명 프리서버정도 되는 규모의 MMORPG는 집에서 무난하게 돌릴 수 있을 까요? 무리일까요?

  • C#
  • unity
  • 네트워크
파도 댓글 1 좋아요 0 조회수 349

디버그 프로필에 지정된 디버그 실행파일이 없습니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

namespace Algorithm { internal class Program { static void Main(string[] args) { // Console.CursorVisible = false; const int WAIT_TICK = 1000 / 30; const char CIRCLE = '\u25cf'; int lastTick = 0; while (true) { #region 프레임 관리 int currentTick = Environment.TickCount & int.MaxValue; //만약에 경과한 시간이 1/30초보다 작다면 if (currentTick - lastTick < 1000 / 30) continue; lastTick = currentTick; #endregion 프레임 관리 //입력 //로직 //렌더링 Console.SetCursorPosition(0, 0); for (int i = 0; i < 25; j++) { Console.Write(CIRCLE); } Console.WriteLine(); } } } } F5키를 누르면 디버그 프로필에 지정된 디버그 실행파일 ~파일경로~ 가 없습니다 라고 뜨면서 실행이 안되는데 어떻게 해야할까요?

  • C#
쾌할한 다람쥐 댓글 1 좋아요 0 조회수 728

공격후에 미끄러지는 오류

미해결

유니티와 C#으로 배우는 카타나제로스타일 게임만들기 (기본편)

공격이펙트 마무리 강의를 마쳤는데, 공격시 바라보는 방향으로 힘이 주어져서 더 빨리 이동하는데, 딱 딱 대시하고 멈추지가않고, 스르륵 미끄러집니다. 무엇이 문제일까요? using System.Collections; using System.Collections.Generic; using System.IO; using UnityEditor; using UnityEngine; using UnityEngine.UIElements; public class Player : MonoBehaviour { public float speed = 5; public float jumpUp = 1; public float power = 5; public Vector3 direction; //방향을 위한 Vector3형 변수 public GameObject slash; Animator pAnimator; //애니메이션 관리를 위함 Rigidbody2D pRig2D; //물리효과처리 + SpriteRenderer sp; void Start() { pAnimator = GetComponent<Animator>(); pRig2D = GetComponent<Rigidbody2D>(); direction = Vector2.zero; sp = GetComponent<SpriteRenderer>(); } void KeyInput() { direction.x = Input.GetAxisRaw("Horizontal"); if (direction.x < 0) { //left sp.flipX = true; pAnimator.SetBool("Run", true); } else if (direction.x > 0) { //right sp.flipX = false; pAnimator.SetBool("Run", true); } else if (direction.x == 0) { pAnimator.SetBool("Run", false); } if (Input.GetMouseButtonDown(0)) { pAnimator.SetTrigger("Attack"); } } void Update() { //클래스 사용 KeyInput(); Move(); if (Input.GetKeyDown(KeyCode.W))//W키 눌렀을때 { if (pAnimator.GetBool("Jump") == false) { Jump(); pAnimator.SetBool("Jump", true); } } } private void FixedUpdate() { Debug.DrawRay(pRig2D.position, Vector3.down, new Color(0, 1, 0)); RaycastHit2D rayHit = Physics2D.Raycast(pRig2D.position, Vector3.down, 1, LayerMask.GetMask("Ground")); if (pRig2D.velocity.y < 0) { if (rayHit.collider != null) { if (rayHit.distance < 0.7f) { pAnimator.SetBool("Jump", false); } } } } //움직임 함수 public void Move() { transform.position += direction speed Time.deltaTime; } public void AttSlash() { //플레이어 오른쪽 if (sp.flipX == false) { pRig2D.AddForce(Vector2.right * power, ForceMode2D.Impulse); GameObject go = Instantiate(slash, transform.position, Quaternion.identity); go.GetComponent<SpriteRenderer>().flipX = sp.flipX; } else //왼쪽 { pRig2D.AddForce(Vector2.left * power, ForceMode2D.Impulse); GameObject go = Instantiate(slash, transform.position, Quaternion.identity); go.GetComponent<SpriteRenderer>().flipX = sp.flipX; } } //점프 함수 public void Jump() { //벡터값 제로 pRig2D.velocity = Vector2.zero; //제로로 해줘야 이전에 있던 값(힘)이 사라진다? //위로 힘 가해주기 pRig2D.AddForce(new Vector2(0, jumpUp), ForceMode2D.Impulse); } }

  • C#
  • unity
Hants 댓글 1 좋아요 0 조회수 240

에셋 다운은 어디서하나요??

미해결

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

다른 질문에도 있던데 구름모양이 도대체 어디 있는건가요?? 정확한 위치를 알려주세요 어디에 구름이 있는거죠???

  • C#
  • unity
김찌노 댓글 2 좋아요 0 조회수 607

JWT의 유효기간에 대해서 질문이 있습니다.

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

방치형 게임의 경우 JWT의 유효기간을 어떻게 설정해야하는지가 궁금합니다. 방치형 게임은 특성상 유저가 AFK를 해두는경우가 많은걸로 알고있습니다. 제가 이해한바로는 게임을 오래동안 켜놓아도 JWT의 유효기간이 지나버리면 다시 재로그인을 해서 JWT를 발급받아야하는것으로 이해했습니다. 유효기간을 되도록이면 짧게하는게 보안적인 부분에서 이득이라고 생각되는데 이를 해결할 방법이 있을지 혹은 적절한 유효기간이 있는지가 궁금합니다.

  • C#
  • unity
  • MMORPG
minkyeonghwan 댓글 1 좋아요 0 조회수 449

이미지 파일

해결됨

비전공자도 쉽게 시작하는 증강현실(AR)로 나만의 고양이 만들기

안녕하세요 강의 듣고있는데 늑대 사진은 어디서 다운로드 받나요?

  • C#
  • unity
  • VR/AR
장하록 댓글 1 좋아요 1 조회수 256

참조타입에 따른 메모리 사용량 크기 질문

해결됨

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘

안녕하세요 예를 들어 코드가 다음과 같이 2개의 참조타입 클래스를 생성했을때 같은 주소를 참조하고 있습니다. 여기서 class를 2개가 되며 참조타입은 스택 메모리에 힙 메모리의 주소값을 저장한다고 알고 있습니다. 그럼 스택 메모리에 힙 메모리의 주소값이 저장되는 것이니 힙 메모리는 같더라도 스택메모리는 증가된다고 생각하는데 메모리 사용량이 얼마나 증가 되는건지 알 수 있을까요? public class Test { private int D1; private string D2; } int main() { Test A = new Test(); Test B = A; }

  • C#
C Kim 댓글 1 좋아요 0 조회수 157

클래스 라이브러리 추가시

미해결

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

클래스 라이브러리를 추가하면 계속해서 클래스 라이브러리에 대한 폴더가 생성 되는데 이것이 정상인가요? 강사님이 올려주신 코드, 강의를 보면 클래스라이브러리 폴더가 추가가 되지 않던데.. 어떻게 설정을 해야 하는건가요?

  • C#
  • mvc
  • rest-api
  • 아키텍처
  • mssql
  • ef-core
  • asp.net-core
재혁 댓글 1 좋아요 0 조회수 262

SendBufferHelper를 굳이 만들어야 하는 이유가 뭔가요?

미해결

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

먼저 수준 낮은 질문 죄송합니다.. SendBufferHelper클래스의 내용 전부를 SendBuffer클래스에 넣을 수 있을 거 같고, 넣으면 사실상 SendBufferHelper클래스는 필요 없을 거 같다는 생각을 했습니다. 제가 뭔가 빠뜨린 것이 있는지 궁금합니다. SendBufferHelper클래스의 ThreadLcoal에서 new ThreadLocal<SendBuffer>(() => { return null;}); 사용하셨는데 여기서 람다식은 생성자 인가요? 이것도 사실 필요 없다고 생각했는데 이것은 어디에 사용되나요?

  • C#
  • unity
  • 네트워크
댓글 1 좋아요 0 조회수 366

Asteroid 생성에 관련해서

미해결

유니티(Unity)로 시작하는 게임개발: Part 3. 슈팅게임 개발

안녕하세요 다름이 아니라 GameManager 를 생성하여 GameManager 스크립트에 Asteroid01 을 추가해서 영상에서 설명 해주신데로 코드를 작성한 후에 실행을 하면 Asteroid 가 굉장히 많은 수가 랜덤으로 생성되어 나옵니다 혹시 문제가 무엇일까요?

  • C#
  • unity
sunrise3225 댓글 1 좋아요 0 조회수 216

유니티 게임 개발 첫 발걸음을 이 강의와 함께하겠습니다

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

좋은 강의 제공해주셔서 감사합니다. 1주차의 UI까지밖에 안해봤지만 상당히 즐겁게 따라가고 있는데요. 주차별 강의를 따라가고 나서 각 코드들이나 시스템의 흐름을 파악하면서 강의를 따라가면 될까요?? 이런 질문을 드리기에 좀 쑥스럽지만.. 알려주시면 이정표 삼아 열심히 해보겠습니다. 감사합니다!

  • C#
  • unity
  • MMORPG
김세종 댓글 2 좋아요 0 조회수 465

DB에서 조회된 다건의 데이터를 처리할 때

미해결

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

안녕하세요 강사님 저 강의를 다회차 보면서 궁금한 점이 생겨서요. 기존 코드 public async Task<GetUserResponseDTO> GetUser(GetUserDTO getUserDTO) { var configuration = new MapperConfiguration(cfg => { }); //Response..DTO 생성후 Controller로 전달 // Perform mapping Mapper mapper = new Mapper(configuration); Dictionary<string, object> dc=mapper.Map<GetUserDTO,Dictionary<string, object> >(getUserDTO); dc.Remove("Password"); ProcCall procCall= new ProcCall(); DataTable dt = await procCall.RequestProcedure("sp_login", dc); GetUserResponseDTO dto = new GetUserResponseDTO(); dto.Id = (int)dt.Rows[0]["id"]; dto.Userid = dt.Rows[0]["userid"].ToString(); dto.Username = dt.Rows[0]["Username"].ToString(); dto.Point = (int)dt.Rows[0]["Point"]; return dto; } 로그인 서비스의 관련하여 dto의 담기는 오브젝트가 적고 단 건이라 이러한 방식으로 처리가 가능한 것 같습니다. 해당 부분의 활용하여 다건의 데이터를 처리하기는 어려울 것 같은데 어떤 방식이 있는지 확인 가능할까요??

  • C#
  • mvc
  • rest-api
  • 아키텍처
  • mssql
  • ef-core
  • asp.net-core
wltn07551 댓글 1 좋아요 0 조회수 222

cshtml.css, cshtml.cs 비하인드 코드 추가 방법

미해결

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

아래와 같이 css를 추가 했는데 적용이 되지 않습니다. asp.net core mvc로 했을 때 아래와 같이 추가를 하면 적용이 되는데 asp.net core 비어있음으로 생성 후 아래와 같이 추가를 하면 동작이 되지 않아요 cshtml.css, cshtml.cs를 추가하고 싶으면 어떻게 해야 하나요? 관련 강의도 추가를 해주시면 감사하겠습니다.

  • C#
  • mvc
  • rest-api
  • 아키텍처
  • mssql
  • ef-core
  • asp.net-core
재혁 댓글 1 좋아요 0 조회수 443

indicator image

미해결

유니티 AR로 만드는 FPS 게임

indicator image 가 없는 것 같습니다.

  • C#
  • unity
  • VR/AR
양승근 댓글 1 좋아요 0 조회수 183

인기 태그

인프런 TOP Writers

주간 인기글