https://www.youtube.com/watch?v=jvJ1Vd7PGwk&list=PL412Ym60h6uufFJlxsKcYkOtRu-PIsLuA&index=6


Objectpool 패턴

수가 많은 오브젝트 다룰 때 씀


 

 

 

Pool 이라는 박스 안에 객체들을 담는 것임

오브젝트 활성화 / 비활성화를 응용함

Destroy 쓰지 말기
지저분해짐

끊김 현상
Hiccup 딸꾹질 같은 버그
GC Spike 쓰레기 오버되서 터짐 현상
을 예방하기 위해 오브젝트 풀링을 사용

주로 로딩화면에서 미리 생성

 

 

+

 



코딩 속 원리 :


정렬방식은 stack 을 쓰기도 함
후입선출



next instance 에서는 true, 활성화
return 에서는 false , 비활성화


+


2021년부턴 오브젝트 풀링이
정식 문법으로 등재됨

public ObjectPool<T0> (Func<T> createFunc, Action<T> actionOnGet, Action<T> actionOnRelease, Action<T> actionOnDestroy, bool collectionCheck, int defaultCapacity, int maxSize);

자세한 링크

https://docs.unity3d.com/6000.2/Documentation/ScriptReference/Pool.ObjectPool_1-ctor.html

 

이 건 인터페이스 , 겉 껍데기라서 내가 직접 속을 채워 넣어줘야 한다

 

 

 

여기서 짚고 넘어갈 거

 

Update 에서

objectPool.Get() 가져오고 , 활성화 작업

 

Deactivate() 에서

objectPool.Realease() 함 , 풀로 다시 되돌리는 비활성화작업

 

 

 

반응형
Posted by 이름이 익명
:

 


https://www.youtube.com/watch?v=dNSgujUFmgs&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=18

 

6면체 처럼 입체적으로 vfx 다룬다는 뜻

 



사실적인 연기 조명 구현

 

 

 


구버전의 이펙트는 라이트에 반응을 안해서 
부자연스러웠다

그걸 보완한 거임

 

 



노말맵을 6방향에서 담아내서

폭발 연기 에도 라이팅이 자연스럽게 담아내게 함

 

 

+

 

 

예시 제작 시작

 

Create - Visual Effects - Visual Effect Graph

강의에선 simple burst 샘플을 씀

 

노드 끝에 URP Lit Quad 를 씀

 

 

 

Material Type  을 Six Way 로 설정

 

 

 

연기 텍스쳐 기본 유니티에서 제공되는거 사용,

연기 텍스쳐가 스프라이트형식이면 flip book blend 로 사용

 

mode 에선

face camera 선택

 

 

이렇게 조명에 인터렉션 있는 연기가 완성됨

 

 

이건 성능을 잡아 먹기 때문에

 

특별한 씬에만 소수 사용하는 걸 추천함

 

소수의 시네마틱이라던가...

 

 

 

반응형
Posted by 이름이 익명
:

 


Rendering - Lighting 탭
Main Light , Additional lights , SH Evaluation Mode  에서

per pixel , per vertex 정할 수 있음

per pixel 이 더 보기 좋음, 근데 사양 많이 먹음
per vertex  는 뭔가 뭉개지고 떨림이 생김

 

+


 

 

반응형
Posted by 이름이 익명
:




https://www.youtube.com/watch?v=GkuoCESfm6Q&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=19

 

 

 

 






lightmap
텍스쳐 처럼
통으로 라이트 정보를 오브젝트 표면에 고정 시키는 것

라이팅 연산 자체가 연산량이 많아서
베이킹 하는걸로 완화 하는 것임

 

 

라이트 맵은 정적인 배경에 자주 쓰이고

라이트 프로브는 동적인 캐릭터에 쓰인다

 

 

 

 

 

light probe volume
빛/  조사하기 /   양이 많은거

 

 


light probe
나눠진 구역의 빛을 저장함
주변 Probe들이 "여기는 이런 색의 빛이야!" 하고 알려줌


정적인 환경 + 움직이는 애들에 예쁜 간접광을 주려는 역할


