Unity 83

[Unity] WebGl환경 iis로 Websocket 통신 방법 Javascript NativePlugin

https://docs.unity3d.com/kr/2021.1/Manual/webgl-server-configuration-code-samples.html WebGL: 서버 설정 코드 샘플 - Unity 매뉴얼아래 코드 샘플은 WebGL로 작업할 때 서버를 설정하는 방법을 보여줍니다. 다음 샘플은 IIS 및 Apache 서버에 적용됩니다. WebGL 서버 설정에 대한 자세한 내용은 WebGL: 압축 빌드 및 서버 설정을 참조docs.unity3d.comhttps://docs.unity3d.com/kr/2018.4/Manual/webgl-deploying.html WebGL: 압축된 빌드 배포 - Unity 매뉴얼릴리스 모드에서 WebGL 프로젝트를 빌드하는 경우(빌드 퍼블리시 참조), Unity는 빌드의..

Unity 2024.12.27

[Unity] InputSystem 사용방법(PlayerInputComponent와 Generate C# Class)

Unity의 Input System은 기존의 Legacy Input Manager의 한계를 해결하기 위해 설계된 새로운 입력 관리 시스템입니다. 멀티 디바이스 지원, 유연성 향상, 플랫폼 호환성 강화를 목표로 하며, 2019년에 처음 도입되어 Unity의 최신 입력 관리 표준으로 자리 잡았습니다.기존 Legacy Input Manager의 한계기본 API가 직관적이고 학습 곡선이 낮지만 Input Manager에서 모든 입력을 사전에 설정해야 하며, 게임 내에서 변경하려면 커스텀 스크립트를 작성해야 하고 이벤트 기반 입력 미지원, 멀티 디바이스 지원의 부족, 폴링(Polling) 기반 입력으로 사용자가 입력한 상태를 매 프레임마다 Update에서 확인해야 되기 때문에 유지보수 및 확장에 어려움이 있습니다..

Unity 2024.12.27

[Unity][개념] UniTask VS 코루틴

UniTask는 기존의 코루틴보다 더 나은 비동기 처리를 가능하게 해주는 강력한 라이브러리입니다. 구체적인 장점과 사용 예시를 통해 UniTask의 유용성을 알아보겠습니다.UniTask를 사용하게 된 이유:코루틴의 예외 처리 제한: 코루틴은 try-catch로 예외 처리를 할 수 없어서 안정성이 떨어집니다.코루틴의 리턴 타입 제한: 코루틴은 리턴 타입이 없어 실행 결과를 리턴하려면 콜백을 사용해야 합니다. 이로 인해 복잡한 콜백 지옥이 발생할 수 있습니다.Task의 성능 문제: C#의 async Task는 힙 할당으로 인해 가비지 생성이 많아 잦은 호출이 어렵습니다. 하지만 UniTask는 struct 기반이어서 가비지 생성 문제가 없습니다.선형적인 코드 흐름: UniTask를 사용하면 콜백 없이 선형적..

Unity 2024.09.10

[Unity] JobSystem(2) NativeContainer와 TransformAccessArray

Job System과 Native Collections 특징Native collections는 성능 최적화와 메모리 관리 효율성을 위해 제공하는 데이터 구조입니다. 네이티브 메모리라고 불리는 공유 메모리 타입에 저장됩니다.  메모리 관리되지 않는 포인터가 들어 있습니다. Job System과 함께 사용하면 잡이 복사본으로 작업하는 것이 아닌 메인 스레드와 공유되는 데이터에 액세스 할 수 있습니다.주요 특징과 이점:멀티스레드 안전성: Native Collections은 Job System과 함께 사용할 때 쓰레드 안전성을 보장합니다. 일반적으로 C#의 List나 Array 같은 컬렉션은 쓰레드 안전하지 않아 멀티스레딩 작업에서 문제가 발생할 수 있습니다. 반면, Native Collections은 멀티스레..

Unity 2024.09.06

[Unity] JobSystem(1) 특징과 인터페이스 종류

JobSystem 생성 배경https://usingsystem.tistory.com/539 [Unity] DOTS 시스템과 Unity JobSystem, Burst, ECS 개념DOTS의 주요 목표와 적용 요약oop로 인해 메모리가 무분별하게 퍼져있는 메모리를 일관성 있게 메모리에 쌓아서 cpu가 캐시 l1, l2, l3에 캐시적중(캐시 적중 시 메모리를 정말 빠르게 읽을 수 있다.)usingsystem.tistory.com Unity의 Job System은 게임 엔진의 성능을 극대화하기 위해 설계된 멀티스레딩 프레임워크로, 작업을 작게 나누어 여러 스레드에서 동시에 처리하여 CPU 리소스를 효율적으로 활용하고 게임의 퍼포먼스를 크게 향상시킵니다. Job System의 주요 개념 및 동작 방식Job (작..

Unity 2024.09.06

[Unity] Unity 메모리 및 GC 최적화 ( 정리중 )

메모리 및 GC 최적화 GC(가비지 컬렉션)의 영향 줄이기 Unity는 Boehm-Demers-Weiser 가비지 컬렉터를 사용하며, 이 컬렉터는 프로그램 코드의 실행을 중단하고 작업이 완료될 때만 일반 실행을 재개합니다.힙의 불필요한 할당은 GC 스파이크를 유발할 수 있으므로 유의해야 합니다.— 문자열: C#에서 문자열은 값 유형이 아닌 레퍼런스 유형입니다. 다시 말해서 모든 새 문자열은 일시적으로만 사용되더라도 관리되는 힙에 할당됩니다. 따라서 불필요한 문자열의 생성 또는 조작을 줄여야 합니다. JSON, XML 같은 문자열 기반 데이터 파일은 파싱하지 않는 것이 좋습니다. 대신 데이터를 ScriptableObjects에 저장하거나 MessagePack 또는 Protobuf 같은 포맷으로 저장하세요...

Unity 2024.08.30

[Unity] ECS 예제 목록

Unity ECS 예제 SampleEntityComponentSystemSamples - 기초 및 고급 DOTS 기능을 모두 소개하는 다양한 샘플https://github.com/Unity-Technologies/EntityComponentSystemSamples/tree/master GitHub - Unity-Technologies/EntityComponentSystemSamplesContribute to Unity-Technologies/EntityComponentSystemSamples development by creating an account on GitHub.github.com DOTS 알아보기 - Unity DOTS 교육과정https://learn.unity.com/tutorial/660f..

Unity 2024.08.30

[Unity] DOTS 시스템과 Unity JobSystem, Burst, ECS 개념

DOTS (Data Oriented Technology Stack)란?DOTS는 Unity에서 제공하는 데이터 지향 기술 스택으로, 기존의 객체 지향 프로그래밍(OOP) 방식 대신 데이터 지향 디자인(DOD)을 채택하여 메모리 사용성을 향상시키고, 성능을 극대화하는 것을 목표로 합니다. DOTS는 엔티티와 네이티브 컬렉션을 사용하여 런타임이나 가비지 컬렉터에 의해 관리되지 않는 메모리를 직접 다루며, CPU와 메모리 간의 접근 효율성을 높입니다. DOTS의 주요 목표:메모리 최적화:일관된 메모리 배치: OOP 방식에서는 객체와 데이터가 메모리에 산발적으로 배치되어 있어 캐시 적중률이 낮아집니다. 반면, DOTS는 데이터와 로직을 분리하고, 컴포넌트 데이터를 연속된 메모리 블록에 저장합니다. 이를 통해 C..

Unity 2024.08.30

[Unity] 상태(State)패턴 예제

https://unity.com/kr/how-to/develop-modular-flexible-codebase-state-programming-pattern 스테이트 프로그래밍 패턴으로 모듈형 및 유연한 코드베이스를 개발하는 방법 | Unity상태 프로그래밍 패턴이 깔끔하고 체계적이며 가독성 있는 코드베이스를 구축하고 유지하는 데 어떻게 도움이 되는지 알아보세요.unity.com간단한 상태 패턴using UnityEngine;public class CubeController : MonoBehaviour{ public enum State { Idle, Walk, } State _state; Vector3 _target; void Start() ..

Unity 2024.06.24

[Unity] Addresable 어드레서블를 이용한 웹서버 원격 로드방법

어드레스블 에셋 시스템 설명 https://blog.unity.com/kr/games/addressable-asset-system 어드레서블 에셋 시스템 | Unity Blog 어드레서블의 주된 기능은 로드할 대상이 되는 에셋과 에셋이 로드되는 위치 및 방식을 분리하는 것입니다. 씬, 프리팹, 텍스트 에셋을 비롯한 모든 에셋을 어드레서블(위치 지정 가능)로 표시 blog.unity.com 어드레스블 메모리 최적화 설명 https://blog.unity.com/kr/technology/tales-from-the-optimization-trenches-saving-memory-with-addressables 어드레서블 에셋 시스템으로 메모리 최적화하기 | Unity Blog 위에서 발생한 문제를 해결하기 위..

Unity 2024.03.26