월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
도대체 어떤 오류인지 모르겠습니다. 갑자기 이런 오류가 납니다. 제발 도와주세요ㅜㅜ
Win32Exception: ApplicationName='C:\Program Files\Unity\Editor\Data\Tools\RoslynScripts\unity_csc.bat', CommandLine='/noconfig @Temp/UnityTempFile-ba6ab091483534d4c8005ffa081b9d1f', CurrentDirectory='', Native error= 지정된 파일을 찾을 수 없습니다. 유니티를 실행하면 자동적으로 이 오류 메시지가 뜨면서 오브젝트에 스크립트를 붙일 수가 없습니다. can't add scripts 뜨면서 거부되네요 ㅜㅜ 혹시 해결법이 있을 까요? 아무리 찾아봐도 못 찾겠어서;;;; 재부팅해도 해결 안되고 유니티를 재설치 해도 해결이 안됩니다;;;
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Inven_Item 을 불러오는 과정에서 자꾸 에러가 뜹니다.
nityEngine.GameObject.GetComponentsInChildren[T] (System.Boolean includeInactive) (at <ca496b8c93454b2f9b9924292c19379f>:0) UnityEngine.GameObject.GetComponentsInChildren[T] () (at <ca496b8c93454b2f9b9924292c19379f>:0) Utill.FindChild[T] (UnityEngine.GameObject go, System.String name, System.Boolean recursive) (at Assets/Script/Utills/Utill.cs:44) UI_Base.Bind[T] (System.Type type) (at Assets/Script/UI/UI_Base.cs:26) UI_Inven.Init () (at Assets/Script/UI/Scene/UI_Inven.cs:17) UI_Inven.Start () (at Assets/Script/UI/Scene/UI_Inven.cs:35) 요 에러가 자꾸 발생하네요.. Inven을 불러오고 거기에 스크립트까지 붙는건 확인을 했는데, gridPanel을 불러오고, 아이템을 불러오는 과정에서 뭔가 에러가 있는거같아요..ㅠ 코드정리 파일 받아서 비교해보아도 이상한 부분이 없어서 도움 요청 드립니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강사님 InputManager에서 Action delegate를 쓰신 이유가 궁금합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아직 많이 부족한 초보입니다 InputManager 강의에서 Action 대리자를 쓰셨는데 Action 대리자를 쓰신 이유가 궁금합니다.. (delegate보다 편해서 인건지, 메서드를 꼭 받아야만 했던 것인지 ㅠㅠ) 그리고 InputManager를 구현할 다른 방법이 또 있는건지도 궁금해요!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
stats에 s안붙였다고
맨마지막에 브레이크 걸고 확인하는 부분에서 확인해보니까 data에 아무런 값도 저장되있지않아서 확인해보니 json부분에 s하나를 빼먹어서 그걸 붙였더니 제대로 저장이 되던데 근데 궁금한게 왜 stat부분에 s를 빼먹었다고 파일 이 저장이 안되는건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
3D 사운드 질문
영상을 보니까 큐브에 사운드 소스를 붙여서 3d사운드의 거리사운드를 조절하던데 직접 그렇게 해보니까 안되고 @Sound에 붙어있는 사운드소스를 조절해야 되던데 혹시 제가 놓친게 있나요? 아니면 영상에서 안나오는 작업을 미리해놨다던가?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
강사님! 에러가 발생헀는데 ㅠㅠ
제가 받아 쓴 스크립트가 문제인지 아니면 뭐가 문제인지 모르겠어요.ㅠㅠ using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static Managers s_instance; //static_instance /유일성이 보장된다. static Managers Instance { get { return s_instance; } } //Property 방식으로 가져옴. InputManager _input = new InputManager(); public static InputManager Input { get { return Instance._input; } } void Start() { Init(); } void Update() { _input.OnUpdate(); } static void Init() { //if(Instance == null) if(s_instance == null) { GameObject go = GameObject.Find("@Managers"); //@Managers 옵젝의 이름을 찾는다 if(go == null) //만약 @Managers 옵젝의 이름이 없다면! { //새로 생성을 해준다. go = new GameObject { name = "@Managers" }; //새로 생성을 하는데, 이름을 @Managers로 새로 생성 go.AddComponent<Managers>(); //@Managers 오브젝트 생성을 했다면, Manager 컴포넌트(스크립트)를 추가해줌. } DontDestroyOnLoad(go); //삭제가 되지 않도록 작업함! //Instance = go.GetComponent<Managers>(); s_instance = go.GetComponent<Managers>(); } } } using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class InputManager//싱글톤으로 일반적인 C# 파일로 만들 것이다. { public Action KeyAction = null; //여기서 Action이 빨간 줄이 뜬다면 using System; 을 써준면 된다. //일종의 델리게이트 문법이다. public void OnUpdate() //이렇게 작업을 하면 캐릭터가 아무리 1000개가 되도 이 루프마다 //1회만 체크! { if (Input.anyKey == false) return; //키를 입력할 경우 if (KeyAction != null) KeyAction.Invoke(); } } using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerController : MonoBehaviour { [SerializeField] //private으로 지정된 변수를 유니티에 보이도록 작업한 것! float mSpeed = 10.0f; void Start() { Managers.Input.KeyAction -= OnKeyborad; //혹여 키보드를 두번 클릭할 경우 에러 나지 않도록! Managers.Input.KeyAction += OnKeyborad; } void Update() { } void OnKeyborad() { //키보드 WSAD으로 움직이기 if (Input.GetKey(KeyCode.W)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.forward), 0.2f); transform.position += Vector3.forward * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.S)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.back), 0.2f); transform.position += Vector3.back * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.A)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.left), 0.2f); transform.position += Vector3.left * Time.deltaTime * mSpeed; } if (Input.GetKey(KeyCode.D)) { transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(Vector3.right), 0.2f); transform.position += Vector3.right * Time.deltaTime * mSpeed; } } } 이렇게 소스코드를 입력하고 유니티에서 재생을 해서 확인하는데 아래 이미지처럼 오류가 났다고 하는데 무슨 말인지 모르겠습니다 ㅠㅠ 도와주세요!ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Poolable을 할 객체를 판단하는 기준을 어떻게 잡는게 좋을까요?
프리팹 자체가 애니메이션도 붙어있고 매우 많은 컴포넌트들과 많은 상호작용을 위한 자식오브젝트들도 많은 그런객체 프리팹의 오브젝트 풀링을 하는것과 정말 단순히 한두개의 컴포넌트만 가진 예를들면 스프라이트 이미지같은것들의 프리팹과 혹은 투사체나 총알같은 이동기능을 가진 일반적인 객체들 이렇게 세가지 경우가 있을 때, 각각 똑같이 10개의 객체를 만든다고 하면 어떤건 풀링을 하고 어떤건 하지않는경우가 있나요? 두번째로 일단 풀링의 개념자체가 최소한 새로 만들어서 디스트로이하는 것 보다는 한번 만든 객체를 SetActive true false 하는거만으로도 성능향상을 조금이나마 볼 수 있다면 단 한개의 객체라도 새로만드는것보단 풀링을 하는게 도움되는건 맞나요? 마지막으로 이동기능을 가진 총알 객체가 한 씬에서 100번 쓰일수도 있고 10000번 쓰일수도 있을텐데 보통 풀링을 하면 좋겠다, 라는 판단이나 기준을 어떻게 세우면 좋을까요? 단순히 렉이 걸리면 풀링을 써야지 라고 하기엔 또 구동환경에 따라 다를 것 같아서요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
이동 관련한 문제입니다
움직임이 강좌 전과 다르게 클릭을 해야만 움직여집니다. 디아블로와 다르게 꾹 마우스를 누르면 그대로 움직여지지 않고 전에 움직였던 대로만 움직입니다. PlayerController와 InputManager 코드는 강사님의 코드와 동일한 것 확인했습니다 ㅠㅠ 어디서 문제가 있는걸까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
dictionary 질문
이부분에서 저 _objects.Add(typeof(T), objects); 부분에서 분명 밸류값이 빈 배열값이었거든요? 근데 뒤에 for문 돌리고 대입을 하면 _object의 밸류값도 같이 채워지던데 근데 대입을 하기전에 먼저 add를 했는데 먼저 add하고 나중에 값대입을 해도 dictionary는 채워지나요? debug로 확인하니까 채워지길래
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
경고 질문
몬스터 AI #2 강의를 9분 43초까지 듣고 실행해본 결과 아래 사진과 같은 경고와 널리퍼런스 오류들과 함께 플레이어가 움직이지 않았습니다 그리고 멀리 떨어져있던 몬스터가 쫓아와서 공격을 하더라구요 이와 같은 상황은 어떻게 해야할지 모르겠습니다...
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
질문 있습니다
제가 체력게이지를 강의를 들으면서 똑같이 만들었는데 왜 널리퍼런스 오류가 뜨는지 모르겠습니다. 코드도 보면서 따라만들었는데도 HP바가 늘어나더니 계속 초마다 널리펀스 오류가 갱신되더라구요... 찾아보니까 float ratio = _stat.Hp / (float)_stat.MaxHp; 위 코드에서 널리퍼런스가 나오고 있었습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
7분 18초 c# 문법 동적
아직 기초가 부족하다고 느끼는 코린이 입니다. 7분 18초 쯤에서 AudioSource[] _audioSources = new AudioSource[(int)Define.Sound.MaxCount]; { new } 에서 { new } 하시는 부분이 어떤 문법인지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Awake질문
15:27초에서 GameScene에서 혹시나 까먹고 Start,Awake를 안써줘도 BaseScene에서 Awake() { init() } 하게되면 작동한다고 말씀하셧는데 그 원리가 BaseScene을 상속받는 아이의 init함수는 BaseScene의 virtual init()과 함께 다같이 실행되기 때문에 그렇게 말씀하신건가요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UI_Inven_Item 여러개 생성 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 현재 UI_Inven_Item잘 생성이 됩니다. 클릭하였을때 숫자도 잘 올라가고하는데 GameScene에서부터 시작해서 계속 타고 가면서 코드를보았는데 실행을하면 유니티에서 사진처럼 @root산하에 GridPanel잘들어가있고 UI_Inven아이템도 잘 들어 가있습니다. 근데 그냥 사진처럼 UI_Inven_Item이 밖에 8개가 더 생성이 됩니다... 혹시나 두번 도는것인지 보기위해서 UI_Inven.cs의 for문안에 Debug.LOg("HI!")를 찍어봤는데 8번만 찍히구요 왜 그런지 모르겠습니다... 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
GameScene에서 인스턴스화 할때 애니메이션 재생 에러 관련 질문 드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. c++ 서버 수업 듣고 재밌어서 그만 유니티까지 들으러 와버렸습니다ㅎㅎ.. 질문드릴 게 생겼는데, 이틀동안 여러가지 검색어로도 찾아보고, 혼자서 머리도 굴려봤는데, 답을 찾기가 쉽지 않아서 질문드립니다. Prefabs/knight를 선택해서 드래그로 하이라키로 미리 올려놓은 프리펩은 아무런 문제 없이 애니메이션이 재생되지만, 코드 상에서 Spawn시킨 프리펩들은 인게임 화면에서는 애니메이션이 재생되지 않는 문제입니다. 이게 혹시 초기화할 때 애니메이션 클립이 제대로 세팅되지 않은건가 하고 디버그로 클립을 확인해봐도 제대로 등록이 되어있고, Animator 상에서도 ScanRange에 들어가면 RUN 클립이 제대로 재생되는 것 까지 확인했는데, 정작 인게임 화면에서 애니메이션이 재생되는 게 아니라 아무것도 안 하고 있는 상태로 그냥 speed*_deltaTime 속도로 순간이동 해옵니다.(ATTACK 아무 모션 없이 HP만 감소시킴) 한편, 런타임 중에 그냥 프리펩을 드래그해서 생성시킨 오브젝트 역시 애니메이션이 먹통이 되버립니다. 이 부분에서 저는 '하이라키에 미리 올려둔 프리펩을 제외한 모든 프리펩들, 즉 런타임에 생성한 오브젝트들은 싹 다 먹통이다' 라는 뇌피셜로 검색을 더 해봐서 결국 임시 해결책을 찾긴 했습니다. 바로 animator 컴포넌트를 체크 해제후 다시 체크하는 방법이 유효했습니다. 이 방법대로 Spawn으로 생성시킨 프리펩에 대해서, 플레이어를 락온 하지 않은 상황에서 Animator 컴포넌트를 직접 손으로 체크해제 했다가 다시 체크를 하면 애니메이션이 정상적으로 작동합니다. (락온한 상황에서는 Animator 컴포넌트를 조작해봤자 정상적으로 애니메이션이 작동하지 않습니다) 이를 자동화 하기 위해서 Spawn함수에서 _monsters.Add(go) 이후 go.GetComponent<Animator>를 anim으로 해주고, anim.enabled = false; anim.enabled = true; 로 추가해주니 잘 작동하는데, 이 방법이 깔끔하다고 생각되지는 않네요...ㅠ 이게 해결 방법이야 어찌됐든 억지로 찾아냈지만, 원인 파악이 도저히 안 됩니다. 코드 상의 문제였다면 하이라키에 미리 올려놓은 프리펩만 정상적으로 작동하는 것이 기이하기 때문에 코드 상의 문제는 아닌 것 같고 아무리 봐도 유니티 엔진 자체 초기화 과정 문제이거나 유니티 애니메이션 시스템에 대한 이해부족이 원인인 것 같긴 한데, 이거야 제 뇌피셜일 뿐이고 혹시 비슷한 상황이 있으셨는지 질문드립니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Awake()와 Start()에 대해 문득 생각하니 궁금한 게 생겼습니다.
Awake()와 Start()함수 둘 다 초기화 과정으로 오브젝트가 활성화 할 때 딱 한번 씩 호출하는 함수인 걸로 알고 있는데 그렇다면 왜 초기화 과정에서 Awake와 Start 함수 두 종류가 있는지 왜 Awake를 Start보다 먼저 호출해야 하는지 궁금합니다....
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
static 질문드리겠습니다!
MonoBehaviour를 상속받은 클래스안에 static 변수를 선언하고 이 C# 스크립트가 현재 유니티 프로젝트 에셋 폴더안에 있으면 씬이나 게임 오브젝트에 이 스크립트를 컴포넌트로 붙이지 않아도 Static 변수는 정적으로 할당되는건가요? 그렇기 때문에 static Managers s_Instance; static Managers Instance { get { Init(); return s_Instance; } } 여기에 브레이크 포인트 걸어 놓으면 바로 걸리는거 맞나요?
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
싱글톤 패턴 관련 질문드립니다
직접 만든 게임을 모바일에서 출시해보고 싶어 유니티 공부를 시작했는데 서적이나 유튜브 강의를 보다보면 거의 싱글톤 패턴을 사용하며 권장하고 있습니다. 여러 커뮤니티에서 싱글톤패턴은 사용하면 안좋은점이 많고 사용하지 말아야 할 문제점 처럼 이야기 하는것을 보게되었는데실질적으로 사용을 피해야하는 안좋은 코딩 방법인지, 사용한다면 개발하는데 제한이 있는 장르가 생기는지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
PullManager의 Push 함수에서 그냥 Destroy를 하는 이유는 뭔가요?
PoolManager의 Push 함수에서 거의 일어날 일은 없지만 만약 pool Dictionary에 push 하고자 하는 객체가 없다면 그냥 해당 객체를 Destroy 하던데 다른 경우에는 CreatePool로 따로 처리를 하던걸 Push에선 Destroy로 처리하는 이유가 혹시 있나요? 해당 일이 일어나는 경우가 툴로 직접 오브젝트를 생성하면 일어날수 있다고 말씀하셨는데 그렇게 생성된 오브젝트는 스크립트로 관리하기 힘들어서 그냥 삭제를 해주는건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
UnassignedReferenceException에 대해 문의드립니다.
UnassignedReferenceException: The variable _player of CameraController has not been assigned. You probably need to assign the _player variable of the CameraController script in the inspector. CameraController.LateUpdate () (at Assets/Scripts/Controllers/CameraController.cs:29) 위 오류가 뜨면서 실행하면 카메라가 플레이어를 따라가지 않습니다. 올린 파일을 그대로 사용해도 여전히 오류가 생기네요. 유니티와 비주얼 스튜디오 버전은 최신버전입니다.