본문 바로가기

전체 글

20. Scene 추가 Project에서 마우스 우클릭으로 새로운 Scene 추가 다른 Scene에 있는 오브젝트를 복사 붙여넣기 Scene을 원하는 대로 수정하고(맵핑 제대로 되있는지 확인), Build Settings -> Add Open Scenes 클릭해서 Scene 추가 더보기
UI버튼이 안눌릴 때 UI버튼이 눌리지 않을 때 원인 1. 눈에 보이지 않는 어떤 UI오브젝트가 버튼을 가리고 있음 2. Canvas만 있고 EventSystem이 없음 3. Navigation이 Auto로 되있음 (버튼이 눌리다 갑자기 안눌릴 때) -> Auto를 None으로 바꾸기 더보기
오브젝트 색깔이 칙칙하게 나올 때 LoadScene 함수를 사용하거나 혹은 다른 상황에서 오브젝트가 아래처럼 칙칙하게 나올 때 상단 메뉴 Window -> Rendering -> Lightning 이동 후 하단 Generate Lightning 클릭 Generate Lightning 클릭 후 폴더가 생성됨. Scene 파일 마다 반복작업할 것. 더보기
19. 스테이지 이동 Item 5개를 먹고 노란색 골인 지점에 들어가면 다음 스테이지로 넘어가는 로직을 구현해 보겠습니다. 다음 스테이지로 넘어가는 기준은 Item 5개를 먹었는가? 인데, 게임 전반에 대한 로직 관리는 보통 gameManager 라는 스크립트를 따로 만들어 관리합니다. Hierarchy에서 빈 오브젝트를 만들어 GameManager이라 이름을 붙이고 GameManager 스크립트를 만들어 넣어 주겠습니다. 그리고 이 안에 다음과 같은 코드를 주어 현재 Stage 번호와, 먹어야하는 Item 갯수를 적어주겠습니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameManager :.. 더보기
18. 카메라 이동으로 플레이어 따라가기 게임에서 흔히 보이는 3인칭 시점을 간단하게 구현해보겠습니다. 먼저 Scene창에서 카메라를 적당한 위치에 놓습니다. 플레이어 공이 움직이는 대로 카메라가 따라가려면 플레이어 공의 Position 정보를 카메라에도 줘야합니다. C#스크립트를 생성해 카메라에 줍니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraMove : MonoBehaviour { Transform playerTransform; //Player의 transform 정보를 담을 변수 선언 void Awake() { playerTransform = GameObject.FindGameObjectWithT.. 더보기
17. 오디오 넣고 재생하기 유니티 상단 메뉴 -> Window -> Asset Store에서 에셋스토어에 접속할 수 있습니다. 물론 그냥 구글에 쳐도 나옵니다. 무료 에셋을 체크하면 편하게 볼 수 있습니다. 아래 Casual Game Sounds 에셋을 클릭하고 다운로드 합니다. 아까의 상단메뉴 Window -> Package Manager에서 다운받은 에셋들을 관리할 수 있습니다. Project에 쓸 에셋을 우측하단에 Import를 눌러 불러와줍니다. 그럼 이렇게 Project에 내가 Import한 에셋 폴더가 생깁니다. 이제 오디오를 재생할 오브젝트에 오디오 컴포넌트를 넣어줍니다. 저는 PlayerBall에 오디오 컴포넌트를 넣어주겠습니다. Project에 있는 오디오 파일 중 하나를 AudioClip에 드래그 앤 드랍하거나,.. 더보기
16. 아이템 먹기 구현 플레이어 공이 아이템을 먹고, 점수가 1점씩 증가하는 걸 구현해 보겠습니다. 우선 PlayerBall 스크립트에 itemCount 변수를 선언합니다. PlayerBall 소스코드 public int itemCount; Item 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Item : MonoBehaviour { public float rotateSpeed; void Update() { transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime, Space.World); } void OnTriggerEnter(Collider othe.. 더보기
15. 공중에 떠 있는 아이템 만들고 회전시키기 아무 오브젝트를 하나 만들어주고, C#스크립트를 만들어 넣어줍니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Item : MonoBehaviour { public float rotateSpeed; void Update() { transform.Rotate(Vector3.up * rotateSpeed * Time.deltaTime, Space.World); } } Rotate함수 2번째 매개변수로 준, Space.World는 오브젝트의 좌표계를 World좌표계로 정함을 말합니다. defalut 값은 Local입니다. 따라서 아무것도 적지않거나, Space.Self는 Local.. 더보기