Lightmap만으로는 캐릭터가 어두워지는 문제가 있어서
light probe 를 씀


라이트 프로브는
예쁘고 가벼움(퍼포먼스 Good)

 

 

+

 

light probe 에서 진화 되어 나온 것이

APV, Adaptive Probe Volumes 이다

 



이제 유니티 URP 에서도
APV, Adaptive Probe Volumes 를 사용 가능해졌다


Light Probe Gruop 은 이제 구버전 유물이 되었고
Adaptive Probe Volumes 이 신문물이 됨

사용이 편해서 넘어와야 하는 것임

 

+

 

per vertex per pixel
퀄 낮으나
최적화 됨
퀄 좋으나
연산 많음

 

 

+

 

 

light explorer 창에서

 

어떤 빛이 baked 인지 realtime인지 볼 수 있다

 

 

 

Settings - URP - Rendering - 
Lighting - Light Probe System

 

위에건 구버전 기능
아래거 Probe Volumes 가 이번의 새 거인 Adaptive Probe Volume 이다

 

 

 

 

 

오브젝트 추가시
Light - Probe Volume - Probe Volume 

 

 

 

fit to scene 하거나 초록 상자 눌러서 크기 조정해주면 됨

 

 

 

lighting 창 - Probe Volume - Generate lighting 

하면 세팅 끝

 

 

 

초록이 베이크드, 자주색이 리얼타임. 서로 별 차이 없어보임

 

 

 

 

더 자세하게 보고 싶으면
Rendering Debugger - Probe Volume - Display Probes 에 체크 온

 

 

 

오브젝트의 부분 부분 빛이 각각 다르게 들어가야 자연스러운 것이다

 

위 로봇의 왼다리 오른다리 따로 따로 빛이 들어가야 좋음

 

 

 


Rendering - Lighting 탭
Main Light , Additional lights , SH Evaluation Mode  에서

per pixel , per vertex 정할 수 있음

per pixel 이 더 보기 좋음, 근데 사양 많이 먹음
per vertex  는 뭔가 뭉개지고 떨림이 생김


반응형
Posted by 이름이 익명
:

https://www.youtube.com/watch?v=dsLBzrbo-Vs&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=14

 

새 인풋 매니저는는

패키지 매니저로 설치




project settings - player - active input handling
구버전 input manager
신버전 input system package
both

both 는 오류 해결용

 


첫 시작은 control schemes 어쩌구 에서
시작

 

 

+

 

 

 

키 binding (연결) 할 때, 

 

listen 기능을 써서 지금 누른 버튼을 이을 수 있음

 

 

+

 



action type 종류

button 단일성으로 누르고 떼기
점프 단축키, 인터렉트 E 키  라던가

value 지속적 값 변화
방향키로 이동할 때, 카메라 회전, 줌

PassThrough 복수 입력 동시에 받을 때
FPS 카메라 회전, ui 드래그, 리듬게임 버튼 여러개 입력


Initial State Check = OFF
→ “이미 눌려있던 상태”는 무시하고
새로 눌렀을 때만 동작함
원치 않는 입력이 시작 순간 자동으로 발동되는 것을 방지할 수 있음


+

Hold
몇 초동안 눌러야 입력을 인정하는 것


Tap
지정한 시간동안 눌렀다 떼야 입력을 인정하는 것


Processors 
입력 반전 을 할 수 있음


+

한 번에 두 개를 눌러야 작동하는 액션은
Modifier 를 통해 만들 수 있다

예시 :
걷기, 기어가기


+

 



Behavior , invoke unity events

(또는 send message 써도 된다함)

이 버튼 누르면 어떤 행동에 연결할 건지 정함

UI 버튼 만들때 처럼
스크립트 지정하고 함수 지정하면 됨

 

+

 

 

입력엔 세 가지가 있다

 

started

시작

 

performed

 

canceled

취소됨

 

 

Hold 옵션에서 원하는 시간 보다 더 빨리 뗀다면 canceled 로 인정함

 

+

 

 

 

부가적인 이동방법인 스크린 스틱 을 사용시,

