[유니티] 오브젝트와 프리팹
·
Dev log/Unity
우리는 유니티를 공부하다 보면 유사한 오브젝트를 자주 생성해야 되는 경우가 생긴다. 예를 들어 총에서 발사되는 총알 같은 경우 한 탄창에 여러 총알이 들어가야 되기에 같은 세팅의 오브젝트를 여러번 사용하게 될텐데 이럴때 해당 오브젝트를 프리팹으로 만들어둔다면 이러한 반복적인 생성과 삭제에 대한 처리를 할 수 있다. 그렇다면 왜 굳이 오브젝트를 반복적으로 생성, 삭제를 하는 것 보다 프리팹을 사용하는 것일까? 그런 궁금증이 생겨 궁금한 점을 정리하면서 조사를 해보았다. 오브젝트를 하나하나 생성, 삭제를 할 때 장점 반복사용이 적은 오브젝트라면 프리팹보다 더 이점일 수 있다. 단점 반대로 반복이 많다면 생성, 삭제를 위한 비용이 많이 증가하기에 비효율적이다. 종류가 다양해진다면 관리가 복잡해진다. 프리팹을 ..
[유니티] 싱글톤 패턴
·
Dev log/Unity
개발 공부를 하다 보면 여러 디자인 패턴에 대해 많이 알게 된다. 그중 대체로 초반부에 자주 언급되며 배우게 되는 게 아마 이 "싱글톤 패턴"이 아닐까 싶다. 본인도 개발을 하면서 싱글톤 패턴을 잘 사용하는지에 대해, 또 잘 이해하고 쓰고 있는게 맞는지 의문을 가질 때가 있다. 그렇기에 이렇게 포스팅을 통해 싱글톤 패턴을 정리해보려 한다. 싱글톤 패턴 싱글톤 패턴은 오직 한 개의 클래스 인스턴스만 갖도록 보장 인스턴스가 필요할 때, 똑같은 인스턴스를 생성하는 것이 아닌 기존의 인스턴스를 활용하게 함 생성자가 여러번 호출돼도, 실제로 생성되는 객체는 하나 이로 인해서 메모리 낭비를 방지 전역적인 접근을 제공하기에 데이터 공유가 가능 이렇게 여러가지 기능들과 의미가 존재한다. 우리는 이러한 디자인 패턴을 통..
[유니티] 닷지 게임
·
Dev log/Unity
"Retr0의 유니티" 책을 보다보면 처음으로 게임같은걸 만드는 챕터가 아마 이 닷지 게임일 것이다. 해당 프로젝트를 완성하고 영상과 함께 기록하기 위해 포스팅하였다. 버전별 diff는 깃허브 내 README.md에 상세하게 기술해두었다. 구현 영상 Version 1.0 Version 2.0 - 릴리즈 버전 깃허브 https://github.com/0Hooni/Unity/tree/main/Dodge
[유니티 에디터] Mac 글자 깨짐 현상
·
Dev log/Unity
이전부터 유니티 에디터를 쓰면서 에디터의 글자들이 깨지는 현상이 있었다. 이에 관련된 부분을 구글링해도 잘 안나와서 직접 도움을 줘보고자 정리를 해봤다. 본인은 네이버 카페 "유니티 허브"에서 찾아보니 링크를 하나를 보게 돼서 그걸로 해결을 했다. 이 글은 그 해결법을 좀 더 보기 쉽게 정리를 해둔거고 원글은 아래에 링크를 걸어두었다. 문제 상황 위 사진처럼 안내문구가 나와야 되는 상황에서 글자가 뭉개짐을 알 수 있는데, 이 문제를 해결하기 위해 아래와 같이 진행하면 된다. 해결 방법 Edit > Project Settings > Player 에 들어가준다. Other Settings 탭을 확장시킨 후에 Auto Graphic API for MacOS 체크를 해제하고 우측에 보이는 +버튼을 이용하여 Op..
[유니티] MonoBehaviour, 너 누구야?
·
Dev log/Unity
이번 "레트로의 유니티" 2부에서는 전반적으로 유니티에서 사용될 C# 문법에 대해 다루었다. 이전 글에서는 C#스크립트를 생성하면 나오는 기초 함수에 대해 다루었다면, 이번엔 스크립트의 기본 클래스에 계속 상속되어 있는 MonoBehaviour에 대해 다뤄볼 까 한다. 얘는 대체 뭐길래 처음부터 이렇게 상속을 받고 시작하나 궁금했다. 새로 스크립트를 생성할때 기본 이름도 NewBehaviour이고, 뭔가 있을거 같고 궁금해서 이렇게 찾아보게 되었다. 브로드캐스팅 유니티의 모든 컴포넌트는 MonoBehaviour를 상속받는데, MonoBehaviour는 컴포넌트에 필요한 기본 기능을 제공한다. 그렇기에 MonoBehaviour를 상속받은 컴포넌트는 유니티의 제어를 받게 되고, 그렇기에 브로드캐스팅에 관여함..
[유니티] Start, Awake, Update 함수의 특징
·
Dev log/Unity
"레트로의 유니티" 책을 읽어보던 중에 지속적으로 새로운 C# 스크립트를 생성하면 기본적으로 생성되는 함수가 두 가지가 있다. 하나는 Start() 함수이고, 나머지 하나는 Update() 함수이다. 이 둘의 역할에 대해서 궁금해서 블로그 포스팅을 할 겸 적어보며 정리해보려 한다. Start, Update, Awake 함수의 특징 Start() 1번만 실행이 된다. 첫번째 업데이트 함수가 돌기전에 실행된다. 컴포넌트를 받아오거나 다른 함수에서 사용하기 위한 초기화를 도움 Update() 스크립트가 활성화된 상태에서 작동한다. 매 프레임 마다 동작된다. 게임 실행에 필요한 함수들을 담아둠 Awake() 스크립트가 비활성화 된 상태에서도 호출될 수 있다. 게임 시작 전에 초기화를 도움. Start, Awak..
레트로의 유니티 1부 - 이거 완전 쉬워요^^
·
Dev log/Unity
지난번 글에서는 간단하게 유니티를 느껴보는 1장에 대한 이야기였고, 그 뒤에 2~3장은 유니티 에디터에 대한 설명과 유니티에서 사용하게 될 클래스 상속, 오브젝트, 매소드 등에 대한 이야기가 있었다. 유니티에서 오브젝트와 관련된 이야기를 하면서 오브젝트 내부 매소드를 호출하는 방식이 아닌 매소드 내부 일정한 문구에 반응을 하는 메시지 - 브로드캐스트 형식을 사용한다는 부분이 흥미롭게 다가왔다. 이는 아이폰 개발을 할때 사용하던 Notification center와 매우 유사하게 동작하는 방식이었어서 내가 배웠던 이전 지식이 다른 언어를 배울때 이렇게 적용이 될 수 있구나 하며 쉽게 이해도 할 수 있었던거 같다. 아무래도 무슨 공부이던 이론적인 부분은 쉽게 흥미로워지진 않는다. 다만 다른 공부들과는 다르게..
레트로의 유니티 1장 - 이게 Unity식 Hello world?!
·
Dev log/Unity
평소 축구보는걸 좋아해서 새벽 4~5시에 하는 챔피언스리그나 가끔씩 있는 PL경기도 챙겨보는 편인데 오늘 마침 그런 날이었다. 원래 이런 경기가 있을때 다른사람 같으면 보려고 일찍 일어나는데 본인은 부엉이라 밤만되면 눈이 말똥말똥 해진다 ㅋㅋㅋ. 예전에는 그 시간 전까지는 대체로 어영부영 시간을 보내다가 축구를 봤는데 유니티 시작하고자 마음 먹고서는 진짜 신기할 정도로 틈이나면 공부해보고 싶단 생각이 들었다. 그래서 그 어영부영 보내던 시간에 지난번 샀다고 언급한 '레트로의 유니티'를 좀 읽으면서 있다가 보니 1장을 마무리 했다. 1장은 어느 프로그래밍이 시작하는 방법과 같이 IDE에 대한 간략한 설명, 그리고 Hello world 출력이다. 책을 처음에 읽다보니 사길 잘했단 생각이 들었다. 아마 iOS..
0Hooni
'Dev log/Unity' 카테고리의 글 목록