AssetDataBase _Path_Directory_File

File 文件

1.创建文件

File.Create(@"D:\Test\Debug1\测试.txt");

需要扩展名

2.打开文件

File.Open(@"D:\Test\Debug1\测试.txt",FileMode.Append);

3.追加文件内容

File.AppendAllText(@"D:\Test\Debug1\测试.txt","哈哈");

4.复制文件

 File.Copy(@"D:\Test\Debug1\测试.txt", @"D:\Test\Debug2\测试1.txt", true);

true表示是否覆盖相同文件

5.移动文件

File.Move(@"D:\Test\Debug1\测试.txt", @"D:\Test\Debug3\测试2.txt");

6.删除文件

File.Delete(@"D:\Test\Debug1\测试.txt");

7.设置文件属性

File.SetAttributes(@"D:\Test\Debug1\测试.txt", FileAttributes.Hidden);

隐藏

 

Directory 目录

1.创建文件夹

Directory.CreateDirectory(@"C:\a");

2.删除文件夹

Directory.Delete(@"C:\a",true);

3.移动文件夹

Directory.Move(@"C:\a",@"C:\Users\Sp\Des\new);

4.获得指定文件夹下所有文件的全路径

string[] path=Directory.GetFiles(@"C:\Users\Sp\Des\Pic","*.jpg");

5.获得指定目录下所有文件夹的全路径

string[] path=Directory.GetDirectories(@"C:\Users\Sp\Des");

6.判断指定的文件夹是否存在

Directory.Exists(@"C:\a\b")

7.目录属性设置

设置目录为只读,隐藏。(与文件属性相同,目录属性也是使用FileAttributes来设置)

DirectoryInfo newDirInfo=new DirectoryInfo(@"C:\temp\NewDirectoty");

newDirInfo.Attributes=FileAttributes.ReadOnly|FileAttributes.Hidden;

 

PATH 路径

string filePath =@"E:/Randy0528/中文目录/JustTest.rar";

1.更改路径字符串的扩展名。
System.IO.Path.ChangeExtension(filePath, "txt");
输出:E:/Randy0528/中文目录/JustTest.txt

2.返回指定路径字符串的目录信息。
System.IO.Path.GetDirectoryName(filePath);
输出:E:/Randy0528/中文目录

3.返回指定的路径字符串的扩展名。
System.IO.Path.GetExtension(filePath);
输出:.rar

4.返回指定路径字符串的文件名和扩展名。
System.IO.Path.GetFileName(filePath);
输出:JustTest.rar

5.返回不具有扩展名的指定路径字符串的文件名。
System.IO.Path.GetFileNameWithoutExtension(filePath);
输出:JustTest

6.获取指定路径的根目录信息。
System.IO.Path.GetPathRoot(filePath);
输出:E:/

7.返回随机文件夹名或文件名。
System.IO.Path.GetRandomFileName();
输出:ct2h5b2h.sed

8.创建磁盘上唯一命名的零字节的临时文件并返回该文件的完整路径。
System.IO.Path.GetTempFileName();
输出:C:/Documents and Settings/Randy/Local Settings/Temp/tmpAD.tmp

9.返回当前系统的临时文件夹的路径。
System.IO.Path.GetTempPath();
输出:C:/Documents and Settings/Randy/Local Settings/Temp/

10.确定路径是否包括文件扩展名。
System.IO.Path.HasExtension(filePath);
输出:True

11.获取一个值,该值指示指定的路径字符串是包含绝对路径信息还是包含相对路径信息。
System.IO.Path.IsPathRooted(filePath);
输出:True

AssetDataBase 资源数据库、

注释:路径基本都需要扩展名 所有路径都是相对工程路径(除了导入,导出)

1.AssetDatabase.GetAssetPath(obj/instanceID)返回相对于工程资源位置的路径名

2.AssetDatabase.LoadAssetAtPath(path,type) 加载指定路径资源

3.AssetDatabase.Refresh 重新导入有更改的资源

4.AssetDatabase.SaveAssets 将所有未保存的资源更改写入磁盘。

5.AssetDatabase.AssetPathToGUID 资源路径转GUID

6.AssetDatabase.GUIDToAssetPath GUID转资源路径

7.AssetDatabase.GetCachedIcon(path) 获取指定路径资源的图标表示

8.AssetDatabase.GetDependencies(paths[]):string[]获取与它们有依赖关系的所有资源列表

解释:返回GUID,这个返回的列表也将包含输入的资源guid

          是大粒度的依赖关系

          例:string []paths = AssetDatabase.GetDependencies(new string[]{"Assets/Resources/Prefab.prefab"})

          扩展:EditorUtility.CollectDependencies(paths[]) 是小粒度的依赖关系 所依赖的组件和 Shader 等都会列出来

9.AssetDatabase.CreateFolder(parentFolder,newFolderName)创建一个新的文件夹

解释:指定父文件夹,创建子文件夹

10.AssetDatabase.RenameAsset (path,newName):string重命名资源

解释:如果资源成功重命名返回一个空的字符串,否者返回错误字符串

11.AssetDatabase.MoveAsset(oldPath,newPath):string 移动资源

解释:移动一个文件到另一个文件夹下,需要在另一个文件夹下起扩展名

12.AssetDatabase.MoveAssetToTrash(path):bool 移动资源到回收站

13.AssetDatabase.DeleteAsset(path) 删除资源

14.AssetDatabase.CopyAsset (path,newPath):bool复制指定路径的资源文件到一个新的路径

 AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(material), "Assets/MyMaterialNew.mat")

