본문 바로가기

ㄱㅔ임 ㄱㅐ발

(7)
무적 기능을 구현해보ㅈㅏ!(코루틴) 오늘은 코루틴을 사용하여 무적 기능을 구현해보도록 하겠습니다! 먼저 저는 두가지 방법을 생각해보았는데 1. bool값 이용 2. layer 이용 이중 bool값을 이용하는 방법에 대해 설명을 해보도록 하겠습니다. 코드 [SerializeField] private bool invincibility; 저희가 무적인지 아닌지 판단할 때 사용하기 위한 bool 형식의 변수입니다. private void OnTriggerEnter2D(Collider2D col) { if (col.CompareTag("Bullet")) { OnDamaged(); } } 저는 2D상에서 구현을 하였기 때문에 OnTriggerEnter2D를 사용하였지만 3D이신 분들은 OnTriggerEnter를 사용해주시면 되겠습니다. 만약 닿은 ..
(유니티) 싱글톤 패턴에 대해 알아보ㅈㅏ! 싱글톤이란? 싱글톤 패턴이란 하나의 인스턴스만 존재하며, 전역적으로 접근할 수 있는 클래스 디자인 패턴 입니다. 어떠한 상황에 사용하는가? 게임 매니저나 오디오 매니저 등 게임 내에 한개만 필요하고 여러곳에서 접근을 할 수 있도록 만들어야 할 때 사용합니다. 싱글톤 사용하는법 싱글톤은 크게 두가지로 나누어서 적용시킬 수 있는데 첫번째로 스크립트에 삽입하는것과 싱글톤 스크립트를 상속시키는 방법이 있습니다! public class GameManager : MonoBehaviour { private static GameManager instance = null; void Awake() { if(instance == null) { instance = this; } else { Destroy(gameObject)..
코루틴에 대해 알아보ㅈㅏ! 오늘은 코루틴에 대해 알아보도록 하겠습니다! 코루틴은 어떤 상황에 사용할까? 보통 코루틴은 특정 행동을 지연시킬 때 사용하게 되는데, Update에서 시간을 지연시키는 행동을 하게 되면 currentTime = Time.deltaTime 이라는 코드를 매 프레임마다 실행시켜줘야해서 비효율적인 코드가 됩니다. 이러한 상황속에서 코드의 비효율적인 부분을 고칠 수 있는 게 코루틴입니다. 코루틴은 어떻게 선언할까? 코루틴을 선언할 때는 앞에 IEnumerator를 붙여줘야 합니다. IEnumerator TimeCheckCoroutine() { //cooooode yield return new WaitForSeconds(3f); } 이후 코루틴 함수 내에 제어권을 돌려주는 yield return을 적어줘야 하죠...
똥 피하기 게임을 만들어보ㅈㅏ!(3. Instantiate를 사용하여 똥을 만들기, 게임 빌드하기) 이번 시간에 똥 피하기 게임을 완성하도록 하겠습니다! 시작하기 앞서 저희는 Prefab이라는 개념을 배우고 들어가겠습니다. Prefab이란? 재사용이 가능한 GameObject를 말합니다. 프리펩은 보통 같은 컴포넌트가 붙어있는 여러 오브젝트(적 몬스터, 나무, 건물 등)를 만들 때 사용됩니다. 왜냐하면 오브젝트를 만든 이후 수정이 필요할 때 Prefab의 경우에는 부모 프리펩에서 바꾼 값이 자식 프리펩에 적용되기 때문에 매우 편리하게 여러 오브젝트의 값을 바꿀 수 있습니다. 이제 직접 만들어봅시다! 만드는 방법은 간단합니다. 하이라키창에서 Poop 오브젝트를 프로젝트 창으로 끌어다 두시면.. 오른쪽 하이라키 창에 있는 poop의 아이콘이 파란색 상자로 변했으면 Prefab화 된 겁니다! 이번엔 Poop..
똥 피하기 게임을 만들어보ㅈㅏ!(2. 플레이어와 똥 오브젝트 만들기, Rigidbody와 Collider 이해하기) 이번엔 게임 씬을 구현하겠습니다! 게임 씬에는 플레이어와, 플레이어가 떨어지지 않도록 막아주는 바닥, 똥 오브젝트, 똥 오브젝트를 생성해줄 스크립트가 필요하겠네요! 먼저 바닥부터 만들어보죠! Square를 한 개 만들고 Square의 이름을 Ground로 바꿔주겠습니다. 이후 Add Component에서 Boxcollider 2D를 추가해줍시다! 이제 이 오브젝트를 카메라의 아래에 깔아줍니다. 바닥은 이게 끝입니다. 정말 쉽죠? 다음으로 만들건 플레이어입니다. Circle 오브젝트를 하나 만들고 이번엔 이름과 태그를 Player로 바꾸겠습니다. 저는 사이즈랑 색을 조금 바꿔줬습니다! Player오브젝트에 rigidbody 2D와 Circle Collider 2D를 추가해주고 플레이어 코드를 작성하러 가기..
똥 피하기 게임을 만들어보ㅈㅏ!(1. 타이틀씬 만들기) 버전은 2021.3.8f1을 사용하였습니다. 와우 오늘부턴 간단하게 똥 피하기 게임을 만들어 봅시다! 매우 매우 쉬우니 겁먹지 마시고 한번 같이 해보죠!! 먼저 똥 피하기 게임이 뭐냐! 똥 피하기 게임은 위에서 내려오는 오브젝트에 플레이어가 맞지 않도록 조작을 해야 하는 게임입니다. 만들기 전에 먼저 정리를 해보죠 순서도로 만들면 이렇게 나오겠군요! 그럼 우리는 이제 타이틀씬과 메인 게임 씬, 게임 오버 씬을 만들 겁니다. 이제 유니티 프로젝트를 열어보죠, 저번 시간에 만들었던 프로젝트를 사용하셔도 괜찮고 아니면 새 프로젝트를 만드셔도 됩니다! 프로젝트를 열고 타이틀씬부터 만들어주겠습니다. 타이틀 씬에는 시작 버튼과 게임 종료 버튼이 있어야 합니다. 하이라키 창에서 우클릭> UI> Button을 클릭하면..
유니티 인터페이스를 공부해보ㅈㅏ! 버전은 2021.3.8f1을 사용하였습니다. 오늘부터 취업준비겸 학교 후배들에게 조금이나마 도움이 되길 바라는 마음에 게임 개발에 대한 글을 써보려고 합니다! 먼저 유니티에서 처음 프로젝트를 열게되면 이러한 화면이 나오게 될겁니다. 한번 천천히 알아가보죠! 먼저 맨 왼쪽에 보이는 이 창은 하이라키(Hierarchy)창 이라고 부릅니다. 여기에는 현재 씬에 있는 모든 오브젝트가 계층 구조 형태를 띄며 들어가게 됩니다. 가운데에 위치한 이 화면은 각각 씬뷰(SceneView)와 게임뷰(GameView)라고 부릅니다. 씬뷰에선 현재 씬의 전체적인 오브젝트의 배치나 크기 등을 시각적으로 확인할 수 있고, 게임뷰에선 유니티 에디터에서 게임을 직접 실행시켜보며 동작 상태를 확인할 수 있습니다. 가장 오른쪽에 위치한..