목록프로그래밍/ㄴ기타 (25)
코드 원문 : 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이 ..
안녕하세요. C++을 이용한 프로그램을 작성한다면 사소하지만 신경써야 할 부분에 관하여 포스팅하겠습니다. 일반적으로 작업을 하다보면 클래스나 구조체를 다른 객체로 복사할 경우 memcpy를 이용할지 =(operator)를 이용할지 판단이 어려운 경우가 있습니다. 아니면 그냥 무조건적으로 =를 사용하고 계신 분들이 있을 수도 있습니다. memcpy와 operator=의 특성과 주의점을 잘 파악해 상황에 따라 이용하도록 합시다 * memcpy 작동 방식 : 구조체(클래스) 크기의 메모리를 복사한다 속도 : 빠르다 주의 사항 : 일반적인 MFC구조체(ex:CString)와 같은 별도로 관리하는 메모리나 포인터같은 변수가 있을 경우 오작동의 우려가 있음. 메모리 크기를 정확하게 대입해야함 * operator =..
Unity에선 split application binary 기능을 지원한다. 이 기능을 통해 기본 앱(APK)파일과 .obb확장 파일을 만들어 낼 수 있다. 하지만, Application.dataPath를 이용해 특정 경로에서 파일을 가져와 사용하는 처리가 있다면 주의해야한다. Unity Documentation에 다음과 같은 내용이 있다. *** Android: Normally it would point directly to the APK. The exception is if you are running a split binary build in which case it points to the the OBB instead. *** 기본적으로 Android Platform에서 Application.da..
안녕하세요 이번엔 안드로이드 빌드 결과물로 나온 APK의 AndroidManifest를 디컴파일(Decompile)해서 해당 내용을 들여다보고, 분석하는 자동화 배치 파일을 만들어보겠습니다. 규모가 큰 하나의 프로젝트를 여러 플랫폼으로 빌드하다 보면, 플랫폼에 따라 필요한 .aar이나 기타 라이브러리 파일의 관리가 점점 어려워집니다. Google Play Resolver를 사용하고, 직접 aar파일을 관리해주곤 해도 결국 어디선가 실수를 하거나 구멍이 나거나 하면 이유를 찾지 못해 시간을 낭비하곤 합니다. 저는 원스토어, 플레이스토어, 여러 국외 마켓 등 여러가지 플랫폼으로 빌드하는 과정에서 AndroidManifest에 의도치 않은 Permission등이 들어가 중복 설치가 안되거나 하는 것 때문에 꽤..