묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
유니티 한 씬에 여러 스테이지 표현
안녕하세요 유니티 독학을 한 후 제대로된 개발을 처음 해보는 사람입니다ㅠㅠ 다름이 아니라, 총 20스테이지에 각 스테이지마다 15개의 부가 스테이지를 만들고 싶은데요,, 스테이지마다 씬을 다르게 하려다보니 씬 갯수가 300개가 나올 것 같아서 질문 드립니다.각 스테이지마다 배경 이미지가 변경이 되어 한 스테이지에 나오는 15개의 부가 스테이지는 뒷 배경 변경이 없이 오브젝트만 변경이 될 것 같은데요 이럴 경우에 한 씬에 15개의 부가스테이지를 다 몰아서 표현할 수 있을까요? 배경만 같고, 부가 스테이지마다 클리어 조건은 다릅니다ㅠㅠ만약 가능하다면 혹시 어떻게 표현을 할 수 있을지 방법까지 여쭤봐도 될까요?ㅠㅠ 유니티 책 두권으로 독학을 했는데, 두 권 다 기초 책이라 새로운 씬을 만드는 방법만 알려주네요
-
미해결
유니티 쿨타임 코루틴활용 질문
플레이어가 여러가지 스킬의 투사체를 소환해 날리는 타입으로 공격합니다.게임 진행 중에 스킬을 획득하고, 스킬을 획득하면 스킬의 Id 값을 매개변수로 활용하여코루틴을 실행합니다. while 문 안에 스킬의 해당 투사체 소환 함수를 실행하고 해당 스킬의 쿨타임만큼 WaitForSeconds 를 실행하고 있습니다.그런데 게임을 진행 중에 일시정지 했을 때, 문제가 생깁니다.처음엔 while문 안에서 만약 일시정지 상태라면 yield return null 로 넘어가는 방식으로작성했습니다. 예를 들면 쿨타임이 3초인 스킬이 있는데 소환하고 1초가 지난 후에, 일시정지가 되었다면 일시정지가 풀린 후에 2초가 지나는게 아닌, 일시정지 상태에서도 시간이 흐릅니다.그래서 일시정지가 풀리면 바로 소환합니다. 일시정지 직전 소환한 오브젝트가 있으니, 중복생성 된 것처럼 연출이 나옵니다. 그래서 소환 실행함수 안에서 일시정지상태라면 return 시켜 소환을 취소하는 방식으로 했습니다. 타이밍에 따라서 소환을 스킵해서 쿨타임이 길어지고, 결국 원하는 연출은 나오지 않더군요ㅠㅠ여러가지 스킬을 굴리다보니 코루틴을 사용했는데, 다른 방식으로 해야 효과적으로 쿨타임을 관리할 수 있을까요?
-
미해결
유니티 오브젝트 사이에 틈이 생깁니다.
두 사진에서 바닥으로 보이는 부분은 총 3개의 오브젝트로 이루어져있습니다. Scene화면에서 볼 때는 분명 첫번째 사진과 같은 틈이 없는데 Game화면으로 넘어가면 저렇게 틈이 벌어지더라구요. 이상한 점은 첫번째 사진과 두번째 사진 모두 바닥을 이루고 있는 오브젝트 사이의 간격은 동일합니다. 동일한 간격을 가지고 있는데 왜 어떤 경우엔 틈이 벌어진 것처럼 보이고 어떤 경우엔 문제없이 잘 붙어있는 것 처럼 보이는걸까요?몇가지 실험을 해보니까 특정 좌표에서만 저렇게 틈이 벌어지고, Main Camera의 Size를 변경하면 틈이 벌어지는 좌표도 바뀝니다.
-
미해결
유니티 동영상 재생 오류
2D 오브젝트 Circle을 만들고 거기에 Video Player를 넣어서 동영상을 재생시키면 위 사진처럼 갑자기 각이 생깁니다. 동영상 재생 전에는 원으로 있다가 동영상이 재생되면 갑자기 n각형으로 변하네요.이거 해결하는 방법 있을까요?
-
미해결게임 프로그래머 취업 전략 가이드
언리얼과 유니티 상관이 없나요?
어떤 엔진을 사용하든 배우는데 있어 상관이 없다는 말을 들었습니다. 그래서 선생님을 찾아오게 되었습니다. 하나의 엔진과 언어에 깊게 파고들어 마스터하는 것이 단점보단 장점이 많다고 생각이 듭니다. 언리얼과 C++, 유니티와 C#. 둘다 잘 다룰수 있다면 선택의 폭이 넓어지겠지만 둘중 하나만 이용하여 개발하는 경우가 많지 않나 생각듭니다. 언리얼로 개발하는 회사에서 유니티 전공자를 뽑는지는 모르겠지만 어디까지나 상대평가이기 때문에 저 같은 경우는 목표를 이루기 위해 언리얼에 전문성을 띠고 싶으며 꾸준히 선생님의 C++과 언리얼을 공부중입니다. 실력을 기르는데 있어서 두 엔진보다는 이론과 코딩실력이 중요하겠지만 유니티와 언리얼은 생각보다 많은 차이점을 가지고 있다고 판단합니다. 제 생각이 현업에서도 똑같이 작용하는지, 틀린 가치관인지 궁금합니다. 하나의 언어와 엔진을 정해 깊게 파고드는 것과 다양한 엔진을 활용하여 배우는 것에 있어서 무엇이 더 효율적일까요
-
미해결
2D에서 Y축 크기를 구하는 법...
Debug.Log(transform.localScale.Y); 제가 작성한 코드는 이렇습니다 Assets\Script\LongNot.cs(12,40): error CS1061: 'Vector3' does not contain a definition for 'Y' and no accessible extension method 'Y' accepting a first argument of type 'Vector3' could be found (are you missing a using directive or an assembly reference?) 이게 에러 메세지인데 어떻게 해야하는지 도와주세요
-
미해결
[시급] 캐릭터가 앉은상태에서 공격하게 하고 싶습니다.
먼저 코드 내용입니다. /// 앉기 애니메이션(s) if (Input.GetKey("s")) { animator.SetFloat("Reverse",1); animator.SetBool("isDuck", true); } else { animator.SetBool("isDuck", false); } /// 공격 if (Input.GetKey("j")) ///P(j) { Punch(); } if (Input.GetKey("k")) ///K(k) { Kick(); } if (Input.GetKey("l")) ///S(l) { Special(); } ///앉아 공격 if (Input.GetKey("j") && Input.GetKey("s")) ///앉아 P { DuckPunch(); } if (Input.GetKey("s") && Input.GetKey("k")) ///앉아 K { DuckKick(); } if (Input.GetKey("s") && Input.GetKey("l")) ///앉아 S { DuckSpecial(); } } ///공격 버튼 함수 ///선 상태 공격 void Punch() { // 애니메이션 animator.SetBool("isDuck", false); animator.SetTrigger("Punch"); // 상대 감지 // 피해 주기 } void Kick() { // 애니메이션 animator.SetBool("isDuck", false); animator.SetTrigger("Kick"); // 상대 감지 // 피해 주기 } void Special() { // 애니메이션 animator.SetBool("isDuck", false); animator.SetTrigger("Special"); // 상대 감지 // 피해 주기 } ///앉은 상태 공격 void DuckPunch() { // 펀치 애니메이션 animator.SetBool("isDuck", true); animator.SetTrigger("DuckPunch"); // 상대 감지 // 피해 주기 } void DuckKick() { // 애니메이션 animator.SetBool("isDuck", true); animator.SetTrigger("DuckKick"); // 상대 감지 // 피해 주기 } void DuckSpecial() { // 애니메이션 animator.SetBool("isDuck", true); animator.SetTrigger("DuckSpecial"); // 상대 감지 // 피해 주기 } 이 상태에서 앉아키+공격키를 누르면 게임에서 선 자세 공격이 재생된 후 앉은 자세 공격이 재생됩니다. 이때 앉은 상태에서 선자세 공격이 재생되지 않도록 하고 싶습니다. 애니메이션 파라미터는 punch kick special 트리거 Duckpunch Duckkick Duckspecial 트리거로 선공격 앉은공격 구분하고 isDuck bool로 앉은 자세인지 확인 할수 있습니다. 앉은 자세 공격 함수 내용이나 입력 받는 부분을 수정하면 될 것 같은데 어떻게 해야 하나요?
-
해결됨
VScode 자동완성이 안됩니다.
제가 얼마전 부터 VS 에서 VScode로 갈아 탔었는데요. 강의를 들으면서 코딩을 하다가 점심을 먹고왔더니 그 이후로 자동완성이 되지않고 있습니다.... GameObject같은 함수는 자동완성이 안되는데 OnTriggerEnter같은 기본 내장 메서드 들은 또 자동완성이 됩니다... VScode를 초기화 재설치도 해보고 확장팩도 다시 깔아봤지만 전혀 해결이 안되네요 도와주세요 ㅠㅠ
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
오브젝트 이동에 관해서 질문이 있습니다.
윈도우 PC에서 유니티를 공부하는 유저입니다. 2분 10초에서 Ctrl키를 누른 상태로 오브젝트를 움직이면 1의 길이만큼 이동한다고 말씀하셨는데 제가 움직였을때는 0.25만큼 움직이던데 혹시 유니티 버전마다 해당 기능에 차이가 있는건가요?
-
해결됨
unity 2d 이동 좀 알려줘용....
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { private float Speed; public float WalkSpeed; public float RunSpeed; private bool isRunning = false; public float JumpForce; private bool isJumpping = false; Rigidbody2D rb; SpriteRenderer sr; Animator ani; void Start() { Speed = WalkSpeed; rb = GetComponent<Rigidbody2D>(); ani = GetComponent<Animator>(); sr = GetComponent<SpriteRenderer>(); } void FixedUpdate() { MoveControl(); TryRun(); Running(); TryJump(); } private void MoveControl() { float hor = Input.GetAxis("Horizontal"); rb.velocity = new Vector2(hor * Speed, rb.velocity.y); //MoveStop if (Input.GetButtonUp("Horizontal")) { rb.velocity = new Vector2(rb.velocity.normalized.x * 0.5f, rb.velocity.y); } //MoveSpeed if (rb.velocity.x > Speed) { rb.velocity = new Vector2(Speed, rb.velocity.y); } else if (rb.velocity.x < Speed*(-1)) { rb.velocity = new Vector2(Speed*(-1), rb.velocity.y); } //Animation if (rb.velocity.normalized.x == 0) { ani.SetBool("isWalking", false); } else { ani.SetBool("isWalking", true); } //Sprite Flip if (Input.GetButtonDown("Horizontal")) { sr.flipX = Input.GetAxisRaw("Horizontal") == -1; } } private void TryRun() { if (Input.GetKeyDown(KeyCode.LeftShift)) { isRunning = true; } else if (Input.GetKeyUp(KeyCode.LeftShift)) { isRunning = false; } } private void Running() { if (isRunning == true) { Speed = RunSpeed; isRunning = false; } else if (isRunning == false) { Speed = WalkSpeed; isRunning = true; } } private void TryJump() { if (Input.GetKeyDown(KeyCode.Space) && isJumpping == false) { rb.velocity = Vector2.up * JumpForce; isJumpping = true; } else if (Input.GetKeyUp(KeyCode.Space)) { isJumpping = false; } } } 제가 이번에 이제 유니티를 시작하게 되었는데요 유튜브를 여러 개 찾아 보면서 계속 연습을 하면서 이번에 제작에 들어가게 되었습니다 처음 시작이여서 2D 로 먼저 연습을 할려고 해서 이동하는 걸 만들어 보고 있는데요 지금 계속 중간에 가다가도 멈추고 점프도 될 때도 있고 안될때도 있고 그래서 질문 남깁니다... 빠르게 고쳐서 계속 만들어 보고 싶어요!!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티에서 사용되는 싱글톤 질문입니다.
현재 언리얼 강의 수강후, 유니티 강의도 수강 중입니다. 이번 유니티 강의를 완강 후에 개인적으로 느낀 것인데, (?) 뭔가 배울 코드가 많은 건 유니티 강의 쪽이었던 것 같습니다. 물론 언리얼 강좌가 현재 미완성이라는 건 알고 있습니다. 다만 루키스 강사님 강좌 말고 다른 언리얼 강좌를 봐도, 이번 유니티 강좌처럼 ~Manager 같은 걸 만드는 내용이 별로 안 나오더군요. 솔직히 강의 따라 Manager를 만들면서, 프레임워크라고 해야 하나? DataManager든, Resource매니저든, SpawningPool 이런걸 만들때 시야를 넓게 보는 감각이 있던게 상당히 새로웠습니다. 유니티에서는 하나하나씩 쌓아올린다는게 이런건가 싶더군요. 그런데 제가 미숙해서 그런건지 모르겠지만, 혹시 언리얼에서도 이렇게 매니저 같은걸 만들어서 프레임 워크를 짜는 경우가 많을까요? 아니면 이미 언리얼쪽은 Actor든, GameMode든, 여러 코드들이 완성되어 있어서 굳이 짤 필요가 없는 건가요. 언리얼은 이미 완성된 틀에서 코드를 작성한다~ 이런 느낌의 말을 얼핏 기억하고는 있는데, 뭔가 알것 같으면서도 잘 모르겠습니다. 대충 언리얼의 GameInstance가 이번 강의에서 나온 싱글톤 역할을 하는거 같은데, 그러면 언리얼의 GameInstance에서도 이번 강의에서 배운 매니저들을 엮어도 되는 걸까요?
-
미해결유니티 머신러닝 에이전트 완전정복 (기초편)
강의 첫 리뷰 : 열심히 공부하겠습니다.
안녕하세요 대표 강사님인 규식님을 비롯한 여러분의 선생님들을 이렇게 강좌로 볼 수 있다니 너무 반갑습니다. 유튜브 등에서 목소리를 자주 들어서 그런지 내적 친밀감이 느껴집니다. 개인적으로 저는 텐서플로로 배우는 유니티MLAgents 강화학습 교재를 구매하여 독학을 하고 있었습니다.*절판된 책을 어렵게 구했습니다. 하지만 2년여의 시간이 흐르면서 그 사이에 유니티 최신버전이 나오기도하였고 저는 맥북을 이용하고 있어서 독학으로 따라가기에는 부담이 있다고 생각하고 있던 찰나에 이 강좌를 발견하였습니다. 좋은 강의 앞으로 열심히 듣고 많이 배우겠습니다, 감사합니다.
-
미해결게임 프로그래머 취업 전략 가이드
나이, 취업, 어떻게 공부할지에 대해 고민이 있습니다.
강사님 안녕하세요! 제가 너무 궁금하고 고민중이던 부분이 목차에 포함되어 있어서 수강하게 되었습니다 너무 큰 도움됐어요 감사합니당!😁 전 유니티, C#만 조금 공부하다가 베이스는 거의 없는 상태인데 유니티vs언리얼 중에 취업은 언리얼!이라는 것을 듣고 C++ 언리얼로 다시하려고 하고 있고.. (물론 강의에서 말씀하신대로 시간이 되는대로 유니티도 다시 후순위로 만져보려고합니다) 또 학원vs독학 강의를 듣고 학원을 다니고 싶어진 상황입니다. 저는 29살(여)이라서 고민되는 부분이 생겼습니다. 아무래도 Rookiss님 강의에서는 대학졸업 후 차근차근 단계를 밟고있는 어린 취준생분들을 대상으로 염두하시고 계실것같아서 따로 조언 얻고자 질문 드립니다. 유명하다는 학원 두 군데 정도 상담해보니 1년 과정 듣고 30에 취업하는 것이 나이는 아무 문제가 안된다고 그러던데.. 너무 아~무 상관 없다고하니 오히려 영업을 위한 멘트인건지 아닌지 구분이 안됩니다..😥 강사님께서 유니티vs언리얼 강의에서 조금바짝 공부해서 잘못 취업할바에는 1년더 공부해서 처음에 괜찮은곳을 들어가야한다고 하신게 되게 크게 와닿았는데, 그 말이 29살에게도 동일할까요? 아니면 조금 예외여서, 최대한 빨리 취업해서 실무먼저 경험하는게 좋을까요? 이 부분이 궁금합니다.. 어제 밤새 고민하던 선택지는 아래와 같아요. 1) 학원에서 1년 공부로 C/C++, winAPI, MFC/DirectX9, 11 을 배우고 30살 하반기에 취업 2) C++, 언리얼부터 (독학or단과학원) 먼저 익혀서 포폴 작업하여 올해 29살 연말 안에 우선 취업 3) 실무경험, 취업이 급하니 원래하던 C#, 유니티로 포폴 작업하여 최대한 빨리 취업 (=29살 6월 목표) 1번의 경우 시간이 넉넉하지 않은 입장에서도 꼭 DirectX단까지 배워야할까 하는 (아무것도 모르는 초심자의) 의구심도 들고..취업에 실패할경우 31살이 되면 큰일날것 같아서 고민됩니다. 2번의 경우 꼭 필요한 C++과 바로 실무에 써먹는 엔진 위주로 배우면 1번과 3번 사이로 좀 타협되지 않을까 하는 생각인것인데, 언리얼 포폴을 너무 만만하게 보는것인가 싶기도 하구요ㅎㅎ 3번은 뭐.. 나이의 대한 걱정때문에 실무를 최대한 빨리 쌓아야하나 싶은 걱정때문에!ㅎ 학벌도 나이도 경쟁력이 없어서 엄청난 대기업을 목표로 하기엔 설레발일것같고 중기업을 목표로 하고싶은데제가 너무 자신과 타협하려고 하는걸까요?..ㅎ(냉정하게 혼내주셔도 됩니닷...ㅜ) 어떤 선택지가 되던 알고리즘, 자료구조, CS지식 등의 공부는 필수적으로 공부할 예정입니다. 물론 선택은 제 몫이니 정답을 알려달라는 것은 아니고 강사님 의견이 궁금합니다. 글이너무 길었는데 도움주시면 정말 정말 감사하겠습니다!
-
미해결C#과 유니티, 실전 게임으로 제대로 시작하기 (저자 직강)
적 스폰을 특정 오브젝트 크기 내에서만 하게 할 수 있을까요?
적을 렌덤 스폰을 할 때, 좌표 값의 범위를 리터럴 값으로 넣는 것이 아니라, 특정 오브젝트가 점유하는 좌표 범위로 한정할 수 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MMORPG 말고도 다른 게임에서도 이 파트에서 설명해주신 코드로 그대로 사용이 가능한가요?
강의 너무 잘듣고 있습니다! 저도 다른 게임을 개발하면서 서버 관련 강의가 필요해 수강중인데요, 제가 하는 게임은 RPG같은 것이 아닌 미니게임 모음집 같은 게임을 제작 중입니다. 그런데 게임 서버를 하더라도 같은 코드로 진행을 해도되는지 궁금합니다
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
writeLock, writeUnlock, readLock, readUnlock 관련 질문입니다
수업 너무 잘 듣고 있어요! 이 부분은 이해가 잘 안갈거라고 말씀해주셔서 가볍게 보고 있는데도 조금이나마 이해를 해보자 몇 자 남겨봅니다. 0. writeLock, writeUnlock, readLock, readUnlock 이것들의 목적은 무엇일까요? 어떤 상황에서 사용할 수 있을까요? 1. 이해를 돕기 위한 다른 방법이 더있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버 연동 관련 질문드립니다!
강의 너무 잘듣고 있어요! 다름이 아니라 제가 서버를 네이버 클라우드 플랫폼으로 연결해서 사용하려고 하는데, 지금 수업에 쓰는 코드처럼 조금씩 변경해서 사용하면 되는 건가요? 아니면 네이버클라우드플랫폼에서 제공하는대로 사용하면 되는건가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
기본 세팅 질문드립니다!
수업 너무 잘듣고 있어요! 다만 하다보니 궁금점이 생기는데 저랑 쌤이랑 hello world! 출력하는 화면이 조금 다른 것 같은데 세팅문제인지 아니면 신경안써도 되는 건지 궁금해요!
-
미해결
유니티 vscode 빨간줄이 제대로 뜨지 않습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 유니티로 c#강의를 듣고 공부하는 학생입니다. 다름이 아니라 c#익스텐션을 제대로 설치했음에도 불구하고 계속 자동완성이 제대로 안뜨거나, 빨간줄이 제대로 작동을 하지 않습니다. c#익스텐션도 제대로 깔았고 Debug는 D를 치건 De를 치건 아예 자동완성될 기미가 없고 ㅍvoid의 철자를 틀려도 아무런 표시(빨간 줄 ) 이 나타나지 않고.. 왠만하면 그냥 하려했는데 사소한 오타때문에 오랜시간을 잡아먹어서 최대한 빨리해결하고 싶습니다. 전부 다지우고 다깔아도 계속이런데 어떻게 하면 좋을까요? 가르쳐주시면 정말로 감사하겠습니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
-
미해결
유니티 현재 선택된 gameobject 관련 로직 관련 질문드립니다.
안녕하세요 유니티 궁금한 점이 있습니다. 정해진 타입의 선택된 컴포넌트에서만 실행되게 하는 로직인데 NullRefException이 발생하는데 이유가 궁금합니다. void ProgressBarExe() { // Debug.Log($"Select idx :{selected}"); // 재생중인 소스, 현재 활성중인 버튼에서만 동작, NullreferenceException 에러 발생하는 부분입니다. if (EventSystem.current.currentSelectedGameObject.transform.tag == "cellprefab" && EventSystem.current.currentSelectedGameObject.transform.GetSiblingIndex() == selected) { EventSystem.current.currentSelectedGameObject.transform.GetChild(1).GetComponent<Slider>().maxValue = Source.clip.length; EventSystem.current.currentSelectedGameObject.transform.GetChild(1).GetComponent<Slider>().value = Source.time; } } 현재 선택된 곳이 버튼 프리팹이고 selected 인덱스의 AudioSource Source 가 재생중인 경우에는 다른 버튼들이 비활성화 되거나 하는 로직 구현이 궁금합니다. (현재 선택된 곳의 인덱스를 저렇게 가져오는 것 같은데 다른 빈 곳을 누르면 NullRefException 발생하는데 그 이유를 잘 모르겠네요.)