15.AssetDatabase.GetTextMetaDataPathFromAssetPath(path) :string 使用资源路径获取有关文本.meta文件的路径。

解释:返回.meta路径或空字符串

--------------------------------------------------------------------------------------------------------------不常用

16.AssetDatabase.Contains(obj/instanceID) 资源中是否存在该对象

解释:当对象是一个资源(对应资源文件夹中的一个文件)时返回true,否者返回false(场景中的对象或者在运行时生成的对象)。

17.AssetDatabase.GenerateUniqueAssetPath(Path) 给一个资源创建一个新的唯一路径

解释:所有的路径都是相对于工程文件夹的,例如”Assets/MyTextures/hello.png”

18.AssetDatabase.ValidateMoveAsset(oldPath,newPath):String 检查一个资源文件是否可以从一个文件夹移动到另外一个。(并                                                                                                        不是真的移动这个文件)

解释:如果资源可以移动返回一个空的字符串,否者返回错误字符串。

AssetDatabase.MoveAsset(AssetDatabase.GetAssetPath(material), "Assets/NewFolder/MyMaterialNew.mat")

ret = AssetDatabase.RenameAsset("Assets/MyMaterial.mat", "MyMaterialNew");

19.AssetDatabase.ImportAsset(path,options) 导入指定路径的资源

解释:你可以直接拖拽到unity中手动导入,也可以通过程序导入

 AssetDatabase.ImportAsset("Assets/Textures/texture.jpg", ImportAssetOptions.Default);

20.AssetDatabase.ExportPackage(assetPathName/s ,fileName/s[],options) 导出包

解释:导出assetPahtNames定义的资源到一个unitypackage里,并命名filename

           string assetPathName = "Assets/ExportAsset";
           string fileName = "fuck.unitypackage";//这里后缀记得加上去,否则会无效果
           AssetDatabase.ExportPackage(assetPathName, fileName, ExportPackageOptions.Recurse);
21.AssetDatabase.ImportPackage( (packagePath , interactive)) 导入包

解释:如果interactive为true,那么导入资源对话框将会打开,否者打包中的所有资源将会被导入到当前的工程。

22.AssetDatabase.OpenAsset 用关联的(外部)程序打开资源文件

解释:例如使用nodepade++打开脚本文件使用看图器打开texture

23.AssetDatabase.SetLabels(obj,labels) 设置标签列表

24.AssetDatabase.GetLabels(obj,labels) 返回给定资源拥有的所有标签

25.AssetDatabase.ClearLabels(obj) 清除资源上的所有标签

26.AssetDatabase.CompleteLabel(prefix:string):string[]返回符合给定前缀的所有标签

27.AssetDatabase.IsMainAsset(obj/instanceID)该资源在Project窗口中是不是主资源

解释:例如导入的模型有一个游戏物体做为它的根物体以及几个网格和扩充的子物体。在这个例子中根物体就是主资源。

28.AssetDatabase.LoadMainAssetAtPath(path) 加载指定路径下的主资源

29.AssetDatabase.CreateAsset(obj,path)在指定的路径新建资源

解释:你必须保证使用的路径是一个被支持的扩展('.mat' 代表 materials, '.cubemap' 代表 cubemaps, '.GUISkin' 代表 skins,

                                                                                 '.anim' 代表 animations  '.asset' 代表任意其他的资源文件。)

var material = new Material (Shader.Find("Specular"));
AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");

30.AssetDatabase.AddObjectToAsset(obj2Add,path)将object2Add这个对象添加到指定路径上的现有资源

解释:你应该添加资源到”.assets”目录下的资源中,例如导入的模型或纹理将会丢失它们地数据

           应该是在资源上丢失了关联的资源,使用api重新附加上去

        //新建一个简单的材质资源
	var material = new Material (Shader.Find("Specular"));
	AssetDatabase.CreateAsset(material, "Assets/MyMaterial.mat");

	// Add an animation clip to it
	//添加一个动画剪辑到材质上
	var animationClip = new AnimationClip ();
	animationClip.name = "My Clip";
	AssetDatabase.AddObjectToAsset(animationClip, material);

	// Reimport the asset after adding an object.
	//在新建一个对象后重新导入资源
	// Otherwise the change only shows up when saving the project
	//否则这个更改只会在保存工程时才显示
	AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(animationClip));

你可能感兴趣的:(Unity,知识整理)