Unity/C# 2022. 6. 8. 21:57[Unity] Renderer의 Materials 동적 변경

Renderer에 접근하여 Material들을 동적으로 바꿔줘야 할 때가있다. 처음 생각한 간단한 방법으로는 적용되지않아서 찾아낸 정보를 기록한다. 틀린예시 for (int i = 0; i < rend.materials.Length; i++) { rend.materials[i] = new Material(maskedShader); } 맞는예시 var rend = gameObject.GetComponentInChildren(); Material[] mats = rend.materials; for (int i = 0; i < rend.materials.Length; i++) { mats[i] = new Material(maskedShader); mats[i].CopyPropertiesFromMaterial(..

Unity/C# 2022. 5. 17. 13:34[Unity] JSON을 딕셔너리처럼 입출력하기

Unity의 JsonUtility를 사용하다보면 커스텀 클래스를 쉽게 JSON으로 파싱할 수 있지만 원하는 변수 몇개만 JSON으로 파싱해주는 기능이나, 파싱 이후에 변수룰 추가, 삭제, 수정을 할 수 있게해주는 기능이 없다. 그래서 이런식으로 한글자 한글자 입력해서 JSON으로 만들어 쓰다가 $"{{\"account_uuid\": \"{account_uuid}\", \"email\": \"{email}\", \"password\": \"{hashed_password}\", \"team\": \"{team}\"}}"; 너무 불편해서 찾아낸 방법이다. JSON .NET For Unity | Input Management | Unity Asset Store Get the JSON .NET For Unity ..

[UE4] VS Code 환경구성 + 인텔리전스 Fix
UE4/Tips-UE4 2022. 5. 13. 23:23[UE4] VS Code 환경구성 + 인텔리전스 Fix

언리얼 엔진4에서 VS Code환경을 구성하면서 겪은 시행착오를 메모합니다. 언리얼엔진 4.27.2 버전을 기준으로 합니다. 순서 : - UE4 에디터 에디터 개인설정 - 일반 -> 소스코드 탭에서 소스코드 에디터를 'Visual Studio Code'로 변경 - 엔진 재시작 - 상단메뉴 파일 -> VisualStudioCode프로젝트 새로고침 --- 여기서부터 인텔리전스 버그가 발생 --- 이후 VS Code로 소스를 열면 헤더파일 임포트부분이 빨간줄이 그어져있고 인텔리전스가 작동하지 않는다. 검색해서나온 여러가지 해결책들을 적용해봤지만 내경우엔 VS Code 확장으로 고쳤다. 먼저 이 링크로 들어가서 Installation을 따라해준다. vsc-ext-ue4-int-fixes.md GitHub Gis..

[Unity] 마우스(포인터)가 UI위에 있는지 확인하기
Unity/UI 2022. 5. 11. 13:25[Unity] 마우스(포인터)가 UI위에 있는지 확인하기

private bool IsPointerOverUI()    {        PointerEventData pointerEventData = new PointerEventData(EventSystem.current);        pointerEventData.position = Input.mousePosition;        ListRaycastResult> results = new ListRaycastResult>();        EventSystem.current.RaycastAll(pointerEventData, results);        for (int i = 0; i results.Count; i++)        {            if (results[i].gameObject.l..

Unity/C# 2022. 5. 9. 14:54[Unity] Raycasthit.transform과 Raycasthit.collider.transform

Raycasthit은 구조체 이고 레이캐스트를 할 때 맞은 오브젝트에 대한 정보를 담아서 out하는 구조체이다 그 안에는 바로 접근가능한 transform과 collider멤버를통해 collider.transform으로 접근가능한 transform이 있다. 둘의 차이는 만약 레이캐스트에맞은 오브젝트가 리지드바디가 있을경우 Raycasthit.transform은 리지드바디가 붙어있는 Transform을 반환한다. 예를들어 이런식으로 루트부모에 리지드바디를달고 그 자식에 콜라이더를 달아놓으면 자식 콜라이더의 사이즈대로 충돌을 체크하겠지만 Raycasthit.transform은 리지드바디가있는 루트부모인 ZergelingMonster를 반환한다. 여기서 콜라이더가 붙어있는 오브젝트를 반환받고싶다면 Raycas..

[Unity Shader] 컬러마스크 쉐이더를 이용한 커스터마이징 구현
Unity/Shader 2022. 4. 14. 23:58[Unity Shader] 컬러마스크 쉐이더를 이용한 커스터마이징 구현

기존에 사용하던 쉐이더에 컬러 마스크 기능 코드를 추가하여,컬러 마스크 기능을 이용하여 커스터마이징을 구현하였다. Patreon의 Quick Game Art Tips - Unity Color Mask | Minions ArtMinions Art의 공식 포스트www.patreon.com 다음은 쉐이더에 추가해야하는 부분이다.먼저 변경할 쉐이더 상단 Properties부분에 필요한 변수들을 추가해 준다.     Properties    {...생략        _Mask("ColorMask (Red = Prim Green = Sec Blue = Ter)", 2D) = "white" {} // mask texture        _ColorPrim("Primary Color", Color) = (0.5,0.5..

image