Unity API 解析 (一)Application类静态属性及方法
来源:互联网 发布:淘宝点击客服没反应 编辑:程序博客网 时间:2024/06/10 21:03
Application类不含实例属性和实例方法,在脚本中通过直接调用Application类的静态属性和静态方法来控制程序的运行时数据,如场景的管理,数据的加载等。
Application类静态属性
1.dataPath属性:数据文件路径
基本语法
public static string dataPath{ get; }
功能说明
返回程序的数据文件所在文件夹的路径(只读).返回路径为相对路径,不同游戏平台的数据文件保存路径不同,具体如下所示:Unity 编辑器:<工程文件夹的路径>/Assets Mac播放器:<到播放器应用的路径>/Contents iPhone播放器:<到播放器应用的路径>/<AppName.app>/Data Win播放器:< 包含可执行播发器的文件夹的路径>\Data Dasboard窗口:< dashboard widget bundle的路径> 网络播放器:到播放器数据文件夹的绝对路径(没有实际的数据文件名称)
相似属性
persistentDataPath:返回一个持久化数据存储目录的路径(只读),可以在此路径下存储一些持久化的数据文件。对于同一平台,在不同程序中调用此属性时,其返回值是相同的,但在不同的运行平台下,其返回值是不一样的.streamingAassetsPath: 此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径。temporaryCachePath: 此属性用于返回一个临时数据的缓存目录(只读).对于同一平台,在不同程序中调用此属性时,其返回值是相同的,但在不同的运行平台下,其返回值是不一样的。
实例演示
using System.Collections;using System.Collections.Generic;using UnityEngine;public class DataPath_ts : MonoBehaviour {void Start () { //dataPath和streamingAssetsPath的路径位置一般都是相对程序的安装目录位置 //persistentDataPath和temporaryCachePath的路径位置一般是相对所在系统的固定位置 Debug.Log ("dataPath:"+Application.dataPath); Debug.Log ("persistentDataPath:"+Application.persistentDataPath); Debug.Log ("streamingAssetsPath:"+Application.streamingAssetsPath); Debug.Log ("temporaryCachePath:"+Application.temporaryCachePath); }}
运行结果:
2.loadedLevel属性:关卡索引
基本语法
public static int loadedLevel{ get; }
功能说明
返回当前程序最后加载的关卡索引(只读),关卡也就是一个独立的场景。
实例演示
using System.Collections;using System.Collections.Generic;using UnityEngine;public class LoadedLevel_ts : MonoBehaviour {void Start () { //返回当前场景的索引值 Debug.Log ("前场景的索引值 loadedLevel:"+Application.loadedLevel); //返回当前场景的名字 Debug.Log("当前场景的名字oadedLevelName:"+Application.loadedLevelName); /*是否有场景正在被加载,在使用静态方法LoadLevel或LoadLevelAdditive加载一个新场景时 常常需要一段时间才能加载完毕,当场景加载完毕时isLoadingLevel返回true,否则返回false */ Debug.Log ("是否正在加载场景isLoadingLevel:"+Application.isLoadingLevel); //返回游戏中可被加载的场景数量 Debug.Log ("可被加载的场景数量levelCount:"+Application.levelCount); //返回当前运行的平台 Debug.Log("当前运行的平台platform:"+Application.platform); //当前游戏是否正在运行 Debug.Log("游戏是否正在运行isPlaying:"+Application.isPlaying); //当前游戏是否处于Unity编辑模式 Debug.Log("是否处于Unity编辑模式isEditor:"+Application.isEditor); //游戏是否后台运行 Application.runInBackground=true; }}
运行结果:
Application类静态方法
1.CaptureScreenshot方法 : 截屏
基本语法
public static void CaptureScreenshot(string filename);public static void CaptureScreenshot(string filename, int superSize);参数filename 截屏文件名称 superSize放大系数,默认为0,即不放大。
功能说明
此方法截取当前游戏画面并保存为PNG格式,文件默认保存在根目录下,若有重名文件则替换。当superSize大于1时,截屏文件的宽度和高度同时被放大superSize倍。当superSize小于0时,按默认值处理,即图片不放大也不缩小。此方法在Web模式下无效。
实例演示
using System.Collections;using System.Collections.Generic;using UnityEngine;public class CaptureScreenshot_ts : MonoBehaviour { int tp=-1; void Update () { if (tp == 0) { Application.CaptureScreenshot ("test01.png",0); } else if (tp == 1) { Application.CaptureScreenshot ("test02.png",1); } else { Application.CaptureScreenshot ("test03.png",2); } tp++; }}
运行结果:
2.LoadLevelAdditiveAsync方法 : 异步加载关卡
基本语法
public static AsynvOperation LoadLevelAdditiveAsync(int index);//index参数关卡索引值public static AsynvOperation LoadLevelAdditiveAsync(string levelName);//levelName参数关卡名称
功能说明
此方法用于按照关卡名字在后台异步加载关卡到当前场景中,此方法只是将新关卡加载到当前场景,当前场景的原有内容不会被销毁.
实例演示
using System.Collections;using System.Collections.Generic;using UnityEngine;public class LoadLevelAdditiveAsync_ts : MonoBehaviour { IEnumerator Start() { AsyncOperation async = Application.LoadLevelAdditiveAsync("GameScrene"); //异步加载中 Debug.Log("1.是否加载完成:"+async.isDone); Debug.Log("2.加载进度:"+async.progress); yield return async; //加载完成后 Debug.Log("3.是否加载完成:"+async.isDone); Debug.Log("4.加载进度:"+async.progress); }}
运行结果:
当前场景main
加载场景GameScrene
运行游戏后的场景
3.RegisterLogCallback方法 :注册委托
基本语法
public static void RegisterLogCallback(Application.LogCallback handler);参数是委托的名字
功能说明
此方法用于注册一个委托来调用日志信息在开发的过程中,为了防止游戏运行产生异常信息,可以借助unity为我们提供的log回调方法,判断运行过程中是否产生意外状况,比如游戏运行过程中产生一些异常错误,我们可以通过该方法,对异常进行处理,或者产生一个弹框,告诉玩家游戏产生异常,需要重新登录或者其他的相关操作。
实例演示
using System.Collections;using System.Collections.Generic;using UnityEngine;public class RegisterLogCallback_ts : MonoBehaviour { string output="";//日志输入信息 string stack="";//堆栈跟踪信息 string logType="";//日志类型 int tp=0; void Update () { Debug.Log ("output:"+output); Debug.Log ("stack:"+stack); Debug.Log ("logType:"+logType); Debug.Log ("tp:"+(tp++)); } void OnEnable() { //注册委托 Application.RegisterLogCallback (MyCallback); } void OnDisable() { //取消委托 Application.RegisterLogCallback (null); } //委托方法 void MyCallback(string logString ,string stackTrace,LogType type) { output = logString; stack = stackTrace; logType = type.ToString(); }}
运行结果:
阅读全文
0 0
- Unity API 解析 (一)Application类静态属性及方法
- Delphi类的静态属性及方法。
- Unity API常用方法和类的解析
- Application Cache API(一)
- 类方法、静态方法、属性
- python_静态属性,类方法,静态方法
- javascript API详解及案例解析(一)
- Unity API 解析—— GameObject 类
- Swift - 类型属性(类静态属性)和类方法(类静态方法)
- PHP类中静态属性(方法)与非静态属性(方法)用法的区别
- Struts2中使用OGNL调用静态方法及静态属性
- 静态属性静态方法
- 一、类、对象、传值引用、$this关键字、静态属性和静态方法、self、构造方法、析构方法
- Unity API(一)Unity中的脚本事件及其函数
- Unity API(一)Unity中的脚本事件及其函数
- Flex Application各种属性解析
- Unity Application Block 1.0系列(3): 属性/设值方法注入(Property/Setter Injection)
- Unity热更新之C#反射动态获取类属性及方法
- BZOJ4872 [SHOI2017]分手是祝愿
- matplotlib.pyplot.hist()
- 分类二级列表
- Windows程序设计:菜单打开文件
- 《Java编程技巧1001条》 第346条:浮点数向上向下舍入方法
- Unity API 解析 (一)Application类静态属性及方法
- linux学习笔记6
- opencart 2.3 订单号改成时间
- spring中Constructor、@Autowired、@PostConstruct的顺序
- 深度学习资料
- MySQL异常:Can't connect to MySQL server on 'localhost'
- 从0开始学习 GitHub 系列之「01.初识 GitHub」
- RabbitMQ 延迟队列实现订单支付结果异步阶梯性通知
- GAN完整理论推导与实现,Perfect!