Unity 82

[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

[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.com https://docs.unity3d.com/kr/2018.4/Manual/webgl-deploying.html WebGL: 압축된 빌드 배포 - Unity 매뉴얼 릴리스 모드에서 WebGL 프로젝트를 빌드하는 경우(빌드 퍼블리시 참조), Unity는..

Unity 2023.04.03

[Unity] 프로그래스바(ProgressBar) 만들기

UI 생성 Slider 생성 Slider 설명 Fill Fill Area 안에 Fill의 image 색을 변경하면 위의 사진처럼 value에 따라 색상이 변경된다. FillArea Fill Area의 크기를 조정하여 색상이 채워지는 부분을 조절할 수 있다. (디테일) Hp bar처럼 오브젝트를 따라다니게 만드는 방법 해당 Slider을 그리는 cavas를 world space로 변경하고 소스에서 해당 오브젝트 포지션으로 맞춰주면 된다. Progress Bar 소스 제어방법 Canvas에 Progress Bar를 제어하는 cs 파일을 컴포넌트 한 경우 public class ProgressBarTest : MonoBehaviour { protected Dictionary _objects = new Dict..

Unity 2023.03.27