전체 글
-
[유니티] 9강 스프라이트 애니메이션[유니티] 기본 2022. 5. 30. 21:31
이전 시간에는 캐릭터의 이동을 다뤄봤습니다. 캐릭터가 대기를 하거나 캐릭터가 이동을 할때 상황에 맞게 스프라이이트가 선택적으로 그려질수 있도록 해보겠습니다. 1. 이미지 슬라이스, 단일 이미지 처리하는 방법 일정한 크기로 붙어져 있는 스프라이트를 준비했습니다. 우선 대기 동작을 슬라이스 해보겠습니다. 이미지 파일을 선택 => Inspector에 있는 Sprite Mode를 Multiple 변경 => Apply 클릭 => Sprite Editor 클릭 Sprite Editor에서 상단의 Slice 메뉴를 열어서, Grid By Cell Count를 선택하고 이미지가 횡으로 2개가 있으니 2값을 입력하고, 오른쪽에 Apply를 누르고 나가면 됩니다. 이제 이미지 파일 옆 왼쪽으로 보는 화살표를 클릭하면 Sl..
-
[유니티] 8강 캐릭터의 이동[유니티] 기본 2022. 5. 30. 21:30
1강에서 7강까지 내용으로 이번에는 캐릭터의 움직임을 구현해보겠습니다. 바로 리소스를 프로젝트에 폴더에 드래그 & 드롭으로 옮깁니다. 그리고 애니메이션등의 작업을 편하게 하기 위해서 UI를 변경을 했습니다. 사람마다 편한 UI가 있을텐데, 저는 이게 더 편합니다. 프로그래밍 할때, 왼쪽에 WorkSpace 같은 탐색기가 왼쪽 위치해 있고, 오른쪽에 코드를 작성하는게 익숙해져서 그런것 같습니다. 디폴트로 설정한것 보다 훨씬 안정감이 드는것 같습니다. 개인적인 취향이니, 편하신데로 하시면 됩니다. 이제 화면 비율을 설정해볼까 합니다. 유튜브나 흔히들 가장 많이 쓰는 비율인 16:9를 선택했습니다. Hierachy에서 [마우스 우클릭]으로 빈객체를 만들었습니다. 이제 Scripts폴더를 생성하고 해당 디렉토리..
-
[유니티] 7강 Scene 전환시 값의 공유, 유지 및 저장 방법[유니티] 기본 2022. 5. 30. 21:29
1. 클래스 유지하기 1) Intro Scene에서 Phoenix 객체를 만들고, Phoenix 스크립터 생성후 연동시킨다. 2) 새로 생성될때 로드시 파괴하지 말라는 함수 DontDestroyOnLoad 실행한다. 3) 실행결과 Scene 전환시 DontDestroyOnLoad 밑에 Phoenix 객체가 유지됨을 알수 있다. 2. 데이터 저장하기 만약 플레이중에 점수를 획득했다고 하자. Scene이 전환되어 결과 화면에서 획득한 점수를 디스플레이를 하고 싶은데, 데이터가 사라졌으니 표현할 방법이 없어지는것이다. 공유하거나 저장하는 방법을 사용해서 데이터를 전달할 필요가 있다. PlayerPrefs.SetInt(string key, int data); int data = PlayerPrefs.GetInt..
-
[유니티] 6강 Scene 전환[유니티] 기본 2022. 5. 30. 21:29
Scene작업하다가 다른 Scene으로 넘어갈때, 넘어가기전 절대 깜빡하지 저장하고 넘어가자. 1. Intro Scene에서 스페이스를 누르면 Proc Scene을 호출한다. 2. Proc Scene을 열어서 빈객체 ProcMgt 생성후, ProcMgt 스크립트 생성후 연동시켰다. 3. Proc Scene에서 스페이스를 누르면 Intro Scene을 호출한다. SceneManager클래스를 사용하기 위해서 상단에 추가한다. using UnityEngine.SceneManagement; Scene전환하고 싶은 상황에서 호출한다 SceneManager.LoadScene("Scene이름"); 실행해보면 제대로 실행이 안된다. 직접 Scene은 등록을 해야 한다. 드래그 엔 드롭을 해서 간단히 옮기면 된다. 주..
-
-
[유니티] 4강 변수[유니티] 기본 2022. 5. 30. 21:28
일반적으로 접근 제한을 두는데 private, protected, public 사용한다. 이번에는 유니티 Inspector에서 노출 되고 안되고를 다루고, 일반적인 프로그래밍 언어와 다른 Property를 살펴본다. 1. 상황별 Inspector에서 보이기 1) private 으로 선언된 변수는 다른 객체에서 접근(읽기/쓰기)을 못한다. 당연히 inspector에서도 보이지 않는다. 2) public으로 선언된 변수는 다른 객체에도 접근이 가능하기도 하고, 역시 Inspector에서도 잘 보인다. 3) 클래스간에는 접근 권한을 안주고,Inspector에만 보이게 하고 싶다면, [SerializeField]를 한다. 프로그래머 입자에서 유니티가 버전업이 되거나 어쩌닥 프로젝트가 깨지더라도, 프로젝트를 최대..
-
[유니티] 3강 클래스와 컴포넌트[유니티] 기본 2022. 5. 30. 21:27
C#에는 클래스 단위가 최소 단위다. 클래스내의 변수, 즉 멤버 변수끼리 주고 받을수 있는 상호작용을 해야하는데 이번에 그걸 알아보자. 1. 테스트를 위해서, 하나의 객체와 같은 이름의 cs파일을 만들고 서로 연동 시켰다. 2. 새로 만든 IntroObj.cs파일을 열어서 public으로 출력함수를 만들었다. 3. IntroMgt.cs에서 방금 만든 함수를 한번 불러보자. 시작하는 함수에서 해당 객체를 가져와서 방금 만든 함수를 불러왔다.(FindObjectOfType) 출력이 잘 되는것을 확인 할 수 있다. 이쯤되면 눈치가 빤한 사람이면 벌써 눈치챘을것이다. 만들어진거 가져왔을 뿐이다. 직접 만들기보다는(할당/해제) 거의 유니티에 맡기고 값이나 바꾸고 하는게 다다. (어쩌면 이 부분 때문에 기획자나 디..
-
[유니티] 2강 스크립트 생성 및 작성[유니티] 기본 2022. 5. 30. 21:26
1. 프로그래밍을 하면 main()함수가 불리는걸 기준으로 작성하지만, 유니티에서는 스크립트가 독립적으로 직접 불릴수는 없는것 같다. 그래서 최소한 빈 객체라도 만들어서 그 객체 Component로 추가해야 한다. Hierachy 에 있는 +를 누르든가, 마우스 우클릭 하면 메뉴가 뜬다. 이런 저런 복잡하게 객체가 다양하게 많지만, 차차 알아나가기로 하고 지금은 빈 객체 만들자. Intro를 관리하니까 매니지먼트 약자 붙여서 IntroMgt라고 명명했다. 2. 나중에 알게 되겠지만, 폴더로 미리 잘 나눠두지 않으면 파일이 많아서 헷갈린다. 스크립트가 있는 폴더라고 해서 Assets폴더 안에 Scripts폴더를 생성한다. (나중에 게임을 본격적으로 만들게 되면 분류별로 폴더를 세세하게 나눠야할거 같지만, ..