TryParse 란 문자열 데이터를 다양한 데이터 형식으로 변환할 때, 예외 처리와 데이터 유효성을 다루는 문제를 처리할 때 활용될 수 있습니다. 문자열을 변환하려는 데이터 형식으로 안전하게 변환할 수 있으며, 변환이 실패하는 경우 예외를 방지할 수 있습니다. 변환이 성공하면 true를 반환하고, 변환된 값을 지정한 변수에 저장합니다. 변환이 실패하면 false를 반환하고 변수에는 해당 데이터 형식의 기본값이 유지됩니다. 예제 1. Int 변환 using UnityEngine; public class IntegerConversionExample : MonoBehaviour { void Start() { string input = "123"; int number; if (int.TryParse(input,..
StaticBatching에 대해 Static Batching이 무엇인지 알아야 StaticBatchingUtility 클래스를 사용할 수 있어 간단하게 설명해 보겠습니다. Static Batching은 게임 오브젝트를 정적(Static)으로 일괄 처리하여 렌더링 성능을 향상하는 기능을 제공합니다. 즉, 여러 개의 정적(움직이지 않는) 오브젝트를 단일 메시로 결합하여 한 번의 Draw Call로 렌더링 할 수 있도록 하는 프로세스입니다. Draw Call을 줄이면 왜? 좋은지에 대해 짤막하게 언급해 둔 포스팅이 있어서 링크 달아두겠습니다. 2023.08.04 - [Unity/Assets] - 유니티 MeshBaker 유니티 MeshBaker MeshBaker란? 여러 개의 메시를 하나의 큰 메시로 결합하..
Multiton Pattern이란? 멀티톤 패턴은 클래스에 제한된 인스턴스(Instance) 집합을 확보하고 키(Key)를 기반으로 각각의 인스턴스에 액세스할 수 있는 지점을 제공하는 디자인 패턴입니다. 각 키는 단일 인스턴스에 매핑됩니다. 따라서 싱글톤처럼 인스턴스가 하나만 있는 대신 멀티톤은 각 키에 해당하는 인스턴스 수를 제어할 수 있습니다. Multition 사용방법 멀티톤을 사용하는 경우는 주로 각 개별 키(Key)에 대해 클래스의 단일 인스턴스가 필요한 경우에 사용됩니다.(예를 들어, Database, UI 등) 이렇게 구성하면 고유한 목적이나 기능을 담당하는 여러 개의 "단일" Instance를 가질 수 있습니다. public class ConfigurationManager { private..
FirstOrDefault란?주어진 조건을 만족하는 시퀀스에서 첫 번째 요소를 검색하는 LINQ의 메서드입니다. 시퀀스란 저번 Dotween Pro에셋을 소개하면서 짧게 설명해봤습니다. 아래 링크를 참고해주세요! 2022.11.16 - [Unity/Assets] - 신나서 쓰는 Dotween Pro 에셋 사용법 신나서 쓰는 Dotween Pro 에셋 사용법Dotween이란? Dotween은 빠르고 효율적이며 안전성을 갖춘 애니메이션 엔진으로, C#에 최적화되어 있습니다. 높은 수준의 유연성과 커스터마이징을 유지하면서 단순하고 사용하기 쉬운 것으로 잘 알wlsdn629.tistory.com사용방법Predicate이 없는 경우- Predicate란? 사전적인 의미로는 "서술하다, 단정하다" 라는 뜻으로 사용..
EventTrigger 컴포넌트란? Event Trigger 컴포넌트는 다양한 UI 이벤트를 감지하고 이에 대응할 수 있게 도와줍니다. Event Trigger 컴포넌트를 사용하면 Pointer Click , Pointer 입력, Pointer 종료, Pointer Down, Pointer Up 등과 같은 여러 이벤트를 스크립트의 다양한 함수나 메서드에 바인딩할 수 있습니다. Pointer Events 종류 Pointer Enter : 이 이벤트는 포인터(마우스 커서 또는 손가락)가 UI 요소의 경계에 들어갈 때 발생합니다. Pointer Exit : 이 이벤트는 포인터가 UI 요소의 경계를 벗어날 때 발생합니다. Pointer Down : UI 요소에서 포인터를 눌렀을 때 발생하는 이벤트입니다. Poi..
Render Texture을 만들면 Dimension, Size, Anti-aliasing, Enable Compatible Format, Color Format, Depth Stencil Format, Enable Mip Maps, Dynamic Scaling, Wrap Mode, Filter Mode가 존재하는 것을 확인할 수 있습니다. 이것들에 대해 간단하게 알아보고자 합니다. Dimension 2D : 가장 간단한 렌더 텍스처 유형은 2D 텍스처입니다. 평면 그림이나 사진과 매우 유사합니다. 픽셀 단위로 측정된 너비와 높이가 있습니다 2D Array : Cube : 렌더 텍스처가 큐브맵입니다. 큐브맵 렌더 텍스처는 동적 큐브맵 리플렉션에 가장 자주 사용됩니다 3D : 렌더 텍스처가 3D입니다. A..
유니티에서 Texture을 복사하는 방법에는 2가지 방법이 있습니다. Graphics.CopyTexture() Graphics.Blit() Graphics.CopyTexture()는 텍스처 간의 간단하고 효율적인 데이터 전송에 더 좋으며, Graphics.Blit()은 복사하는 동안 데이터에 셰이더를 적용하거나 텍스처 데이터를 크기에 맞게 조정해야 할 때 사용됩니다. Graphics.CopyTexture 주로 효율적인 데이터 전송에 초점을 맞춘 함수입니다. CPU에서 작업을 하지 않고 GPU에서 직접 작업을 수행하여 CPU와 GPU 간 데이터 전송으로 인한 성능 저하를 줄여줍니다. Graphics.CopyTexture()는 한 텍스처에서 다른 텍스처로 '정확한' 데이터를 복사해야 하는 상황, 즉 텍스처의..
UnityEvent 란? 인스펙터에서 이벤트를 노출하는 방법을 제공하여 디자이너와 개발자가 그래픽 인터페이스에서 작업을 할당할 수 있도록 합니다. UnityEvent의 일반적인 사용법은 다음과 같습니다. using UnityEngine; using UnityEngine.Events; public class MyComponent : MonoBehaviour { public UnityEvent myEvent; private void Awake() { if (myEvent == null) myEvent = new UnityEvent(); myEvent.AddListener(SomeFunction); } public void TriggerEvent() { myEvent.Invoke(); } private voi..
GetOrAddComponent란? 게임 개체에 특정 컴포넌트를 가져오거나 컴포넌트가 존재하지 않는 경우 게임 개체에 컴포넌트를 추가하는 편리한 유틸리티 메서드입니다. 컴포넌트를 수동으로 확인 및 추가하지 않고 게임 개체에 컴포넌트가 있는지 확인하려는 경우 일반적으로 사용됩니다. using UnityEngine; public static class ComponentExtensions { public static T GetOrAddComponent(this GameObject gameObject) where T : Component { T component = gameObject.GetComponent(); if (component == null) { component = gameObject.AddComp..
Vector3 incoming = new Vector3(1, 1, 0); Vector3 normal = new Vector3(0, 1, 0); Vector3 normal_flipped = new Vector3(0, -1, 0); Vector3 reflected = Vector3.Reflect(incoming, normal); Vector3 reflected_flipped = Vector3.Reflect(incoming, normal_flipped); Debug.Log(reflected); // Output: (1, -1, 0) Debug.Log(reflected_flipped); // Output: (1, -1, 0) Vector3.Reflect란? 지정된 법선을 사용하여 표면을 벗어난 벡터의 반사를 계..
RenderTexture란? Render Texture는 렌더링 작업에 사용되는 특수 유형의 텍스처입니다. 장면, 개체 또는 후처리 효과를 화면 밖에서 렌더링할 수 있습니다. 다양한 영역을 모니터링할 수 있는 보안 카메라 시스템을 만들고 싶을 때 Render Texture을 사용할 수 있습니다. 이번 포스팅에서는 간단하게 해당 장면을 캡쳐한 후 png파일로 폴더에 저장하는 방법에 대해 배워보고자 합니다. 카메라 세팅 유니티 MIRROR(거울) 구현하는 방법 빈오브젝트를 하나 생성해준다빈오브젝트 자식으로 quad를 하나 생성해준다스케일을 9: 16으로 설정해주고(입맛대로 변경하면 됨, 단!! Render Texture 해상도도 여기에 맞게 해줘야함) Scale을 줄인다 wlsdn629.tistory.com..
Layer 충돌 무시 2가지 종류 1. 에디터 Project Setting을 이용하는 방법 2. 스크립트를 사용하는 방법 에디터 Project Setting을 이용하는 방법 무시하고 싶은 Layer간에 체크를 해제해준다. 스크립트를 사용하는 방법(Physics.IgnoreLayerCollision) using UnityEngine; public class CollisionManager : MonoBehaviour { public void IgnoreCollision(string layer1, string layer2, bool ignore) { int layer1Index = LayerMask.NameToLayer(layer1); int layer2Index = LayerMask.NameToLayer(l..
LayerMask란?레이어 기반 작업을 단순화하는 기능입니다. 32비트 정수로 표시되는 Bit Mask를 사용하면 특정 레이어에서 대상 작업을 필터링하고 수행할 수 있습니다. LayerMask 함수LayerMask.GetMask원하는 레이어의 이름을 지정하여 LayerMask를 구성합니다. 예를 들어 LayerMask.GetMask("Player", "Enemy")를 사용하여 "Player" 및 "Enemy" 레이어를 모두 포함하는 LayerMask를 만들 수 있습니다. LayerMask.GetMask의 목적은 원하는 레이어의 이름을 지정하여 '비트마스크를 생성'하는 것입니다. Index가 0부터 시작하여 지정된 각 레이어에 대해 1씩 증가하는 인덱스를 레이어에 자동으로 할당합니다. 예를 들어, "Pi..
대표 이미지 사진은 저의 귀여운 게임 캐릭터 땃쥐랍니다 ㅎㅎ PlayClipAtPoint AudioSource.PlayClipAtPoint 함수는 게임 내의 '특정 위치'에서 오디오 클립을 재생할 수 있는 함수입니다. AudioSource 컴포넌트를 게임 오브젝트에 부착하는 방식과 달리 이 기능은 사운드 재생에 더 많은 유연성을 제공합니다. PlayClipAtPoint를 사용하는 이유 Spatial Audio : 게임 내에 특정 위치를 지정하여 공간 오디오 효과를 생성할 수 있습니다. 소리가 특정 지점에서 나오는 것처럼 보이게 하여 플레이어를 몰입시켜 사실감과 깊이를 향상시킬 수 있습니다. 오디오 분리: 게임 개체에서 오디오 재생을 분리하여 오디오 소스 관리를 단순화하고 특정 개체의 위치 또는 수명 주기..
Cloth 컴포넌트란? Cloth는 천과 같은 동작을 시뮬레이션하는 데 사용되는 컴포넌트입니다. Cloth컴포넌트를 이용하여 중력, 바람 및 충돌과 같은 외부 힘에 반응하는 사실적인 fabric, flag, 배너 및 천(Cloth)과 같은 개체를 만들 수 있습니다. 결과 귀여운 땃쥐가 천에 부딪히면 천이 흔들리는 것을 볼 수 있다! Docu https://docs.unity3d.com/kr/2018.4/Manual/class-Cloth.html 천 - Unity 매뉴얼 천(Cloth) 컴포넌트는 스킨드 메시 렌더러와 함께 작동하여 직물을 시뮬레이션하는 물리 기반 솔루션을 제공합니다. 이 컴포넌트는 캐릭터의 옷에 사용하도록 특별히 고안되었고 스킨드 메시만 docs.unity3d.com