버벅이는 걸 방지 하기 위해

인풋시스템 게임패드를 

optional 로 해야 한다더라

 

+

 

 

새 input system 은 시네마신과 연동하여

쉬운 카메라 제어를 구현할 수 있다고 함

반응형
Posted by 이름이 익명
:


ai 이동 끼임 현상
ai navigation 

carve 로
이동 못가는 지역의 넓이를 넓게 지정

 

 

반응형
Posted by 이름이 익명
:

https://www.youtube.com/watch?v=vJAZ7B_sal4&list=PL412Ym60h6uvqYiCVKk5NiEFpDEwOMQFX&index=10

 

 

 

 

패키지 매니저 - 쉐이더 그래프 - 샘플스

 

에서 원하는거 복붙해서 갖다 써도 됨

 

 

 

+

 

 


vs 버텍스 스테이지
찢어지는 거 같이 보이고 
보기 별로임
근데 연산량이 낮음
최적화 됨
ps . fs 픽셀 프래그먼트 스테이지
보기 자연스러움
연산량 많음
최적화에 악영향
   

 

둘 중 빠른 걸 원하면 버텍스 스테이지를

느려도 자연스러운 걸 원하면 픽셀 스테이지를

선택함

 

 

+

 

 

 

posterization, 포스터처럼 만들기

 

일부러 계단 만들어 cel shading 만들기

 

 

셀 셰이딩 구현을 위해

floor , 소수점 내림 처리를 한다는 내용

 

 

+

 

 

블랙보드 에서 드롭다운 메뉴 를 만들 수 있다 카더라

 

 

+

 

 

쉐이더 노드 중

time 노드 는 움직이는 걸 구현할 때 씀

 

텍스쳐를 스크롤링 (그림을 한 방향으로 이동),

원형 도형이 퍼지는 것 등등

 

 

+

 

 

 

 

 

hit map 

 

카테고리 구분 같은 것

차가운색일수록 연산량이 적다

뜨거운색일수록 연산량이 많다

 

단, 카테고리 0, 하늘색, 텍스쳐라던가 어떤걸 쓰느냐 연산량이 달라진다는 뜻

 

 

 

+

 

 

 

깃발 같은 경우

animated flag

 

그냥 애니메이션 모션에서 처리하는 거보다

쉐이더 그래프에서 버텍스 셰이더 에서 처리하는 게 더 연산량 적음

 

 

 

gerstner wave shader

 

물 표면 표현도 쉐이더 그래프에서

 

 

+

 

 

 

interior cube map

 

창문이 있는 건물을 표현하는데 폴리곤이 있는 건 아님

 

낮은 버텍스 수치로 구현함

 

 

 

셰이더로 가짜 방을 구현하는 거임

 

같은 방인데 90도 씩 돌려서 복붙함

 

 

 

 

관련 용어는

360 hdri, skybox , Equirectangular,  Spherical Panorama ,cubemap

이런 거랑 비슷 한 원리

 

단, 쉐이프에 제한이 있음

원형이나 돔, 사각형을 구현할 때 씀

 

 

 

360 hdri, skybox , Equirectangular,  Spherical Panorama ,cubemap
보통 이런 것들은
하늘, 행성, 금속 반사 텍스쳐, 맵 배경 에서 씀

반응형
Posted by 이름이 익명
:

 

 

 

GameObject
MonoBehaviour
OOP
DOTS
ECS
DOD
Job System
Burst Compiler
오브젝트 지향 데이터 중심
빠른 제작
쉬움
복잡함
고성능
대규모 확장 가능성
메모리 효율낮음
단일 스레드
병목 렉 걸림
멀티코어 CPU
병렬로 성능 최적화
자동으로 작업 병렬 분배

 

 

+

 

유니티 tag layer 차이

tag layer
식별
찾아내기
그룹화
필터링
물리충돌
player, enemy, collectable Ground, Wall 

 

 

+



유니티 새 input system

"점프", "이동", "공격" 같은 행동 이름을 먼저 만들고,
그 행동에 어떤 버튼이든 연결!
키보드/패드/모바일 다 묶어서 처리 가능

