2024/08 14

유니티 - Unity Recorder(유니티 레코더)를 사용하여 게임 화면을 녹화해보자.

요 며칠 만든 게임을 설명하기 위해 영상을 가져와 사용했었다.이때 외부 영상 촬영 도구를 사용했었는데,유니티 내에 게임 화면을 녹화할 수 있는 기능이 있었다는 걸 기억해 냈다.(하필 다 하고 나서 떠오름;; ㅜ) 바로 Unity Recorder다.  오늘은 Unity Recorder 사용법에 대해 알아보겠다.   Recorder를 사용하기 위해선 먼저 Package Manager를 통해 Recorder를 추가해야 한다. Window -> PackageManager -> Unity Registry 클릭 후 검색창에 Recorder를 검색해 추가하자.    추가했다면 이제 Recorder 기능을 사용할 수 있다. window -> General -> Recorder -> Recorder Window를 통해 ..

카테고리 없음 2024.08.30

유니티 - 미니프로젝트 #2-1 : 수박게임을 따라 만들어 보자.

원래는 게임을 다 만든 후에 글을 작성하려고 했으나만들어 가는 과정을 올리는 것도 나쁘지 않을 것 같아서 부족하지만 올렸다. 유니티로 간단하게 따라 만들어 볼 만한 게임이 뭐가 있나 찾아보다한때 유행했던 수박게임(정확한 명칭은 Suika game)이 떠올랐고, 곧바로 시도해 보았다. 수박게임 유니티로 모방하며 만드는 영상 이전과 마찬가지로 이미지는 빙 이미지 크리에이터를 통해 만든 걸 사용했다.  구조를 간단하게 설명하자면 마우스 버튼을 클릭하면 과일이 떨어지고,과일과 과일이 부딪히면 더 큰 과일로 변하는 게임이다. 최종단계의 과일을 만들어내면 게임은 승리로 끝이 나며,가장 최종 단계의 과일을 만들기 전위에 보이는 검은 선에 과일이 닿으면 게임 오버되는 간단한 구조다.  처음엔 BoxCollider를 벗..

미니 프로젝트 2024.08.30

유니티 : 미니 프로젝트#1(완) - 낚시 게임을 따라 만들어 보자

최근에  "아일랜드 타임 ~느긋한 농장생활~" 이라는 모바일 게임을 접했다.간단히 설명하자면 모바일 버전의 스타듀벨리 되시겠다.  아직 출시된 지 한 달 정도밖에 안돼서 콘텐츠가 많이 없긴 하지만 농장류 게임을 처음 접해서 그런가 재미있더라.  " 아일랜드 타임 ~느긋한 농장생활~"  낚시 장면  플레이 하면서 낚시 미니 게임이 있길래 유니티를 활용해 간단하게 따라 만들 수 있을 거 같아서 시도해 봤다.  유니티로 따라 만든 낚시 게임 영상 물고기 이미지는 빙 이미지 크리에이터를 통해 만든 걸 사용했다. 구조를 간단하게 설명하자면 OnTriggerStay2D로 물고기가 판정 범위 안에 있으면 게이지가 올라가고 끝까지 도달하면 CancleInvoke를 통해 물고기가 멈추도록 했다.  좌우 버튼을 통해 물고..

미니 프로젝트 2024.08.28

유니티 : 오브젝트 풀링(Object Pooling)에 대해 알아보자

오늘은 최적화 기법 중 하나인 오브젝트 풀링에 대해 알아보고자 합니다.  왜 사용하는가? 게임을 하다보면 오브젝트를 생성하거나파괴하는 작업을 반복해야하는 경우가 많습니다.  생성과 파괴를 하는 과정에서 메모리는이에 대해 새롭게 할당 및 해제하는 작업을 하게 됩니다. 오브젝트가 적을때는 상관 없지만 많아질 경우CPU에 부담이 갈 수 있을 뿐 아니라, 메모리를 해제하는 작업에서 가비지 컬렉터가 발생하게 됩니다.이 또한 CPU에 부담을 가중 시킬 수 있습니다.  https://docs.unity3d.com/kr/2021.3/Manual/performance-garbage-collector.html 가비지 컬렉터 개요 - Unity 매뉴얼Unity에서는 가비지 컬렉터를 사용하여 애플리케이션과 Unity에서 더 ..

유니티 : 렌더러 우선순위 정하기 (2D)

3D에선 환경 특성상 어떤 물체가 앞에 있고, 뒤에 있는지 한눈에 파악하기 쉽습니다.하지만 2D는 그렇지 않죠. 이미지가 겹치는 것처럼 보일 겁니다. 이미지가 겹치는 경우특정 이미지를 앞에 있는 것처럼 보이게 하고 싶다면 어떻게 해야 할까요?  오늘은 이에 대해 알아보고자 합니다.  여러 가지 방법이 있겠지만 그중 몇 가지 방법을 정리하고 간단하게 설명해 보겠습니다. https://docs.unity3d.com/6000.0/Documentation/Manual/2DSorting.html Unity - Manual: 2D Sorting2D Sorting Overview Unity sorts Renderers according to a priority order that depends on their typ..

