Path.GetFileName(Path)
경로에 위치된 파일네임을 반환해줌.
ex.) Paht.GetFileName("c:WTest\test.txt") -> 반환값은 text.txt
반환된 파일네임에 확장자명을 제외하고 싶다면 Path.GetFileNameWithoutExtension(path); 를 사용하면 됨.
AssetDatabase.GetAllAssetPaths()
에셋이 있는 모든 경로를 반환해줌(에셋 이름까지 포함)
AssetImporter
에셋임포터는 에디터 클래스로 이 클래스를 사용하려면 우선 프로젝트 폴더 안의 Assets/Editor에
이 클래스를 사용하는 스크립트를 저장해야 한다고 한다.
이클래스 안에는 임포트때 사용하는 importSettings와, AssetBundleName 등과 같은 사용자가 데이터를 저장할수 있는 userdata를 가지고 있고 이를 직렬화 해서 메타 파일의 일부로 저장된다고 한다.
AssetImporter.GetAtPath(Path)를 이용해서 경로(에셋 이름까지 포함해서)에있는 에셋의 에셋 임포터를 가져올수 있고, 임포터에서 접근할수 있는 assetBundleName을 통해 어셋번들네임을 가져오거나 지정할수 있다, 보통 자동화로 번들작업을 할때 각 어셋별로 번들이름을 지정해주려 할때 코드 작업에서 많이 쓰일것 같다.
AssetPostprocessor
AssetDatabase.RemoveUnusedAssetBundleNames()
에셋번들네임 작업을 마친후에 혹시나 사용하지 않고있는 번들 이름이 있을수도 있으므로 이 함수를 사용하면 사용되지 않는 번들이름을 제거해준다.
Directory.GetDirectories(Path)
Path로 넘기는 경로에 있는 하위 디렉토리들의 이름(경로까지 포함)을 반환한다.
Directory.CreateDirectory(Path)
Path로 넘기는 경로에 모든 디렉토리를 생성 시킨다.
Directory.GetFiles(Path)
Path로 넘기는 경로에 있는 파일 목록들을 반환한다. (경로까지 포함해서 반환)
ex.) path를 C/TEST라고 넘겻고 저 경로에 test.txt가 있다고 하면, C/TEST/text.txt를 반환한다.
AssetBundle.LoadAsset(name), AssetBundle.GetAllScenePaths()
LoadAsset은 해당 에셋번들에서 name으로 입력된 에셋을 가져오는 역할,
GetAllScenePaths()는 해당 에셋번들에 있는 모든씬의 경로를 반환한다(씬 이름과 확장자(.unity) 까지
SceneManager.LoadScene이나, SceneManager.LoadSceneAsync를 등을 통해 씬을 불러올때 GetAllScenePaths()를 통해 가져온 씬이 있는 경로를 위의 두 함수 파라미터로 넘겨주면 된다.
무조건 번들에 하나의 씬만있다면 GetAllScenePaths()[0]을 하면 되는거고..
번들안에 여러개 씬이 잇다면 뭐 GetAllScenePath()를 통해 가져온 경로 문자열에 로드할려는 씬의 이름이 포함되어 있는지의 등의 검색을 통해서 가져오는 식으로 하면 될듯 하다.
AssetBundle.LoadFromFile(Path)
Path 경로에 있는 에셋 번들을 로드해온다.
AssetDatabase.SaveAssets()
에셋들이 수정되고 수정된 사항들이 저장되지 않은경우 이 함수를 호출하면 에셋번들의 변경사항을 저장한다. File -> SaveProject와 기능이 같다고 한다.
Selection
유니티 에디터에서의 선택과 관련된 클래스이고 이것도 에디터 클래스이다. 똑같이 프로젝트 폴더 안의 Assets/Editor에 이클래스를 사용하는 스크립트를 저장해야 한다.
ex.) Selection.gameObjects를 하면 유니티 에디터 상에서 현재 내가 선택한 모든 게임오브젝트의 목록을 스크립트 상에서 가져올수 있다.
foreach (GameObject prefab in Selection.gameObjects) 처럼 하나씩 접근해서 처리할수도 있다.
Enum.IsDefined(type, object)
object로 받는 상수값이나 이름이 type로 받는 enum 형식에 있는지의 여부를 반환한다.
TypeConverter, TypeDescriptor
TypeConverter는 타입 변환과 관련된 통합 된 방법을 제공하는 클래스이다
TypeDescriptor는 특성, 속성, 이벤트, 클래스 등과 같은 여러 구성 요소에 대한 정보를 제공하는 클래스이다.
ex.)
TypeConverter converter = TypeDescriptor.GetConverter(typeof(T));
T type = (T)converter.ConvertFromString(text);
와 같이 TypeDescriptor에서 제공되는 GetConverter를 이용하면 파라미터로 넘겨준 type에 대한 TypeConverTer를 반환해주고 TypeConverTer에서 제공되는 ConvertFromString를 이용하면 text에 해당하는 값을 해당 type으로 변환한 값을 넘겨 준다.
BitConverter, MD5.ComputeHash
BitConverter 클래스는 기본데이터 형식을 바이트 배열 혹은 그 반대로 변환하는 방법을 제공하는 클래스이다.
MD5.ComputeHas는 MD5 암호화를 이용하여 해시값을 계산해서 바이트 배열로 반환을 해주는 함수이다.
ex.)
MD5 md5 = MD5.Create();
FileStream fs = File.OpenRead(path);
string value = BitConverter.ToString(md5.ComputeHash(fs)).Replace("-", string.Empty);
fs.Close();
path에 해당하는 경로에있는 파일을 파일 스트림으로 접근한후에 ComputhHash 인자로 스트림을 넘겨주면 계산된 해시값이 바이트 배열로 반환되고 BitConverter.Tostring을 통해 바이트 배열의 각 요소를 16진수 문자열로 변환해서 반환해준다. 변환된 값에 "-"가 추가되서 나오므로 제거할려면 저렇게 없애주면 된다.
'Unity' 카테고리의 다른 글
[NGUI] 스크롤뷰(ScrollView)와 드래그(Drag) 관련.. (0) | 2019.07.29 |
---|---|
유니티(Unity) 에셋번들(AssetBundle)과 관련된 정리中... (1) | 2018.02.20 |
유니티(C#) 잡다한.. 최적화 기법.. 정리中 (1) | 2018.02.05 |
[NGUI] depth 관련 해서.. 혼자 정리 (0) | 2017.01.23 |
유니티랑 nodejs 간단 연동 테스트 해보기. (1) | 2016.10.31 |