Binding (묶기)
어떤 장치의 어떤 버튼이 Action을 실행하는지 연결
(Jump) ← Space
( Move ) ← WASD 

Control Scheme (장치 묶음)
플레이어가 어떤 장치를 쓰는지 자동 감지
[Keyboard&Mouse]
[Gamepad]
[Touch]

사용 흐름 한방 요약
Input Actions 만들기 → 액션 만들기 → 바인딩 지정 → 코드에서 읽기

구 버전: 직접 버튼 상태를 계속 체크해야 함 
새 버전: 버튼 눌림/떼짐 이벤트를 자동으로 알려줌 






유니티 urp 신규 기능

렌더 그래프 시스템 (Render Graph)
렌더링 흐름

TAA (Temporal Anti-Aliasing)
계단 현상줄이기

스크린 스페이스 렌즈 플레어 (Lens Flare)
다양한 렌즈 플레어 효과

소프트 섀도우 품질 제어 (Soft Shadows Quality)

바닥 디칼(Decal) 지원

코드없이 Custom 포스트 프로세싱

그림자와 2D 상호작용 향상

Probe Volumes(프로브 볼륨) 뜻
씬 전체에 숨겨진 "빛 저장 칸"을 자동으로 깔아서
실시간 GI(간접광) 느낌을 내주는 시스템.




유니티 오디오 랜덤 사운드 컨테이너

AudioRandomContainer(신 버전 엔진)
 여러 AudioClip을 리스트로 넣고
 Random Mode 설정(Shuffle, Weighted, Pure Random)
 Pitch / Volume 범위 조절


전통적인 방식 (대부분 이렇게 씀)
    public void PlayRandom()
    {
        int index = Random.Range(0, clips.Length);
        source.PlayOneShot(clips[index]);
    }

    if (Input.GetKeyDown(KeyCode.Space))
        PlayRandom();


 

 


unity cloud 와 battle pass

완전 솔플(오프라인) 게임이면 Unity Cloud 안 써도 100% 가능해!

핵심 포인트
서버 못 만들어도 게임 운영 가능
플레이어 데이터 자동 저장
자동 빌드 배포
멀티 / 상점 / 보상 시스템 빠르게 구축 가능


Unity Cloud를 왜 쓰는가?

서버 인프라 직접 안 만들어도 됨
운영(랭킹/재화/보상)을 빠르게 개발
모바일 게임/라이브 게임에 특히 유용
인디/소규모 팀 개발자에게 필수급


Battle Pass(배틀 패스) ?
한 줄 요약
시즌 동안 플레이하면 포인트가 쌓이고,
레벨을 올리면 단계별 보상을 주는 시즌형 보상 시스템.

XP 획득 방식
플레이 시간
스테이지 클리어
데일리 미션
주간 퀘스트

보상 종류
스킨
코스튬
캐릭터
배너/프레임
아이템 상자
재화(골드/젬 등)

 

 

 



batching 유니티 최적화

배칭 이란
여러 오브젝트의 Draw Call(드로우콜)을 하나로 묶어 렌더링 → 성능 UP!


배칭 여러개 소개

Static Batching (스태틱 배칭)
절대 안 움직이는 오브젝트에 사용 (건물, 바위 등)

Dynamic Batching (다이나믹 배칭)
움직이는 오브젝트도 가능
하지만 조건 까다로움

GPU Instancing (GPU 인스턴싱)
최신 게임 대부분 사용
같은 Mesh + 같은 Material 사용할 때
GPU가 "복사본"을 효율적으로 그림



URP는 자체적으로 SRP Batcher가 있어서 성능 엄청 좋아짐

SRP Batcher
URP/HDRP 전용
셰이더가 SRP Batcher 호환이면
거의 모든 오브젝트가 자동으로 빠르게 처리됨

Default URP Shader는 100% 호환
요즘엔 Dynamic Batching보다 SRP Batcher가 핵심


 



xcode 와 유니티 ios

이건 아이폰 애플 이라서 패스

반응형
Posted by 이름이 익명
: