251113 스크립터블 오브젝트
·
📖TIL
직렬화와 스크립터블 오브젝트 스크립터블 오브젝트는 유니티 에셋으로 데이터를 저장시키고 필요할 때 꺼내서 쓰는 기능이다.데이터와 코드를 분리하기 위한 유용한 기능이다.using UnityEngine;using UnityEngine.InputSystem;public class CubeSpawner : MonoBehaviour{ public GameObject cubePrefab; // 하나의 프리팹만 사용 void Update() { if (Keyboard.current.qKey.IsPressed()) { GameObject newCube = Instantiate(cubePrefab, Vector3.zero, Quaternion.identity);..
251113 CSV & JSON
·
📖TIL
CSV 와 JSON PlayerPrefs : 진짜 간단하게 수치를 기억시키는 방법 ( 소규모 데이터 )저장은 잘 되는 방식인데, 파일시스템이 아니고 레지스트리나 OS별 설정파일에 저장된다암호화되지 않고, 고로 핵이나 치트에 취약하다. 인게임 볼륨 , 간단한 설정 등은 플레이어 프랩스로 로컬로 기억시킬 수 있다. JSON : 가볍고 직관적인 파일 저장 방식ScriptableObj : 에셋으로 데이터를 저장Addressable : 리소스를 주소로 불러와서 관리함PlayerPrefs.SetInt("이런키값으로", 원하는값을);PlayerPrefs.GetInt("이런키값으로", 1);using UnityEngine;using UnityEngine.InputSystem;public class SaveTest : ..
251113
·
📖TIL
Lighting완전히 어두운 상황 만들기Windows - Rendering - Lighting - Environment레이 트레이싱반사는 많은 연산량을 필요로 한다▲반사시킬 영역▲프로젝트 세팅에서 Realtime Reflection Probes 체크뭔가 반사가 되긴 하는데 자기 자신도 비추넹.. Character ControllerRigidbody 와 달리 , 물리 충돌 이런거 크게 따로 코딩할 필요 없이 캐릭터 이동 자연스럽게 구현 가능. 충돌용 캡슐 콜라이더도 내장되어있음 정교한 물리를 해야할 땐 얄짤없이 Rigidbody 로 다루어야 한다빠르게 기능 테스트 하거나 , 프로토타이핑 할 때 쓰인다 그렇긴 하지만 잘 건드리면 쓸만하다 IsGrounded : 땅 체크, ( 구현이 되어있긴 하나 버그 덩어..
유니티 개인 프로젝트 기획 초안
·
📖TIL/🔥Projects
프로젝트 개요프로젝트명 : Survive Rush장르 : 2D 서바이벌 미니게임플랫폼 : PC ( Windows , Unity 6 )제작 기간 : 5일개발 인원 : 1인그래픽 : 2D 픽셀 또는 카툰 스타일사운드 : SFX + 빠른 템포의 BGM 핵심 컨셉짧고 중독성 있는 2D 미니게임을 연속으로 클리어하며 최대한 오래 생존하자!여러 종류의 짧고 긴박한 미니게임이 랜덤으로 등장한다.제한된 Life 개수 안에서 가능한 한 오래 생존하는 것이 목표 게임 모드1. 서바이벌 모드 ( 메인 )Life 10 개로 시작미니게임 랜덤 등장 , 일정 시간 생존 시 다음 스테이지실패 시 Life -1누적 10회 성공 시 Life +1 ( max 10 )Life 가 모두 소진되면 Game Over2. 미니게임 선택 모드플..
내가 이해한 오브젝트 풀링 개념
·
📖TIL
Question : 오브젝트 풀링이란 무엇인가요? Answer : 오브젝트 풀링은 게임 개발에서 성능을 높이기 위해 사용하는 기법입니다. 게임에서 필히 오브젝트를 생성과 파괴를 하게 되는데요.생성시 메모리를 할당하는 과정이 있고 파괴시 GC ( 가비지 콜렉터 )가 수거하는 과정에서 프레임 드랍이 생기게 됩니다.GC 사용은 무겁기 때문에 GC 가 자주 수거해야 하는 상황이 오면 그만큼 프레임 드랍이 자주 발생합니다.이러한 문제점을 해결하기 위해 오브젝트 풀링 기법을 사용합니다. 오브젝트 풀링은 자주 사용하게 될 오브젝트를 생성할 메모리를 미리 배열이나 리스트 등에 할당해놓고필요할 때마다 꺼내서 쓰고 필요 없어지면 파괴가 아니라 비활성화해서 배열이나 리스트 등에 다시 넣는 기법입니다. Question : ..
251112 Particle
·
📖TIL
파티클 효과 ( Particle Effect )
251112 AudioSource
·
📖TIL
AudioSourceusing UnityEngine;public class SoundMake : MonoBehaviour{ AudioSource myAudio; // 카세트 플레이어 , CD 플레이어처럼 mp3 재생기 public AudioClip[] myClip; // 테이프 , CD , mp3 파일의 개념 void Start() { myAudio.clip = myClip[0]; // 클립도 갈아끼울 수 있다 myAudio = GetComponent(); // 컴포넌트 가져오기 myAudio.playOnAwake = false; // 시작과 동시에 킬 것인지 여부 myAudio.Play(); // 지금 오디오소스에 들어있는 클립 재..
251112 Object Pool
·
📖TIL
오브젝트 풀오브젝트 풀 개념을 익힌다배열과 리스트로 SetActive(true) , (false)심화 : 제네릭 버전으로 만든다모든걸 다 액션 기반으로 등록할 수 있는 시스템 구축 퍼포먼스 올리기Update 를 덜 돌게 하기Instantiate / Destroy 만 덜 하게 해도 성능 개선에 도움이 된다내부단편화 : 할당된 메모리 공간 안에서 사용되지 않고 남는 공간이 생기는 현상외부단편화 : 총 여유 메모리는 충분하지만 연속된 큰 공간이 부족해서 새 프로세스를 올릴수 없는 현상 ▼ 오브젝트 풀링 구현 코드using NUnit.Framework;using System.Collections.Generic;using UnityEngine;using UnityEngine.InputSystem; // 좌클릭 ..
Canvas
·
🧊Unity Basic/UGUI
UI 는 게임의 사용자가 게임에 가장 직접적으로 마주하는 첫 번째 상호작용 요소이다.게임을 떠나 어떤 프로그램이든 UI 가 존재하고 , 사용자는 UI 를 가장 먼저 마주하게 된다.UI 는 게임에서 아주 중요한 역할을 한다. 유저와 상호작용 하거나 , 게임의 상태를 유저가 빠르게 체크할 수 있도록 해준다.UI 작업을 원활하게 하기 위해서는 , UI 가 캔버스에 어떻게 뿌려지는지를 알고 있어야 한다.랜더링 되는 순서나 , 갱신 주기 등 캔버스의 내부 동작을 이해하고 있어야 한다. Canvas캔버스는 Unity UI 시스템 ( 특히 UGUI ) 를 그리는 공간 ( Rendering Area ) 이다.모든 Button , Text , Image , Panel 같은 UI 요소들은 반드시 Canvas 하위에 있어야..