![[Unity] UI드래그로 이동 시킬 때 범위 제한](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F3ih4z%2FbtrKUuVyoRj%2FAAAAAAAAAAAAAAAAAAAAALjILHtC7BRcGMdXM910O16hJQh9F1qGY7iytEOETcUR%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dr%252B9DNKes5iovN0%252Fm4g0sYlLAEB4%253D)
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class UnitContent : MonoBehaviour, IBeginDragHandler, IEndDragHandler, IDragHandler { // 부모 그리드 레이아웃 그룹 [SerializeField]private GridLayoutGroup parentGroup; // 드래그 제한 범위 [SerializeField] private RectTransform dragArea; private PointerEventData currentEventDa..
![[Unity] RenderTexutre를 PNG로 저장할때 어두워지는 문제](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FxP1Gu%2FbtrJj6PwZ5U%2FAAAAAAAAAAAAAAAAAAAAAJhJw1jcIsgesvVaOpNpymKDysM0nfroIfLhdDQrEiS-%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D5UF19jk%252B1sqAZ%252Bbp0fb%252FMUbYZAw%253D)
렌더텍스쳐를 PNG로 저장하는 작업을 하던 중 첫번째같이 저장돼야 정상인데 아래같이 어둡게 나오는 문제가 있었다. 관련문제로 검색해보니 이미 좀 알려진 문제였다. 텍스쳐를 PNG로 인코딩할때 프로젝트의 컬러스페이스가 Linear라면 이런다고 하는데... 그렇다고 Linear를 포기할순없으니 찾아낸 방법이다. 렌더텍스쳐의 인스펙터에서 sRGB를 체크해주면 해결된다는 글을 봤는데... 여기서 방법은 2가지인데 1. ColorFormat 드롭다운을 열어서 직접 sRGB포맷 찾기 2. 디버그 인스펙터로 바꿔서 sRGB체크해주기 2번 방법이 쉽고 간편하다 인스펙터 오른쪽위 자물쇠 옆 세로점 3개를 클릭해서 메뉴를 연 뒤, 디버그 인스펙터로 진입하면 바로 체크해주고 다시 테스트해보니 이제 유니티에서 보이는 색감 그..
URP에서 내장함수 OnPostRender() (렌더링 이후 호출됨)을 작성했는데 호출이 되지않아서 검색해보니 나온 방법 using UnityEngine; using UnityEngine.Rendering; public class MyClass: MonoBehaviour { void OnEnable() { RenderPipelineManager.endCameraRendering += RenderPipelineManager_endCameraRendering; } void OnDisable() { RenderPipelineManager.endCameraRendering -= RenderPipelineManager_endCameraRendering; } private void RenderPipelineMana..
![[Unity] 퍼즐게임 레벨에디터 구현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdhMtM8%2FbtsH9uRpEz6%2FAAAAAAAAAAAAAAAAAAAAABcqbU4c4mxdPheRXoIQYr_W8V9Kyhlb1zrVv-OLDJVa%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DRc6eOMwZNskqtKGaHgDL851vu%252FI%253D)
탭 투 블라스트 방식의 캔디팡, 꿈의집과 비슷한 퍼즐게임을 만들어보며레벨 에디터를 구현해 보았다.유니티의 에디터 커스터마이징은 거의 경험이 없었는데이 기회에 버튼이라든가 텍스쳐2D를 불러는거라든가여러가지를 배울 수 있었다. 에디터 스크립트#if UNITY_EDITORusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using UnityEngine.UIElements;using System.Linq;[CustomEditor(typeof(LevelData))]public class LevelDataEditor : Editor{ private LevelData level; ..
// 타겟 Object(String으로도 가능)가 enum에 포함돼있는지 확인하기 Enum.IsDefined(typeof(MyEnum), targetString)) // String을 enum으로 변환하기 MyEnum n = (MyEnum)Enum.Parse(typeof(MyEnum), targetString); Enum.IsDefined 메서드 (System) 지정된 정수 값 또는 문자열로 해당 이름이 지정된 열거형에 있는지 여부를 나타내는 부울을 반환합니다. docs.microsoft.com Enum.Parse 메서드 (System) 하나 이상의 열거된 상수의 이름이나 숫자 값의 문자열 표현을 해당하는 열거형 개체로 변환합니다. docs.microsoft.com
![[Unity] Hitbox와 Hurtbox시스템](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FTBJA6%2FbtsGYO4Fx3G%2FAAAAAAAAAAAAAAAAAAAAACX9u4FTMoxF24VQCSUWu8vYo3GbhWRfwsqUpZasHDnb%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DRUZPZ1thLiHxGFrccOJ%252BW%252FuwhCg%253D)
결과물 영상 Hitbox는 Overlapbox를 통해 충돌을 감지하고 원하는 타이밍에 켜고 끌수있다.(여기선 애니메이션 이벤트로 컨트롤) using System.Collections;using System.Collections.Generic;using UnityEngine;public class Hitbox : MonoBehaviour{ public enum ColliderState { Closed, Open, Colliding } public LayerMask mask; public Vector3 hitboxSize = Vector3.one; public Vector3 offset = Vector..