유니티 60

유니티 : 미니 프로젝트#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일차(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

2024 내일 배움캠프(Unity_6기) _ 사전캠프 5일차(08.19) - Random에 대해 알아보자

유니티에는 자체적으로 Random 클래스를 제공하고 있습니다. 여기서 의문이 생겼습니다. C#에도 Random 클래스가 존재하는데 둘의 차이는 뭐지? 그래서 오늘은 System.Random 클래스와UnityEngine.Random 클래스의 차이 및 그 기능에 대해 자세히 알아보고자 합니다. 먼저 UnityEngine.Random부터 알아볼까요.   UnityEngine.Random보통 Random.Range()를 사용해 임의의 값을 추출하여 사용하고 있을겁니다. 더보기더보기사용시 주의할 점 - Random.Range(1,4)면 실제 나오는 값은 1부터 3까지 나온다.  하지만 분명 이것만이 기능의 전부는 아닐거란 말이죠?  Unity에서 공식 문서를 통해 UnityEngine.Random의 기능을 설명해..

C# 2024.08.19

2024 내일 배움캠프(Unity_6기) _ 사전캠프 3일차(08.14) - TextMeshPro 사용법 및 한글 폰트 적용하기

유니티 UI에 Text는 두가지가 있습니다. 하나는 Text - TextMeshPro하나는 Text - Legacy둘의 차이가 궁금해서 찾아보니 성능적인 면에서 TextMeshPro가 더 뛰어나지만 그만큼 연산을 많이 하므로 최적화를 위해 별로 중요하지않은 텍스트라면 Legacy로 사용한다는걸 알았습니다. 배움캠프에선 수업 중 Legacy Text를 사용하더군요. 하지만 Legacy라고 붙은 걸 보니 괜히 TextMeshPro로 만들어 보고 싶어 변경해봤습니다.  근데 TextMeshPro를 적용했더니,한글이 적용이 안되고 깨져서 ㅁㅁㅁ이렇게 나오더라구요. 처음엔 한글 폰트 문제인가 싶어서 한글 폰트를 다운 받기로 했습니다.  https://noonnu.cc/ 눈누상업용 무료한글폰트 사이트noonnu.c..

카테고리 없음 2024.08.14

2024 내일 배움캠프(Unity_6기) _ 사전캠프 1일차

1. 내일배움캠프 Unity 트랙에 참여한 계기는 무엇인가요?: 게임 개발자로서 배우고자 신청하게 되었습니다! 2. 본 코스 수료 후, 어떤 게임 개발자로 성장하고 싶나요.: 실무에 가서도 역할을 잘 수행할 수 있는 개발자가 되고 싶습니다! 3.그 외에 Untiy 트랙에 기대하는 것이 있다면 자유롭게 작성해 주세요.: 팀 프로젝트나 다른 분들과의 협업 등을 통해 많이 배울 수 있는 시간이 되었으면 좋겠습니다!  https://assetstore.unity.com/publisher-sale Publisher Sale – 50% off Trextor15 - Asset StoreGet 50% off Trextor15 assets – now until August 15.assetstore.unity.com 몰랐..

카테고리 없음 2024.08.12