inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

와..정말 감탄이 나오네요..

미해결

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

안녕하세요 즐겁게 수강하고 있는 학생 입니다. 이번에 delegate 와 event 에 대해서 강의를 들었는데 다른 곳에서는 그냥 이럴때 이렇게 써요 하고 넘어가서 아...delegate 는 이럴때 사용하는 구나 라고만 넘어가서 정확히 어떤식으로 동작하는지 안의 구조는 어떤식으로 되어 있는지는 애매모호 하게만 알고 있었는데 이번 강의를 통해서 왜 delegate 를 사용해야 하고 사용을 안하면 어떠한 노가다를 해야 하고 그 노가다의 결과는 어떤 참혹한 버그를 초래할수 있고 등등을 잘 알게 되는 강의라고 생각 됩니다. 이벤트라는 기능을 이렇게 조리 있게 표현하고 설명 하실수 있는 선생님께 정말 감탄하게 되네요... 이미 선생님 강의를 처음부터 끝까지 전부 봤지만 다른 분들껄 보고 지금 다시 보는 상황인데 이해가 확실히 됩니다. 너무 감사합니다

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

추상 클래스에 대해 이해가 잘 안되었는데

미해결

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

선생님의 강의를 듣고 인터페이스와 추상 클래스에 대해서 이해가 잘 되었어요 ! 물론 실전 프로젝트에서 어떻게 적재적소에 사용을 하느냐가 문제 겠지만 이런 작동 원리를 알고있고 필요할때 응용해서 사용 할수만 있다면 노가다를 줄이고 굉장히 편하게 쓸수 있을거 같아요 감사합니다!!

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

AddListener와 async 사용

해결됨

절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축

안녕하세요. 버튼 AddListener 사용할 때 질문이 있습니다. loginButton.onClick.AddListener(async () => await Login()); 이렇게 사용하셨는데요. AddListener 함수가 콜백을 await 해주지 않기때문에, 이렇게 사용하는게 낫지 않나요? loginButton.onClick.AddListener(Login); private async void Login() { try { await AuthenticationService.Instance.SignInAnonymouslyAsync(); string playerName = await AuthenticationService.Instance.GetPlayerNameAsync(); playerNameIF.text = playerName.Split('#')[0]; } catch (Exception e) { print(e.Message); } }

  • unity
  • database
  • authentication
  • backend
  • leaderboard
  • 유니티6
  • ugs
ac3c2fe4 댓글 2 좋아요 0 조회수 163

소스코드 관련 문의드립니다.

미해결

