목록프로그래밍 (61)
코드 원문 : using System.IO; using UnityEngine; public static class ColorUtils { /// /// 지정된 16 진수 색상으로 변환합니다 /// /// /// /// // RGBA (1.000, 0.502, 0.000, 1.000) /// ColorUtils.ToARGB (0xFFFF8000) /// /// public static Color ToARGB ( uint val) { var inv = 1f / 255f ; var c = Color.black; ca = inv * ((val >> 24 ) & 0xFF ); cr = inv * ((val >> 16 ) & 0xFF ); cg = inv ..
코드 원문 : using System; using System.Collections; using UnityEngine; public static class CoroutineCommon { private static readonly MonoBehaviour mMonoBehaviour; static CoroutineCommon () { var gameObject = new GameObject ( "CoroutineCommon" ); GameObject.DontDestroyOnLoad (gameObject); mMonoBehaviour = gameObject.AddComponent (); } public static void CallWaitForOneFrame (Action act) { mMonoBehavio..
코드 원문 : public static class StringExtensions { public static string RemoveNewLine( this string self ) { return self.Replace( "\r", "" ).Replace( "\n", "" ); } } 사용법: var str = "피카츄 \n망나뇽" ; str = str.RemoveNewLine (); 참고: http://www.atmarkit.co.jp/fdotnet/dotnettips/1000removecrlf/removecrlf.html
코드 원문: public static class StringUtils { private const string PASSWORD_CHARS = "0123456789abcdefghijklmnopqrstuvwxyz" ; public static string GeneratePassword ( int length) { var sb = new System.Text.StringBuilder (length); var r = new System.Random (); for ( int i = 0 ; i
Unity의 Inspector에는 기본적으로 1차원 배열만 표시되고, 2차원 배열의 경우 표시되지 않습니다. CustomEditor혹은 PropertyDrawer를 사용해 Inspector를 수정하는 방법도 있지만, 좀 더 쉬운 방법에 대해 다뤄보려고 합니다. ... [SerializeField] public SubArray[] m_mainArray; [Serializable] public struct SubArray { [SerializeField] public GameObject[] m_subArray; } ... 위와같이 구조체를 만들어, [Serializeable]을 해준 후, 구조체의 내부에 사용할 배열을 선언해줍니다. 이후, 해당 구조체를 타입으로 가지는 배열을 선언해 사용하면 Inspecto..
Unity의 Animation기능과, Tween중 어떤 것이 성능이 좋은지, 편한지 비교해보겠습니다 일단, A부터 B까지 일직선으로 이동하는 처리를 한다고 가정했을때 * Animation과 Tween중 성능 면에선 Animation이 근소하게 앞선다 (복잡한 경우일 수록 차이가 늘어난다) * Animaton의 경우 해당 Animation을 위한 리소스 파일을 생성하게 되지만, Tween의 경우는 추가 리소스가 생기지 않는다 정도의 차이가 있겠습니다. Animation의 경우 키프레임 데이터(시간과 위치 등)를 미리 생성하여 저장해놓지만 프레임과 프레임 사이의 중간 처리는 실시간으로 계산됩니다. Tween역시 런타임 중 실시간으로 계산되는 방식입니다. 만들고자 하는 결과물이 복잡할수록 Animation이 ..
유니티 2017.2이하 버전 혹은 5.x를 사용하는 경우 구글 정책의 변경으로 TargetAPI Level을 28이상으로 설정해줘야 하는 문제에 대응하기 위해 고생을 할 것이다. 2019년 8월부터 32비트의 경우 신규 앱 등록을 못하고, 11월부터는 API28이하는 기존 출시 앱이라도 업데이트를 못하게 된다. 그리고 2021년 11월부터는 32비트 앱에 대한 모든 출시/업데이트의 지원을 중단하게 되므로 미리미리 대비하도록 하자 그래서 이번 글에서는 Unity에서 Latest Build Target이 27미만인 Unity버전을 사용하는 분들을 위해 강제로 BuildTarget버전을 지정하는 방법에 대해 포스팅하겠다. 1. Unity빌드 설정을 Gradle로 변경 Unity의 BuildSetting에서 B..
안녕하세요. C++을 이용한 프로그램을 작성한다면 사소하지만 신경써야 할 부분에 관하여 포스팅하겠습니다. 일반적으로 작업을 하다보면 클래스나 구조체를 다른 객체로 복사할 경우 memcpy를 이용할지 =(operator)를 이용할지 판단이 어려운 경우가 있습니다. 아니면 그냥 무조건적으로 =를 사용하고 계신 분들이 있을 수도 있습니다. memcpy와 operator=의 특성과 주의점을 잘 파악해 상황에 따라 이용하도록 합시다 * memcpy 작동 방식 : 구조체(클래스) 크기의 메모리를 복사한다 속도 : 빠르다 주의 사항 : 일반적인 MFC구조체(ex:CString)와 같은 별도로 관리하는 메모리나 포인터같은 변수가 있을 경우 오작동의 우려가 있음. 메모리 크기를 정확하게 대입해야함 * operator =..