유니티

    [Unity] UnityWebRequest.Post을 사용한 json전송의 문제

    [Unity] UnityWebRequest.Post을 사용한 json전송의 문제

    어떤 문제? 프로젝트에서 사용하고 있는 유니티 에디터 버전: 2020.3.42f1 //ex_WWW는 UnityWebRequest객체 ex_WWW = UnityWebRequest.Post(ex_URL, data); //data는 json을 string으로 변환한 것 ex_WWW.downloadHandler = (DownloadHandler)new DownloadHandlerBuffer(); ex_WWW.SetRequestHeader("Content-Type", "application/json"); 위처럼, UnityWebRequest.Post를 사용해서 string형식의 json을 바로 보내려고 시도하면 이론상 정상적으로 보내져야 하지만, 현재 제대로 보내지지 않습니다 패킷을 확인해보아도 JSON이 아닌,..

    [Unity] PlayerPrefs을 활용한 데이터 저장

    PlayerPrefs란? 유니티에서 데이터 관리를 위해 제공해주는 클래스입니다. int, float, string, bool 타입의 변수를 저장/불러오기 기능을 제공해줍니다. 멤버 함수 * DeleteAll => 모든 키 값을 삭제 * DeleteKey => 특정 키 값을 삭제 * GetFloat => 지정한 float 타입의 키 값을 로드 * GetInt => 지정한 int 타입의 키 값을 로드 * GetString => 지정한 String 타입의 키 값을 로드 * HasKey => 해당 키가 존재하는 여부를 반환 * Save => 변경된 모든 키 값을 물리적인 저장 공간에 저장 * SetFloat => 지정한 키로 float 타입의 값을 저장 * SetInt => 지정한 키로 int 타입의 값을 저장..

    [Unity] UI에서 블로커 구현하기

    [Unity] UI에서 블로커 구현하기

    블로커란? 위처럼 게임 옵션ui를 켰을때, ui를 제외한 다른 부분은 클릭을 눌러도 반응하지 않게 구현하고 싶을때가 있습니다. 이럴때 블로커를 구현하여서 개발자의 의도대로 옵션ui만 클릭이 되도록 할 수 있습니다. 블로커 구현 1. 블로커를 구현하고자 하는 UI 프리팹을 선택합니다. 2. image 오브젝트를 추가해줍니다. 전 이름을 Blocker로 바꾸겠습니다.(자유) 그리고 크기를 카메라를 다 덮을 크기로 설정해줍니다. 3. 방금 생성한 image의 Color속성에서 A(투명도 값)을 0으로 설정해줍니다. 그럼 투명한 Blocker가 됩니다. 그리고 반드시 Raycast Target이 체크되어 있어야합니다. 4. 반드시 Blocker는 가장 위로 올려줘야 합니다. 아래서부터 위로 인식하기 때문에, 가..

    [Unity] 현재 애니메이터의 상태(state), 파라미터 값 아는 방법

    [Unity] 현재 애니메이터의 상태(state), 파라미터 값 아는 방법

    상태 아는 방법 상황: 현재 Hit애니메이션이 실행중인지를 알고 싶을때 anim = GetComponent(); anim.GetCurrentAnimatorStateInfo(0).IsName("Hit") 애니메이터.GetCurrentAnimatorStateInfo(해당 레이어의 인덱스).IsName(스테이트의 이름) 을 통해서 알 수 있습니다. true/false를 반환해줍니다. 파라미터 값 아는 방법 anim.GetCurrentAnimatorStateInfo(0).speed; 애니메이터.GetCurrentAnimatorStateInfo(해당 레이어의 인덱스).파라미터이름 을 통해서 알 수 있습니다. 리턴값은 AnimatorStateInfo입니다. 공식 문서 링크

    [Unity] 헤더추가로 인스펙터 깔끔하게 정리하기!

    [Unity] 헤더추가로 인스펙터 깔끔하게 정리하기!

    헤더추가 전 헤더추가 후 [Header("~~~")] 사용

    [Unity] 애니메이션 이벤트

    [Unity] 애니메이션 이벤트

    애니메이션 이벤트는 왜 사용하는가? 예를 들면, 달리는 애니메이션을 적용하는데, 발이 땅에 닿는 순간에만 발자국 소리를 내고 싶습니다. 이때, 애니메이션창을 통해서 확인했을때, 발이 땅에 닿는 순간에 이벤트를 추가하여 자신이 미리 설정해둔 함수를 실행시키게 설정해둔다면(이 경우엔 발자국 소리를 내는 함수가 되겠습니다.) 깔끔하게 구현이 가능해집니다. 사용 방법 1. 먼저 애니메이션 창을 Ctrl+6 또는 위 과정을 통해서 켜줍니다. 2. 그럼 위와같은 애니메이션 창이 나타납니다. 3. 애니메이션이 적용돼있는 프리팹을 더블 클릭해줍니다. 이때, 해당 프리팹은 당연히 Animator 컴포넌트가 있어야 하고, 이벤트를 발생시킬때 사용할 함수가 정의돼있는 스크립트가 있어야 합니다!! 4. 그럼 애니메이션창에서 ..

    [Unity] Json을 이용한 데이터 관리

    기본 사용법(유니티 기능) { "stats": [ { "level": "1", "hp": "100", "attack": "10" }, { "level": "2", "hp": "150", "attack": "15" }, { "level": "3", "hp": "200", "attack": "20" } ] } 위와 같은 내용을 지닌 Json을 가지고 예시를 들겠습니다. (파일 경로: Data/StatData ) [Serializable] public class Stat { public int level; public int hp; public int attack; } [Serializable] public class StatData { public List stats = new List(); } public..

    [Unity] 코루틴(Coroutine)

    [Unity] 코루틴(Coroutine)

    코루틴이란? 코루틴은 함수 실행중, 중간에 빠져나가고 다른 작업을하다가 다시 중단된 시점부터 이어서 실행하고를 가능하게 해주는 함수를 의미합니다. 그리고 코루틴의 실행은 어느 스레드에서든 가능합니다.(thread-safe를 의미하지는 않음.) (A쓰레드에서 코루틴을 생성하고 실행하다가 중단하고, B스레드에서 다시 실행하더라도 코루틴은 중단 지점으로부터 정상적으로 재개된다는 것입니다.) C#의 코루틴 C#자체가 코루틴을 지원하고 있습니다. class CoroutineTest : IEnumerable { public IEnumerator GetEnumerator() { yield return 1; yield return 2; yield return 3; } } void Init() { CoroutineTes..