유니티 도움 되는 사이트 & 자료
·
유니티/Tip
유니티 디자인 패턴 & SOLID디자인 패턴 및 SOLID 원칙으로 코딩 스킬 업그레이드 | Unity 디자인 패턴 및 SOLID 원칙으로 코딩 스킬 업그레이드 | Unity11가지 프로그래밍 패턴에 대한 가이드를 통해 Unity 프로젝트를 개선해 보세요. 샘플 프로젝트를 다운로드하고 코딩 스킬을 업드레이드해 보세요.unity.com더보기디자인 패턴 소개본 가이드를 활용하는 방법샘플 프로젝트SceneBootsTrapperSOLID 원칙단일 책임 원칙 . 13예시: 샘플 프로젝트 . 17개방-폐쇄 원칙 . 17예시: 샘플 프로젝트 . 22리스코프 치환 원칙. 23예시: 샘플 프로젝트 . 30인터페이스 분리 원칙. 31예시: 샘플 프로젝트 . 33인터페이스 직렬화 . 34종속성 역전 원칙. 36예시: 샘플 ..
Unity 디자인 패턴 Singleton
·
유니티/Tutorial
싱글톤(Singleton)은 게임 개발에서 자주 쓰이는 디자인 패턴 중 하나로객체를 여러 개 인스턴스화시키지 않고 하나만 만들어서 그 객체에 접근하는 디자인 패턴입니다.Singleton 쓰는 이유객체를 여러 개 만드는 것보다 하나만 만드는 것이 메모리에 할당되는 데이터양이 더 적습니다.게임 내내 접근해야 할 전역 변수, 함수가 필요할 때 사용합니다.보통 게임에서 싱글톤은 Manager 스크립트에서 자주 쓰입니다.Game Manager, Input Manager, Enemy Manager, Sound Manager 등등  슈퍼마리오 같은 스테이지 게임을 예시로 들면Game Manager에서 ChangeStage, GameOver 같은 함수들이 있다고 치겠습니다. 그러면 마리오가 Lives를 다 소비하면 G..
Unity Compute Shader
·
유니티/Tutorial
Compute Shader 컴퓨트 쉐이더는 GPU에게 연산 일을 시키는 작업General Purpose Computing On Graphics Processor Units줄여서 GPGPU를 통해 병렬로 연산을 처리하기 위해 사용합니다. 간단한 예시 하나 들자면CPU는 수학과 교수님이 어려운 문제를 계속 푸는 거라면GPU는 초등학생 100명에게 간단한 수학 문제를 풀게 만드는 겁니다. 유니티에서 예를 들면 수십 수백만 개의 오브젝트의위치를 계산할 때라든지 간단하지만 많은 작업을 할 때 사용합니다. Compute Shader Unity 6을 사용했습니다. 생성우선, Compute Shader를 생성해야 합니다.생성 방법은 아주 간단한데 위 경로로 가셔서 Compute Shader를 생성하면 됩니다.그러면  ..
Unity 주 마다 무료 에셋 얻기
·
유니티/Tip
유니티는 매주 금요일마다 유료 에셋 판매자들 중에서Publisher를 지정합니다. 해당 판매자가 판매 중인 유료 에셋 중 하나를 무료로 뿌림과 동시에판매자의 에셋들을 홍보해줍니다. 유니티 에셋 스토어에 들어간 다음 밑으로 내리다 보면 퍼블리셔라는 단어가 붙어있는 사진이 있을겁니다. 지금 둘러보기를 눌러서 들어가거나 아래 링크를 클릭해서 들어가면게임 제작을 위한 베스트셀러 에셋 | Unity 에셋 스토어 위와 같은 페이지가 뜨는데 여기서 중간에 있는 텍스트 이 텍스트 중에서 WHITEBOXSTUDIO 이 부분이 쿠폰 번호입니다.대문자로만 이루어진 텍스트만 매주 찾으면 됩니다.이 텍스트를 복사해줍니다. 그 다음GET YOUR GIFT|장바구니 담기|결제하기 순으로 클릭해줍니다.  오른쪽 아래 칸에 쿠폰 번호..
Unity 화면 전체에 Blink 효과
·
유니티/Shader
스크립트 BilnkEffect.csusing System;using UnityEngine;using UnityEngine.Rendering;using UnityEngine.Serialization;// 에디터에서도 실행되게 하려면 주석 해제[ExecuteAlways]public class BlinkEffect : MonoBehaviour{ [SerializeField] private Material blinkMat; [Header("Blink Settings")] [SerializeField, Range(0.0f, 1.0f)] private float blink = 0.001f; [SerializeField, Range(0.75f, 1.0f)] private..
Unity New Input System
·
유니티/Tutorial
New Input System은 기존의 Input Manager의 문제점인플랫폼 간의 키 연동 문제를 개선하기 위해 나온 툴입니다. 또한, 위 사진처럼 키 매핑을 보기 쉽게 만들어서 개발자가 한눈에 어떤 키가 있는지 파악할 수 있습니다.설치 일단 저는 Unity 6에서 진행했고 2018.3 버전부터 input system을 지원하는 걸로 알고 있으니 참고해 주세요. 우선Window|Package Manager|Unity Registry에 들어갑니다.  그다음에 검색 창에 input 만 쳐서 나오는 Input System을 install 해줍니다.그러면 위 사진처럼 설치가 됩니다.Samples 메뉴에 다양한 예제들이 있으니 이를 참고하셔도 됩니다. 키 등록  키를 등록하기 위해서는 먼저, Project 창..
Unity Edit Mode에서 오브젝트 부서지는 효과 만들기
·
유니티/Script
Unity 오브젝트 부서지는 효과 — 개발과 연구 Unity 오브젝트 부서지는 효과Nvidia Blast - News & General Discussion - Unity Discussions 해당 효과는 위의 글에서 bocs라는 분이 nvidia blast를 unity에서 쉽게 쓸 수 있도록만든 외부 라이브러리를 사용했습니다. 구현  일단 위의 패키지를gamecoke.tistory.com이번 글은 위 글에 있는 Blast 패키지와 FractureTool.cs 스크립트가 필요합니다.또한, UI Toolkit이 필요한데 이건 아마 2021.3 이상 유니티 버전에 기본으로 깔려있을겁니다.  Play Mode에서 실시간으로 만드는 것보다미리 만들어 놓고 설정하는 게 더 편할 것 같아서 Edit Mode도 만들었..
Unity Play Mode에서 오브젝트 부서지는 효과 만들기
·
유니티/Script
Nvidia Blast - News & General Discussion - Unity Discussions 해당 효과는 위의 글에서 bocs라는 분이 nvidia blast를 unity에서 쉽게 쓸 수 있도록만든 외부 라이브러리를 사용했습니다. 구현  일단 위의 패키지를 Import 시킵니다. FractureTool.csusing System;using System.Collections.Generic;using Unity.VisualScripting;using UnityEngine;using Random = UnityEngine.Random;[CreateAssetMenu(fileName = "FractureData", menuName = "Fracture Data", order = 0)][Seriali..
Unity FSM 유한 상태 머신
·
유니티/Tutorial
유한 상태 머신 (Finite State Machine)유한 상태 머신은 상태 머신이 유한한 개수의 상태 중 단 하나의 상태만 가지는 것을 뜻합니다. 수학적 모델이라고 하는데 게임에서 정말 많이 쓰이는 기술 중입니다.예시 FSM의 예시를 배그로 한번 들어보겠습니다. State Machine이 가지는 현재 상태를 ( )로 표시해 보겠습니다. 맨 처음 인게임에 들어가서 아무것도 안 하면 캐릭터는 멈춰있습니다. ( 정지 상태 )WASD를 누르면 걷겠죠 ( 정지 상태 -> 걷기 상태 )걷는 도중에 Shift를 꾹 누르면 캐릭터가 뜁니다. ( 걷기 상태 -> 뛰기 상태 ) 여기서 캐릭터가 Z키를 눌러서 엎드리기 애니메이션을 하고 있다고 생각해 보겠습니다.엎드린 상태에서 WASD를 누르면 기어가기는 되는데 걷기는 ..
UniTask란?
·
유니티/Tutorial
UniTask는 유니티에서 쓰이는 비동기 방식과 코루틴 (Coroutine)을 대체하기 위해 나온라이브러리 입니다. Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity. GitHub - Cysharp/UniTask: Provides an efficient allocation free async/await integration for Unity.Provides an efficient allocation free async/await integration for Unity. - Cysharp/UniTaskgithub.com특징Zero-Allocation    Struct 기반으로 제작.    Heap ..