Unity 77

[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

[Unity] Unity 파이프라인 이란?

파이프라인Unity에서의 "파이프라인"은 그래픽 처리에 관련된 작업의 흐름을 의미합니다. Unity의 그래픽 파이프라인은 게임 오브젝트가 화면에 표시되기까지의 과정을 제어하고 조정합니다. 이러한 과정은 대개 다음과 같은 단계를 거칩니다:렌더링 설정: 게임 오브젝트의 렌더러를 설정하고, 라이팅, 쉐이딩, 그림자 등의 렌더링 옵션을 결정합니다.렌더링 버퍼 준비: 화면에 렌더링될 내용을 저장할 메모리 버퍼를 할당하고, 필요한 텍스처를 생성합니다.렌더링 패스 실행: 렌더링 패스는 카메라의 시야 내에 있는 게임 오브젝트들을 처리하고 렌더링합니다. 이 과정에서는 렌더링 설정에 따라 여러 번의 패스가 실행될 수 있습니다.후처리 및 화면 출력: 렌더링된 결과물에 후처리 효과를 적용하고, 최종적으로 화면에 출력합니다.U..

Unity 2024.03.12

[Unity] LINE CHART 그래프 만들기 (2) 그래프에 라벨 숫자 넣기

숫자 표시하기 UI작업 GraphContainer에 x좌표와 y좌표의 값을 나타낼 때 사용할 Text박스를 만든다. (TMP로 만듦 상관없음.) 만들어 놓은 labelTemplateX, labelTemplateY는 상단 체크박스를 통해 active false로 만들어 준다. 소스코드 using System.Collections.Generic; using TMPro; using UnityEngine; using UnityEngine.UI; public class UI_WindowGraph : MonoBehaviour { [SerializeField] private Sprite circleSprite; private RectTransform graphContainer; private RectTransform..

Unity 2023.11.20

[Unity] LINE CHART 그래프 만들기 (1)

UI작업 1. LineChart를 담을 가장 부모 오브젝트를 만든다. 먼저 LineChar트를 담을 빈 오브젝트를 캔버스에 추가한다. 사이즈는 자유롭게 정의 하며 앵커는 중앙값으로 놓는다. 2. LineChart의 배경과 라인과 점이 그려질 Container 오브젝트를 만든다. 사이즈는 부모오브젝트를 벗어나지 않는 선에서 만들며 가장 왼쪽에서부터 그래프가 그려져 야하기 때문에 가장 오른쪽 밑으로 앵커속성을 놓는다.(중요) 3. Graph container에 Image를 넣어 백그라운드를 채워 넣는다. 4. 차트를 그려줄 Script를 만든다. UI_LineChart.cs작업 1. 점찍기(1) Sprite는 SerializeField로 만들었기 때문에 에디터에서 적당한 Sprite 모양을 연결시켜 줘야 한..

Unity 2023.11.20

[Unity] UI 마우스 Drag로 UI 이동 방법

Panel클릭시 UI Drag 소개합니다. 우선 아래와 같이 패널하나를 추가합니다. 만들어둔 Panel안에 컴포넌트로 cs파일을 추가합니다. 저는 cs 파일이름을 UI_DragPanel로 정의 했습니다. UI_DragPanel.cs 정의 1. IBeginDragHandler, IDragHandler을 사용하여 구현 방법 IBeginDragHandler - UI 요소, 예를 들어 버튼이나 이미지와 같은 UI 구성 요소나 객체와 상호 작용할 때 드래그 작업이 시작되었을 때를 감지하고 응답하는 데 사용됩니다. IDragHandler - IDragHandler는 UI 요소의 드래그 작업 중에 이벤트를 감지하고 응답하기 위한 인터페이스입니다. 드래그 작업 중에 UI 요소가 이동하거나 다른 동작을 수행하는 등의 상..

Unity 2023.10.27

[Unity] 유니티 오브젝트 Fake Null과 Null 처리

Fake Null 우리는 유니티 게임 오브젝트를 파괴하기 위해서 UnityEngine.Object를 GameObject.Destroy();를 통해 오브젝트가 메모리를 해제한다. UnityEngine.Object클래스는 C++ 유니티 엔진 코드에 존재하는 NativeObject객체에 포인터를 가지고 있는 C++객체를 감싸 포함하고 있는 C#클래스이다. C++은 메모리를 포인터로 관리하고 C#은 가비지컬렉션이 메모리해제를 관리하며 이 차이점 때문에 Fake Null이 발생하게 된다. 즉 C++로 만들어진 클래스를 C#으로 한 번 더 감싸고 있다고 생각하자. 결국 GameObject.Destroy();를 통해 오브젝트를 파괴 한다는 것 은 UnityEngine.Object의 내부의 C++ NativeObjec..

Unity 2023.07.13

[Unity] 미니맵 만드는 방법

카메라 생성 시점 조정 카메라 Projection을 Perspective에서 Orthographic으로 변경 Perspective와 Orthographic의 차이점은 원근법에 차이로 Perspective는 원근법이 적용되며 Orthographic는 원근법이 적용되지 않는다. Size 적용 원하는 Map Size에 맞게 size를 조정한다 Render Texture 생성 Assets폴더 안에 원하는 폴더하위 자식으로 Render Texture을 생성한다. ui - Raw Image생성 Raw Image와 Render Texture 연결 Raw Image의 texture에 만들었던 Render Texture를 연결한다. Camera와 Render Texture 연결 camera -> render textur..

Unity 2023.07.04

[Unity] 유용한 Asset

[Packetg Manager] Addressable 런타임시 에셋 자원 관리에 유용 프리펩 경로 등 자유자재로 변경해도 소스에 영향을 받지 않는다. https://gist.github.com/MeowKim/904087f7c2b372a5df72a0925add85d6 Unity Addressable Asset System 가이드 Unity Addressable Asset System 가이드. GitHub Gist: instantly share code, notes, and snippets. gist.github.com Memory Profiler 메모리 추적 https://docs.unity3d.com/kr/2021.2/Manual/ProfilerMemory.html 메모리 프로파일러 모듈 - Unity ..

Unity 2023.07.03