[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스

안녕하세요. 프로젝트를 진행하면서 문제 발생했을 때 git 소스 코드만 보고 찾기 어려움이 있습니다.. 커리큘럼을 보니 콘텐츠 개발은 완료된 것 같고 출시 준비만 남은 것같은데 혹시 전체 프로젝트 소스에 대해서 받을 수 있을까요?? 가능하시다면 링크를 주셔도 가능하고 이메일로 첨부해주셔도 됩니다! 이메일:guddn1234k@naver.com

  • C#
  • unity
  • 게임기획
  • multiplayer
  • game-programming
전형우 댓글 4 좋아요 0 조회수 288

안녕하세요 오브젝트 풀에 대해서 궁금한게 있어서 글 남깁니다

미해결

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

안녕하세요 선생님 강의 잘 보고 있습니다. 다름이 아니라 마지막 수업까지 듣고 몬스터에 Poolable 스크립트를 넣어서 오브젝트 풀이 잘 작동하는지 확인을 할려고 하는데 잘 작동은 하는데 위의 이미지 처럼 오브젝트 풀에 들어갔다가 다시 스폰이 될때 피가 0인 상태 즉 죽었을때 들어간 정보 그대로 다시 스폰이 되어서 플레이어를 따라오지 않더라구요 오브젝트 풀에 들어갔다가 다시 스폰이 될때 몬스터의 값을 초기화 해줘야 될거 같은데... 어디서 어떻게 그 코드를 넣어야 할지 도저히 막막해서 글을 남깁니다... Poolable 스크립트를 넣지 않고 그냥 실행하면 정상적으로 값이 초기화가 잘 된 상태로 스폰이 됩니다.

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

ArgumentNullException : Value cannot be null

미해결

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

17분까지는 구현이 잘되었는데 27분에 코드 수정 후 되지 않습니다. 오류가 나는 원인을 알고 싶습니다. Main_UI.cs 206 Stage_Mng.cs 42 Main_UI.cs 260

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
soo 댓글 1 좋아요 0 조회수 183

Run시 에러가 발생합니다.

해결됨

절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축

const { DataApi } = require("@unity-Services/cloud-save-1.4") module.exports = async ({ params, context, logger }) => { const { projectId } = context; const serverInfo = { apiEndpoint: " https://mygame.server.com ", connectId: 123456 } const cloudSaveApi = new DataApi(context); try{ await cloudSaveApi.setCustomItem(projectId, "SeverConfig", { key:"serverInfo", value: serverInfo }); logger.info ("Save ServerInfo Success"); return { success: true, message: "Save Success ServerInfo"}; }catch(err){ logger.info ("Error", {"error:", err.message}); return {success : false, message : "Failed Save ServerInfo"}; } }; Compilation Error ------------------------------ SyntaxError: Unexpected token ',' GameData.js:22:34

  • unity
  • database
  • authentication
  • backend
  • leaderboard
  • 유니티6
  • ugs
댓글 3 좋아요 0 조회수 200

하나의 스킬 내에서 타겟, 이펙트가 여러번 바뀌게 하는 방법이 궁금합니다.

해결됨

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

예를 들어 적 엔티티를 클릭하여 타겟으로 삼고 공격을 한 후, 다시 타겟 검색을 해서 주변의 아군을 치유하는 스킬이 있습니다.(또는 그냥 자기 자신을 치유) 이럴땐, 처음 타겟서칭때 SelectEntity방식으로 적을 찾는데, 이후 이어지는 발동 상황에서는 주변의 적을 positionSearch 방식으로 찾아야 해서 타겟 서칭 방법이 바뀌고, 또 적용해야하는 이펙트 또한 바뀌게 됩니다. 어떻게 보면 두 종류 이상의 스킬을 같이 사용하는 형태 같습니다. precedingAction을 통해 구현하는건, 발동되는 효과가 3가지 이상일 경우도 있으므로 적절하지 않은 것 같습니다. 새로운 스테이트 머신을 만들어서 타겟서칭과 이펙트를 반복하게 만들 수도 있을것 같은데 제가 구현하고자 하는 방향이 턴제 형식이라서 굳이 스킬 스테이트 머신을 사용하지 않으려고 합니다. 제가 생각해본 방법은 effect 자체에 타겟서칭을 추가해서 순차적으로 이펙트를 실행함에 따라 매번 타겟 서칭을 새롭게 하는 방법이나, skillData를 2차원 배열로 만들어서 각 레벨별로 각기 다른 효과와 이펙트를 저장하고, skillData를 순차적으로 실행하는 방법 정도입니다. 이러한 구조를 어떻게 구현하면 좋을지 질문하고 싶습니다.

  • unity
  • modules
김아님 댓글 1 좋아요 0 조회수 208

멀티플레이 테스트 환경 관련 질문입니다

미해결

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

안녕하세요 수업을 잘 듣고 있습니다만 멀티플레이를 테스트하는 환경에서 문제가 생겨 질문 올립니다. 강의에서 설명해주신대로 유니티 Tool탭에 2~ 4Players를 선택해서 빌드앤런을 자동화해서 하는 방식으로 테스트를 하였습니다. 일단 동기화가 잘 진행되지 않았는데요 물론 제가 코드를 잘못쳤거나 강의 내용 중에 뭔가 놓친게 있을 수 있지만 그전에 한가지 질문을 여쭙고 싶습니다. 한쪽 클라이언트에서 캐릭터를 움직이기 위해 키를 입력하면 다른쪽 클라이언트에서 포커싱을 잃는 것을 확인했는데요. 이렇게 포커싱을 잃은 클라이언트에서 서버로부터 패킷을 정상적으로 수신하지 못해 동기화가 이뤄지지 않는 문제가 발생할 수 있는지요? 혹시나 해서 유니티 내에서 플레이버튼을 통해 하나의 클라이언트를 가동시키고, 또 빌드한 파일 중 하나만 수동으로 실행해 다른 하나의 클라이언트를 가동시킨 상태에서 중단점을 걸고 차근차근히 실행을 해보았는데요. 이때는 정상적으로 패킷을 받아와 동기화가 이뤄진 것을 확인하였습니다. 만약 포커싱을 잃은 윈도우에서 패킷을 정상적으로 수신하지 못하는 문제가 발생할 수 있다면 테스트 환경을 어떻게 개선시킬 수 있을까요? 포커싱과 전혀 관련이 없는 문제라면 강의를 다시 보면서 놓친부분을 찾아보려합니다.

  • C#
  • unity
Chris 댓글 3 좋아요 0 조회수 256

오디오 관련해서 질문 있습니다.

해결됨

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

audiosource를 추가해서 총을 쐈을 때, 아무 소리도 나지 않는 상태에서 처음 쏘는 총알의 소리의 앞부분이 끊겨서 재생됩니다. 해결 방법이 있을까요?

  • C#
  • unity
백구 댓글 2 좋아요 0 조회수 182

2D게임에서 트램플린 Trigger감지관련

해결됨

새싹부터 시작하는 Unity 게임 개발

트램펄린을 Box Collider로 설정하고 진행할 때, 옆면에만 닿아도 점프가 되는데 윗면에서만 감지되도록 하여 트램펄린 위에 올라갔을 때만 점프하도록 구현하려면 어떻게 해야 할까요?

  • C#
  • unity
  • collider
  • .csv
  • json-parsing
SeongBaek CHO 댓글 1 좋아요 0 조회수 143

Item DB Firebase 연결

미해결

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

Axe, Mana, Dice 까지는 firebase에 추가가 되었는데, 이후에 추가로 아이템을 등록을 해보려고 Scriptable/Item 폴더 안에 Scriptable Object를 추가했더니 인게임에서 키값도 못찾고 DB에 당연히 등록도 안되네용.. 어떻게하면 좋을까요 ㅠ

  • C#
  • unity
  • firebase
  • 게임기획
  • json-parsing
Cryingstar 댓글 1 좋아요 0 조회수 101

콘솔앱 (.NET Core) 과 콘솔앱과 동일한가요

해결됨

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

Visual Studio 2002 사용 중입니다. 구글링 해서 SDK도 설치하고 여러가지 해봤지만 콘솔앱 (.NET Core)는 보이지 않네요. 명칭이 콘솔앱으로 변경되었다는 글을 본 것 같아서 콘솔앱으로 진행했는데 namespace도 자동으로 생성되지 않고 조금 다른 부분이 보입니다. 같은 것이 맞나요? 이렇게 진행해도 되나요??

  • unity
  • 네트워크
재민 댓글 3 좋아요 0 조회수 304

mob 스크립트 작성 시 오류

해결됨

두고두고 써먹는 유니티 VR

안녕하세요~ mob 스크립트 작성 시, 콘솔에 에러가 이렇게 뜨는데 무엇이 문제일까요? Assets\Tutorial\Scripts\Mob\Mob.cs(6,14): error CS0101: The namespace '<global namespace>' already contains a definition for 'Mob' Assets\Tutorial\Scripts\Mob\Mob.cs(15,18): error CS0111: Type 'Mob' already defines a member called 'Start' with the same parameter types

  • unity
  • VR/AR
  • 유니티-vr
김민주 댓글 1 좋아요 0 조회수 182

Spawner 스크립트

해결됨

두고두고 써먹는 유니티 VR

해당 스크립트 제작 후, 컴포넌트에 추가했는데, 밑에 파라미터들이 활성화되지 않아 연결할 수 있는 창이 안보여요 ㅠㅠ 무엇이 문제일까요?? Prefab, Play On Start 등등이요..

  • unity
  • VR/AR
  • 유니티-vr
김민주 댓글 2 좋아요 0 조회수 155

Knight구매시 오류

해결됨

책 3권을 영상으로 만든 Unity 게임 개발

using UnityEngine; using UnityEngine.UI; public class ItemPurchase : MonoBehaviour { [SerializeField] UnitObject[] unitObjects; [SerializeField] int ItemNumber; [SerializeField] int ItemPrice; [SerializeField] GameObject BlackPanel; [SerializeField] GameObject PurchasePanel; [SerializeField] GameObject AlarmPanel; [SerializeField] Text AlarmText; [SerializeField] Text UnitName; [SerializeField] Image UnitImg; int CurrentCoin = 0; [HideInInspector] public static ItemPurchase Instance; void Awake() { Instance = this; Debug.Log("1. Saved ItemNumber" + PlayerPrefs.GetInt("ItemNumber")); } void Start() { PlayerPrefs.SetInt("Coin", 10000000); PlayerPrefs.Save(); Debug.Log("2. Saved ItemNumber" + PlayerPrefs.GetInt("ItemNumber")); CurrentCoin = PlayerPrefs.GetInt("Coin"); } public void SelectItem() { PlayerPrefs.SetInt("ItemNumber", ItemNumber); PlayerPrefs.Save(); BlackPanel.SetActive(true); PurchasePanel.SetActive(true); UnitName.text = unitObjects[ItemNumber-1].UnitName; UnitImg.sprite = unitObjects[ItemNumber-1].UnitImg; Debug.Log("3. Saved ItemNumber" + PlayerPrefs.GetInt("ItemNumber")); Debug.Log("4. Selected Item Number : " + ItemNumber); } public void PurchaseItemBtn() { if(CurrentCoin < ItemPrice) { AlarmPanel.SetActive(true); AlarmText.text = "코인이 부족합니다."; return; } AlarmPanel.SetActive(true); AlarmText.text = "구매를 완료했습니다."; Debug.Log("5. Saved ItemNumber" + PlayerPrefs.GetInt("ItemNumber")); Debug.Log("6. Selected Unit" + (ItemNumber+3)); Debug.Log("7. Selected Price : " + ItemPrice); PlayerPrefs.SetInt("Unit"+(ItemNumber + 3), 1); PlayerPrefs.SetInt("Coin", CurrentCoin - ItemPrice); PlayerPrefs.Save(); } public void PurchasePanelOffBtn() { BlackPanel.SetActive(false); PurchasePanel.SetActive(false); PlayerPrefs.DeleteKey("ItemNumber"); } } using UnityEngine; using UnityEngine.UI; public class PurchaseBtn : MonoBehaviour { [SerializeField] Button purchase_btn; void Start() { purchase_btn.onClick.AddListener(OnClickBtn); } private void OnClickBtn() { ItemPurchase.Instance.PurchaseItemBtn(); } } 강의 따라했는데, 나이트 구매시 인스턴스 this가 super defender로 잡혀서 구매가 되는데 어떻게 해야하나요? 싱글턴 패턴에서 수퍼 디펜더가 처음에 잡혀서 나이트가 static 인스턴스에의해 못 잡고있는 것 같기도한데... 어디서부터 봐야할지 모르겠어요ㅠ

  • C#
  • unity
SeongBaek CHO 댓글 2 좋아요 1 조회수 205

[질문] ID 와 Password 방식으로 가입하는 방식 관련 질문이 있습니다.

해결됨

절대강좌! 유니티6 - UGS를 활용한 백엔드 시스템 구축

안녕하세요. ID 와 Password 방식 관련 강의를 보고 있습니다. 강의 영상에서 보면 가입을 zack 이란 아이디로 가입을 하였는데, 대쉬보드에서 보니 Unity 가 자체적으로 생성한 PlayerID 인 : UmpicBxVKu~~~~ 로만 등록되어 있어서요. 그럼 사용자가 자신의 아이디를 밝히면서 관련해서 무언가를 요구할때 서로 의사소통하기가 어렵지 않나요? 사용자가 명시적으로 입력한 id 값으로 찾아볼 수 있는 곳이 있을까요? (현재 강의만 보고 있어서, 직접 대쉬보드를 열어보지 않아서 드리는 질문일 수도 있겠네요 ^^; )

  • unity
  • database
  • authentication
  • backend
  • leaderboard
  • 유니티6
  • ugs
paehwang 댓글 2 좋아요 0 조회수 180

Material Shader 문제

미해결

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

안녕하세요 유니티 6에서 따라하면서 공부하고 있는데 옛날 Material이 분홍색으로 나타납니다. 해결하는 법 알려주세요

  • C#
  • unity
ehd9028 댓글 4 좋아요 0 조회수 397

인기 태그

인프런 TOP Writers

주간 인기글