[Unity] 퍼즐게임 레벨에디터 구현
Unity/Portfolio 2022. 7. 30. 22:02[Unity] 퍼즐게임 레벨에디터 구현

탭 투 블라스트 방식의 캔디팡, 꿈의집과 비슷한 퍼즐게임을 만들어보며레벨 에디터를 구현해 보았다.유니티의 에디터 커스터마이징은 거의 경험이 없었는데이 기회에 버튼이라든가 텍스쳐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; ..

Unity/C# 2022. 7. 29. 17:14[C#] Enum에 Contains인지 확인하기, String을 Enum으로 변환하기

// 타겟 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시스템
Unity/C# 2022. 6. 20. 00:37[Unity] Hitbox와 Hurtbox시스템

결과물 영상 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..

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

image