Unity 83

[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

[Unity] GUI 사용 예제

가로/세로 배치 // Layout을 가로로 배치한다. EditorGUILayout.BeginHorizontal(); { .. 원하는 GUI 배치 내용물 입력 } EditorGUILayout.EndHorizontal(); // Layout을 세로로 배치한다. EditorGUILayout.BeginVertical(); { .. 원하는 GUI 배치 내용물 입력 } EditorGUILayout.EndVertical(); EditorGUILayout 클래스에 있는 Horizontal 함수를 사용하면 가로로 배치할 수 있다. 여기서 중요하게 봐야 할 점은 항상 가로로 배치할 GUI 내용물들을 Begin과 end 사이에 넣어야 한다는 것이다. EditorGUILayout.EndHorizontal();을 넘어가는 순간..

Unity 2023.05.18

[Unity] UI 텍스트 가변길이 설정 방법(레이아웃 재 정렬)

가변적인 텍스트에 따라서 UI의 크기를 맞추기위해 LayoutRebuilder.ForceRebuildLayoutImmediate를 사용하면된다. LayoutRebuilder.ForceRebuildLayoutImmediate(사용하고자하는 텍스트의 ReactTransform); https://docs.unity3d.com/2018.2/Documentation/ScriptReference/UI.LayoutRebuilder.ForceRebuildLayoutImmediate.html Unity - Scripting API: UI.LayoutRebuilder.ForceRebuildLayoutImmediate Normal use of the layout system should not use this method...

Unity 2023.05.17