찾기
내용으로 건너뛰기
추적
•
sl-other
•
mmohowtouse
•
directiondistancefromoneobjecttoanother
•
occlusionportal
•
occlusionculling
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
======AssetDatabase====== AssetDatabase 는 사용자 프로젝트에 있는 에셋에 접근할 수있게하는 API입니다. 무엇보다 이것은 에셋을 찾고, 로드, 생성, 제거 그리고 수정할 수 있습니다. 유니티 에디터는 내부적으로 에셋 파일을 추적하고 에셋과 그것을 참조하는 객체의 연결을 관리하는데 AssetDatabase를 사용합니다. 유니티는 프로젝트 폴더의 모든 변경을 알고 있어야 하기 때문에 사용자가 에셋데이타에 접근 또는 수정을 원할 때는 파일 시스템보다 항상 AssetDatabase API를 이용해야 합니다. AssetDatabase인터페이스는 에디터에서만 사용가능하며 빌드된 플레이어 에서는 기능이 없습니다. 다른 모든 에디터 클래스처럼 이것은 �Editor� 폴더에 위치한 스크립트에게만 사용가능 합니다(만약 프로젝트의 메인 에셋 폴더에 에디터라는 라는 폴더가 존재하지 않으면 생성하십시오). =====에셋 불러오기===== 유니티는 보통 프로젝트에 드래그되어오면 자동으로 불려 지는데 스크립트 제어를 통해서도 불러 올수 있습니다. 이렇게하기 위해서는[[ScriptRef:AssetDatabase.ImportAsset.html|AssetDatabase.ImportAsset]] 를 아래의 예제처럼 사용합니다 <file csharp>using UnityEngine; using UnityEditor; public class ImportAsset { [MenuItem ("AssetDatabase/ImportExample")] static void ImportExample () { AssetDatabase.ImportAsset("Assets/Textures/texture.jpg", ImportAssetOptions.Default); } }</file> 또한 추가로 [[ScriptRef:AssetDatabase.ImportAssetOptions.html|AssetDatabase.ImportAssetOptions]] 타입의 인자를AssetDatabase.ImportAsset 함수에 넘겨줄 수 있습니다. 스크립팅 참조 페이지 에서는 다른 옵션들과 함수에서 그 옵션들의 영향을 알수 있습니다 =====에셋 로딩===== The editor loads assets only as needed, say if they are added to the scene or edited from the Inspector panel. However, you can load and access assets from a script using [[ScriptRef:AssetDatabase.LoadAssetAtPath.html|AssetDatabase.LoadAssetAtPath]], [[ScriptRef:AssetDatabase.LoadMainAssetAtPath.html|AssetDatabase.LoadMainAssetAtPath]], [[ScriptRef:AssetDatabase.LoadAllAssetRepresentationsAtPath.html|AssetDatabase.LoadAllAssetRepresentationsAtPath]] and [[ScriptRef:AssetDatabase.LoadAllAssetsAtPath .html|AssetDatabase.LoadAllAssetsAtPath ]]. See the scripting documentation for further details. 에디터는 에셋을 필요할 때만 로딩을 하는데 예를들어 씬에 에셋이 추가되었거나 Inspector창에서 수정되었을 때입니다. 그러나[[ScriptRef:AssetDatabase.LoadAssetAtPath.html|AssetDatabase.LoadAssetAtPath]], [[ScriptRef:AssetDatabase.LoadMainAssetAtPath.html|AssetDatabase.LoadMainAssetAtPath]], [[ScriptRef:AssetDatabase.LoadAllAssetRepresentationsAtPath.html|AssetDatabase.LoadAllAssetRepresentationsAtPath]] 와 [[ScriptRef:AssetDatabase.LoadAllAssetsAtPath .html|AssetDatabase.LoadAllAssetsAtPath ]]. 자세한 사항은 스크립팅 문서를 보세요. <file csharp>using UnityEngine; using UnityEditor; public class ImportAsset { [MenuItem ("AssetDatabase/LoadAssetExample")] static void ImportExample () { Texture2D t = AssetDatabase.LoadAssetAtPath("Assets/Textures/texture.jpg", typeof(Texture2D)) as Texture2D; } }</file> =====AssetDatabase를 이용한 파일 작업===== Since Unity keeps metadata about asset files, you should never create, move or delete them using the filesystem. Instead, you can use [[ScriptRef:AssetDatabase.Contains.html|AssetDatabase.Contains]], [[ScriptRef:AssetDatabase.CreateAsset.html|AssetDatabase.CreateAsset]], [[ScriptRef:AssetDatabase.CreateFolder.html|AssetDatabase.CreateFolder]], [[ScriptRef:AssetDatabase.RenameAsset.html|AssetDatabase.RenameAsset]], [[ScriptRef:AssetDatabase.CopyAsset.html|AssetDatabase.CopyAsset]], [[ScriptRef:AssetDatabase.MoveAsset.html|AssetDatabase.MoveAsset]], [[ScriptRef:AssetDatabase.MoveAssetToTrash.html|AssetDatabase.MoveAssetToTrash]] and [[ScriptRef:AssetDatabase.DeleteAsset.html|AssetDatabase.DeleteAsset]]. 유니티는 에셋 파일에 대한 메타 데이터를 가지고 있기 때문에 파일 시스템을 이용하여 그 파일들을 생성, 이동, 제거 하여서는 않됩니다. 대신 [[ScriptRef:AssetDatabase.Contains.html|AssetDatabase.Contains]], [[ScriptRef:AssetDatabase.CreateAsset.html|AssetDatabase.CreateAsset]], [[ScriptRef:AssetDatabase.CreateFolder.html|AssetDatabase.CreateFolder]], [[ScriptRef:AssetDatabase.RenameAsset.html|AssetDatabase.RenameAsset]], [[ScriptRef:AssetDatabase.CopyAsset.html|AssetDatabase.CopyAsset]], [[ScriptRef:AssetDatabase.MoveAsset.html|AssetDatabase.MoveAsset]], [[ScriptRef:AssetDatabase.MoveAssetToTrash.html|AssetDatabase.MoveAssetToTrash]] 와[[ScriptRef:AssetDatabase.DeleteAsset.html|AssetDatabase.DeleteAsset]]를 사용할 수 있습니다 <file csharp>public class AssetDatabaseIOExample { [MenuItem ("AssetDatabase/FileOperationsExample")] static void Example () { string ret; // Create Material material = new Material (Shader.Find("Specular")); AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat"); if(AssetDatabase.Contains(material)) Debug.Log("Material asset created"); // Rename ret = AssetDatabase.RenameAsset("Assets/MyMaterial.mat", "MyMaterialNew"); if(ret == "") Debug.Log("Material asset renamed to MyMaterialNew"); else Debug.Log(ret); // Create a Folder ret = AssetDatabase.CreateFolder("Assets", "NewFolder"); if(AssetDatabase.GUIDToAssetPath(ret) != "") Debug.Log("Folder asset created"); else Debug.Log("Couldn't find the GUID for the path"); // Move ret = AssetDatabase.MoveAsset(AssetDatabase.GetAssetPath(material), "Assets/NewFolder/MyMaterialNew.mat"); if(ret == "") Debug.Log("Material asset moved to NewFolder/MyMaterialNew.mat"); else Debug.Log(ret); // Copy if(AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(material), "Assets/MyMaterialNew.mat")) Debug.Log("Material asset copied as Assets/MyMaterialNew.mat"); else Debug.Log("Couldn't copy the material"); // Manually refresh the Database to inform of a change AssetDatabase.Refresh(); Material MaterialCopy = AssetDatabase.LoadAssetAtPath("Assets/MyMaterialNew.mat", typeof(Material)) as Material; // Move to Trash if(AssetDatabase.MoveAssetToTrash(AssetDatabase.GetAssetPath(MaterialCopy))) Debug.Log("MaterialCopy asset moved to trash"); // Delete if(AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(material))) Debug.Log("Material asset deleted"); if(AssetDatabase.DeleteAsset("Assets/NewFolder")) Debug.Log("NewFolder deleted"); // Refresh the AssetDatabase after all the changes AssetDatabase.Refresh(); } }</file> =====AssetDatabase.Refresh 사용하기===== 에셋 변경을 끝마쳤을 때는AssetDatabase.Refresh를 불러서 변경 사항을 데이터 베이스에 저장(commit)하고 그 사항들을 프로젝트에 적용시킬 수 있습니다. {{tag>유니티 unity}} * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.AssetDatabase|유니티코리아위키]] (CC BY-NC-SA 2.0)
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
유니티3D ( Unity3D )
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
유니티3D ( Unity3D )
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
misuse_topical5
노박
unique_items
dinner_bell
deputy_beagle
ratslayer
one_for_my_baby
alerio
power_fist
제거됨
fixer
climb_ev_ry_mountain
companion
[장비 분실]
crashed_vertibird
brotherhood_t-51b_power_armor
marco
i_forgot_to_remember_to_forget
cateye