c++의 std::string에는 contains함수가 존재하지 않는다. 이를 대신하기 위해 find 함수가 존재한다. [function origin] size_t find (const string& str, size_t pos = 0) const; size_t find (const char* s, size_t pos = 0) const; size_t find (const char* s, size_t pos, size_t n) const; size_t find (char c, size_t pos = 0) const; [parameter] str : 찾고자 하는 문자열 pos : str을 pos위치부터 찾기 시작 s : 캐릭터형의 배열을 가리키는 포인터 n : 연속으로 일치해야 하는 최소 길이 c : 찾고..
Json 자바스크립트의 객체 표기법으로부터 파생된 부분 집합 이름과 값의 쌍으로 이루어진 데이터 JSON .NET 사용하기 JSON .NET for Unity Asset 다운로드(바로가기) Unity C# code에 using Newtonsoft.Json; 추가시 호출 가능 JSON .NET 주요 클래스 JObject JSON Object를 담을 수 있는 Class (key, value) pair를 저장하는 오브젝트 클래스 key : string value : JToken[premitive type, datetime, timespan, uri 등 사용 가능) JObject, JArray를 사용할 수 있음 Example var json = new JObject(); json.Add("id", "Hutom"..
사내에서, GPGPU와 Unity를 활용한 Compute Shader에 대해 세미나를 진행할 일이 생겨서 PPT를 정리하면서 개념을 다시 한번 요약해보았다. 석/박때 공부했던 내용들과 최근에 올라온 각종 자료들을 취합해서 요약한 자료를 블로그에도 포스팅한다. 기회가 되면 유니티에서 활용하기 쉬운 예제들로 포스팅을 이어가볼 예정이다. GPGPU General-Purpose computing on Graphics Processing Units 일반적으로 컴퓨터 그래픽스를 위한 계산만 맡았던 그래픽 처리 장치(GPU)를, 전통적으로 중앙 처리 장치(CPU)가 맡았던 응용 프로그램들의 계산에 사용하는 기술 GPGPU 구현 API & 프레임워크 OpenGL Compute Shader DirectX DirectCo..
Inno Setup이란? 배포를 위한 설치 파일 패키징 SW Install Factory, InstallShield 등 비슷한 SW가 존재함 1. Inno Setup 설치 https://jrsoftware.org/isinfo.php 접속 후 최신버전 설치 2. 생성 마법사를 사용해 스크립트 만들기 [1단계] Application name : App name 입력(My Program) Application version : App version 입력(1.5) Application publisher : App 개발사 입력(My Company) Application website : App 개발사 홈페이지 입력(http://www.naver.com) [2단계] Application destination bas..
Unity의 렌더링 파이프라인인 URP(Universal Render Pipeline)에는 Light Probe Gorup이라는 개념이 존재한다. Light Map은 고정되어있는 오브젝트로 구성된 scene의 리얼리티를 크게 높여줄 수 있지만, 움직이는 오브젝트들로 구성된 scene에서는 리얼리티가 떨어져보이는 단점이 존재한다. Light Probe를 사용하면 이동하는 오브젝트들의 라이트 매핑을 실시간으로 계산하는 것 처럼, 더 저렴한 비용으로 비슷한 효과를 얻을수 있다. 1. GameObject -> Light -> Light Probe Group 생성 생성한 GameObject에 Light Probe Group 컴포넌트가 추가되어있으며, Edit Light Probes 버튼을 눌러 다음 네가지 기능을..
git bash를 통해 git commit 메시지를 입력하면, commit message를 수정할 수 있는 폼을 띄울 수 있다. 이 때 기본적으로 보여질 템플릿 메시지를 다음과 같은 명령어로 지정할 수 있다. 1. gitmessage template파일 저장하기(파일 이름 : .gitmessage.txt) # [커밋 타입] 리스트 # feat : 기능 (새로운 기능) # fix : 버그 (버그 수정) # refactor : 리팩토링 # style : 스타일 (코드 형식, 세미콜론 추가: 비즈니스 로직에 변경 없음) # docs : 문서 (문서 추가, 수정, 삭제) # test : 테스트 (테스트 코드 추가, 수정, 삭제: 비즈니스 로직에 변경 없음) # chore : 기타 변경사항 (빌드 스크립트 수정 ..
Local 환경에서 자동로그인을 구현한다던지, 점수를 저장하는 등 레지스트리를 활용해 데이터를 관리해야할 상황이 발생한다. 이 때 PlayerPrefs라는 기능을 사용하면 원하는 키워드와 값을 매핑해 레지스트리에 등록할 수 있고, 이를 활용해 데이터를 사용할 수 있다. //SetInt(string key, int value) //SetString(string key, string value) PlayerPrefs.SetInt("state",1); PlayerPrefs.SetString("email",id); PlayerPrefs.SetString("password",pw);
C#에서 소수점 자리수를 바꾸기 위해서는 C#의 Math 클래스에 Round 함수를 이용하는 방법이 있다. Unity에서 Vector로 가져온 쿼터니언 데이터를 출력하면 소수점 7자리까지 출력되는 경우들이 있는데, 사용처에 따라 소수점 3~4자리까지만 표현해도 되는 상황이 존재한다. 이 때 아래 함수를 사용하면 손쉽게 Vector를 가공해 다시 저장할 수 있다. public Vector3 RoundVectorData(Vector3 data) { Vector3 res = Vector3.zero; /* Math.Round(데이터,자릿수) : 반올림 함수 example Math.Round(input, 3); 입력 : 1.1234567 출력 : 1.123 */ /* Math.Ceiling(데이터) : 올림 함수..