[Unity Shader] Foil Trading Card Shader
Unity/Shader 2022. 6. 11. 18:08[Unity Shader] Foil Trading Card Shader

3D카드를 멋지게 표현해보고 싶었다.목표는 아래와 같은 영상이었지만...  튜토리얼을 열심히 찾아봐도 URP 튜토리얼은 조금이나마 있지만 BIRP튜토리얼은아래 영상말고는 찾을수가 없었다. 그래서! 위의 영상을 토대로 한땀한땀 따라서 쉐이더를 코딩하고쉐이더 관련 지식이 별로 없기때문에 원하는대로 커스텀하기 위해고쳐보고 컴파일해서 보고 또 고쳐보고 컴파일해서 보고 반복해서 만들었다. 결과물카드속에 있는 오브젝트는 Stencil마스크로 처리했고,호롤그램 이펙트를 주기위해 혼자서 R&D를 하다가 노말맵과 Gradient맵을 사용해서 구현했는데... 솔직히 정석적인 방법은 아닌것 같다.그래도 좋은 공부가 되었다. 프로젝트 링크GitHub - qwes348/FoilTradingCard: 홀로그램 트레이딩카드 쉐이더..

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 ..

[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