유니티/2D 2024.08.26

2024 내일 배움캠프(Unity_6기) _ 사전캠프 9일차(08.23) : 화면 해상도 설정과 UI

오늘은 유니티의 게임 화면 해상도를 변경하는 법과변경한 해상도에  맞춰 UI 위치를 조절 하는 방법에 대해 다뤄보도록 하겠습니다.  게임 화면의 해상도를 조절하는 방법은 다음과 같습니다. Game 화면에서 Free Aspect 부분을 클릭하면 해상도를 설정 할 수 있습니다.원하는 비율이 없다면 아래 + 버튼을 눌러수치(가로, 세로)를 입력한 후 추가하여 사용 가능합니다.  해상도를 변경했더니 UI가 어색하게 보입니다.  이런 경우 어떻게 해야 할까요? 개발 환경과 실제로 플레이하는 화면의 해상도가 다를 때 UI 오브젝트가 화면 밖으로 나가버리거나 잘리거나 겹치는 상황이 발생할 수 있습니다. 이를 해결 할 수 있는 여러가지 방법이 있겠지만 그 중 몇가지를 소개해 보고자 합니다.  1. Canvas의 인스팩..

카테고리 없음 2024.08.23

2024 내일 배움캠프(Unity_6기) _ 사전캠프 8일차(08.22) : OnTrigger와 Oncollision, RigidBody에 대해 알아보자.

유니티에서는 충돌을 감지하기 위한 방법으로 두 가지가 있습니다.  바로 Ontrigger와 Oncollision인데요이 둘의 차이점과 각 기능에 대해 알아보고,충돌을 감지하는 데 필요한 물리적인 특성을 가지게 해주는 RigidBody에 대해 알아보고자 합니다. 사용 방법은 다음과 같습니다.  먼저 원하는 물체에 instpector 창에서 Collider를 추가해야 합니다.  보시면 그냥 Collider가 있고, Collider 2D가 있는 걸 확인 하실 수 있습니다. 일반 Collider는 3D환경에서 사용하면 되겠죠?   물체의 형태에 맞는 Collider를 추가했다면 이제 Script를 통해 물체의 충돌을 제어할 수 있습니다.  먼저 OnTrigger에 대해서 설명하겠습니다. OnTrigger를 살펴..

카테고리 없음 2024.08.22

2024 내일 배움캠프(Unity_6기) _ 과제 퀘스트

7. 행맨 게임더보기char[] secretWord = { 'h', 'a', 'n', 'g', 'm', 'a', 'n' };  // string secretWord = "Hangman"; char[] guessWord = { '_', '_', '_', '_', '_', '_', '_' };  // char[] guessWord = new char[secretWord.Length]; for(int i = 0; i int attemps = 6; bool wordGuessed = false; string word; do {     Console.WriteLine($"Guess the word :  {secretWord.Length} digit");     Console.WriteLine($"{attemps} ..

카테고리 없음 2024.08.22

2024 내일 배움캠프(Unity_6기) _ 사전캠프 7일차(08.21) : String 과 StringBuilder에 대해 알아보자

오늘은 String과 StringBuilder에 대해 알아보고자 합니다.  String 클래스에서 메서드 중 하나를 사용할 때마다 메모리에 새 문자열 개체가 생성되므로, 새 개체에 대한 공간을 새로 할당해야 합니다.  이는 한번 값이 정해진 뒤 수정할 수 없기 때문입니다. 그럼 왜 string이 변경 불가능하게 설계가 되었을까요?찾은 자료를 요약하자면 다음과 같습니다. 1 . 같은 값을 가진 여러 문자열 변수를 가지고 있다면 같은 문자열 값에 대한 메모리를 여러 번 할당하지 않아도 된다.  2. 멀티스레드 애플리케이션에서 경쟁 조건을 제거하여 빠르게 변경할 수 있다. 3.  해시테이블에서 문자열을 키로  잘 적용하기 위해서이다. -> 해시 값이 계산되는 객체는 해시 값이 시간에 따라 일정하도록 보장하기 ..

C# 2024.08.21

2024 내일 배움캠프(Unity_6기) _ 사전캠프 6일차(08.20) : C# 문자열 보간 에 대해 알아보자

유니티에서 UI로 점수를 보여주는 창을 만들면서 점수 :  10이라는 걸 보이기 위해"점수 :" 라고 적힌  Text와숫자가 적힌 텍스트 두 개를 만들어서 사용하곤 했습니다.  하나의 Text에 값을 더하는 걸로 충분히 만들 수 있지 않을까 찾다가문자열 보간을 활용하면 간단하게 만들 수 있다는 걸 알게 되었고 공유하고자 합니다. 사용 방법은 다음과 같습니다.먼저 " " 앞에 $를 붙이고, 변수를 넣고자 하는 곳에 {}를 친 후 변수를 넣으면 됩니다. 예시입니다. float nowTime = 0.5f; int bestTime = 2; BestRecord.text = $"최고 점수 : {bestTime} 현재 점수 : {nowTime}";    원래라면   "현재 점수 : " + nowTime.ToStrin..

C# 2024.08.20