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/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/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] 길찾기 에셋을 활용한 Wander구현
Unity/C# 2022. 2. 24. 10:24[Unity] 길찾기 에셋을 활용한 Wander구현

Wander : 떠돌다 RPG게임에서 야생동물이나, 오픈월드게임에서 시민NPC들이 정처없이 떠도는걸 말한다. 활용한 에셋: A* Pathfinding Project Pro | AI | Unity Asset Store Get the A* Pathfinding Project Pro package from Aron Granberg and speed up your game development process. Find this & other AI options on the Unity Asset Store. assetstore.unity.com 에셋스토어에는 100불짜리 에셋밖에없지만 제작자 홈페이지에 들어가면 여기서 무료버전도 배포하고있다. 몇가지 기능이 제한돼있다는데 그럼에도 충분히 원하는기능을 구현하기에는 ..

image