소개
게시글
질문&답변
if (CharacterController.isGrounded) currentVelocityY = 0f;
C# 프로그래밍 기본 마지막 강의인 오브젝트와 클래스? 를 다시 들어보세요. 마지막에 rb 변수를 선언하는데 그 rb가 멤버변수 입니다. 즉 public Rigidbody m_Rb; 라고 선언했겠네요. 멤버변수를 선언하는 이유는 제민님이 잘 알려주십니다. 말 그대로 컴포넌트들을 게임오브젝트에 갖다 붙이고 갖다 붙인 애들을 갖고 놀려고 멤버변수로 선언한 것들에 적용시켜서 코딩을 하고 갖고 놀겠다는 뉘앙스로 생각하시면 됩니다. 허나, 위의 PlayerMovement 스크립트의 경우 유니티 인스펙터 창에서 그런것들이 안보일겁니다. (그런 것들이란, 멤버변수로 선언한 Animation, PlayerInput, characterController 등) 왜냐하면 public이 아니라 private 으로 선언했기 때문입니다. +추가) 더 앞에 있는 선수 강의인 게임 엔진의 원리 : 게임 오브젝트와 컴포넌트로 다시 들어보세요. 여기서도 후반부에 똑같은걸 설명하시네요.
- 0
- 6
- 363
질문&답변
if (CharacterController.isGrounded) currentVelocityY = 0f;
if (CharacterController.isGrounded) currentVelocityY = 0f; 가 아니라 if (characterController.isGrounded) currentVelocityY = 0f; 입니다. 대문자로 작성하셔서 그렇습니다. PlayerMovement.cs 에서 제일 위에 보면 멤버변수들을 선언하고 있어요. private CharacterController characterController; private PlayerInput playerInput; private Animator animator; 이런 식으로요. 이제민 강사님께서 변수들의 자료형과 변수명들을 동일하게 쓰되 대문자 소문자만 바꿔 쓰셔서 헷갈리신 것 같습니다. 저같은 경우는 멤버변수를 선언할 경우는 다른 지역변수나 위와 같은 헷갈림을 방지하기 위해서 변수 선언시 앞에 m_ 를 사용하고(스몰엠 언더바 로 읽습니다) 뒤에 변수명이 길어질 경우는 조금 줄이는 편입니다. (사실 멤버변수를 선언하는 방식 중 m_ 는 고전방식이고 요즘은 _언더바만 사용하도록 변해가는 추세라고 합니다) 이런 식으로 지을 수 있겠네요. private CharacterController m_CharCtrl; private PlayerInput m_PlayerInput; private Animator m_Anim; 이런 식으로 지었을 경우, 위의 if문의 내용은 if (m_CharCtrl.isGrounded) { currentVelocityY = 0.0f; } 라고 쓸 수 있겠습니다. 일반적으로 모든 변수는 대문자가 아니라 소문자로 시작하는 것이 국룰인데 이에 대해서는 파스칼 표기법, 카멜 표기법 등으로 검색하시면 잘 알 수 있습니다.
- 0
- 6
- 363
질문&답변
if (CharacterController.isGrounded) currentVelocityY = 0f;
정확히 어떤 코드인지는 알 수가 없으나 함수를 static 으로 선언하시면 항상 메모리에 로드되어 있기 때문에 오류가 안뜰겁니다. static 으로 선언하지 않거나 해선 안되는 경우엔, 그냥 new 로 개체를 생성해주세요.
- 0
- 6
- 363
질문&답변
안녕하세요 강의와는 관련 없을수도 있는 질문입니다.
유니티 에디터에서 Edit - Preferences 에서 External Tools 에 External Script Editors 가 기본적으로 Open by file extension 으로 되어있을텐데 이걸 Browse로 비주얼 스튜디오가 설치되어있는 실행파일을 찾아서 비주얼 스튜디오로 켜주면 작동될 겁니다. Visual Stuido 2017 기준 위치는 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE 이고 실행파일은 devenv.exe 입니다. 이렇게 해도 안될 경우 .NET Framework 를 최신버전으로 설치하시길 바랍니다.
- 0
- 2
- 326