Application类不含实例属性和实例方法,在脚本中通过直接调用Application类的静态属性和静态方法来控制程序的运行时数据.
Application静态属性:
dataPath属性 : 数据文件路径
public static string dataPath{ get; }
Application.dataPath 返回程序的数据文件所在文件夹的路径(只读).返回路径为相对路径,不同游戏平台的数据文件保存路径不同.
Application.persistentDataPath 返回一个持久化数据存储目录的路径(只读),可以在此路径下存储一些持久化的数据文件.同一平台,不同程序中调用此属性,返回值相同.
Application.streamingAassetsPath 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径.
Application.temporaryCachePath 此属性用于返回一个临时数据的缓存目录(只读).对于同一平台,不同程序调用此属性,返回值相同.
loadedLevel属性 : 关卡索引
public static int loadedLevel{ get; }
Application.loadedLevel 返回当前场景的索引值
Application.loadedLevelName 返回当前场景的名字
Application.isLoadingLevel 是否有场景被加载
Application.LevelCount 游戏中可被加载的场景数量
Application.platform 当前游戏的运行平台,返回值为枚举类型
Application.isPlaying 当前游戏是否正在运行
Application.isEditor 游戏是否处于Unity编辑模式
Application类静态方法:
CaptureScreenshot方法 : 截屏
public static void CaptureScreenshot(string filename);
public static void CaptureScreenshot(string filename, int superSize);
参数filename 截屏文件名称 superSize放大系数,默认为0,即不放大
此方法截取当前游戏画面并保存为PNG格式,文件默认保存在根目录下,若有重名文件则替换.
LoadLevelAdditiveAsync方法 : 异步加载关卡
public static AsynvOperation LoadLevelAdditiveAsync(int index);//参数关卡索引值
public static AsynvOperation LoadLevelAdditiveAsync(string levelName);//参数关卡名称
此方法用于按照关卡名字在后台异步加载关卡到当前场景中,此方法只是将新关卡加载到当前场景,当前场景的原有内容不会被销毁.
AsynvOperation colve = public static AsynvOperation LoadLevelAdditiveAsync(int index);
colve.isDone 是否加载完成
colve.progress 加载进度
RegisterLogCallback方法 :注册委托
public static void RegisterLogCallback(Application.LogCallback handler);参数是委托的名字
此方法用于注册一个委托来调用日志信息
前面的都比较简单 仔细的研究了一下注册委托
先上两个测试脚本代码
ColveTast脚本中的Callback方法 三个参数类型不能改变。要满足Application.LogCallback的参数
两个脚本挂在了一个物体下。第一个What是Colve_Tast1脚本中Start中输出的。
而第二个该输出空的colveStr 输出的值变成了上一个输出的值。
第三个colveInt 点击可以在左下角看到colveStr的位置
第四个自然就是输出类型了。
为了测试colveStr输出的值是不是上一个log输出的值 修改第二个脚本如下
可以看到colveStr的值变成了新的Log 可以确定输出的就是上一个Log输出的值