Application类

来源:互联网 发布:nachos java文件系统 编辑:程序博客网 时间:2024/04/29 05:50

1.四 个数据文件路径

void Start(){    //4 个数据文件路径    Debug.Log("_Application_DataPath.cs:");    //返回程序的数据文件所在文件夹的相对路径(只读)    Debug.Log("dataPath: " + Application.dataPath.ToString());    //返回一个持久化数据存储目录的相对路径(只读)    Debug.Log("persistentDataPath: " + Application.persistentDataPath.ToString());    //返回流数据的缓存目录的相对路径(只读)    Debug.Log("streamingAssetsPath: " + Application.streamingAssetsPath.ToString());    //返回一个临时数据的缓存目录的相对路径(只读)    Debug.Log("temporaryCachePath: " + Application.temporaryCachePath.ToString());}

2.关卡

void Start(){    Debug.Log("_Application_Level.cs:");    //返回当前场景索引值    Debug.Log("loadedLevel: " + Application.loadedLevel.ToString());    //返回当前场景的名字    Debug.Log("loadedLevelName: " + Application.loadedLevelName.ToString());    //返回可被加载场景的数量    Debug.Log("levelCount: " + Application.levelCount.ToString());    //加载关卡销毁所有物体    Application.LoadLevel(0);    //Application.LoadLevelAsync异步加载关卡, 将新关卡加载到当前场景    Application.LoadLevelAsync(0);    //加载新的场景,但当前的场景不会被销毁。    Application.LoadLevelAdditive(0);    //在后台异步累加关卡,也就是说在后台非同步加载新的场景,但当前的场景不会被销毁。    Application.LoadLevelAdditiveAsync(0);    /*        网络流媒体播放器 (Streaming Web Player) 允许场景 0 (Scene 0) 完成加载后立刻开始播放网页游戏。如果游戏有 10 个关卡,开始播放第 1 个关卡前让播放器等待并下载第 2-10 个关卡的所有资源并没有太大意义。发布网络流媒体播放器(Streaming Web Player) 时,必须下载的资源将按照它们在场景 (Scene) 文件中的顺序来进行排列。场景 0 (Scene 0) 中包含的所有资源下载完成后,网络播放器 (Streaming Web Player) 开始播放。        简言之,网络流媒体播放器 (Streaming Web Player) 将让玩家玩游戏的速度比以前更快。        唯一需要做的事就是检查,确保想要加载的下个关卡在加载前已完成流式处理。        一般来说,在非流媒体播放器中,用户使用下列代码加载关卡:        Application.LoadLevel("levelName");        在网络流媒体播放器 (Streaming Web Player) 中,必须先检查关卡是否完成流式处理。该步骤通过 CanStreamedLevelBeLoaded() 函数完成。        */    Application.CanStreamedLevelBeLoaded(0);    //如果想要向玩家显示关卡数据流的进展情况,如做一个进度条或其他表现形式,可访问 GetStreamProgressForLevel()进一步了解。    Application.GetStreamProgressForLevel(0);    //卸载与给定的场景相关的所有对象    Application.UnloadLevel(0);}

3.截屏

//U3D自带的截图,有点卡。此方法在web模式下无效。每帧只执行一次,同一帧中只有最后一次调用才生效。Application.CaptureScreenshot(filename);//网上的void GetCapture(){        RenderTexture renderTex = Camera.main.targetTexture;        int width = renderTex.width;        int height = renderTex.height;        Texture2D tex = new Texture2D(renderTex.width, renderTex.height, TextureFormat.ARGB32, false);        tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);        tex.Compress(false);//对屏幕缓存进行压缩        RenderTexture.active = renderTex;        tex.ReadPixels(new Rect(0, 0, renderTex.width, renderTex.height), 0, 0);        tex.Apply();        RenderTexture.active = null;        byte[] imagebytes = tex.EncodeToPNG();//转化为png图        File.WriteAllBytes(Application.dataPath + "/screencapture.png", imagebytes);//存储png图}

4.系统信息,程序信息,U3D信息

//返回当前运行平台Debug.Log("platform: " + Application.platform.ToString());//当前运行平台是否为一个已知的控制台平台Debug.Log("isConsolePlatform:" + Application.isConsolePlatform.ToString());//当前运行平台是否为一个已知的移动平台Debug.Log("isMobilePlatform:" + Application.isMobilePlatform.ToString());//返回当前场景是否在运行Debug.Log("isPlaying: " + Application.isPlaying.ToString());//返回当前场景是否处于UNITY编辑模拟Debug.Log("isEditor: " + Application.isEditor.ToString());//公司名字。。。Debug.Log("companyName:" + Application.companyName.ToString());//产品名字。。。Debug.Log("productName:" + Application.productName.ToString());//应用程序建立后被改变则返回true,否则返回false。  被改变指的是什么。。。。//Application.genuineCheckAvailable 应与 Application.genuine 一并使用,以确认应用程序的完整性可得到实际验证。访问 Application.genuine 属性是一项相当昂贵的操作,不应用于帧更新期间或其他时序要求严格的代码。Debug.Log("genuine:" + Application.genuine.ToString());Debug.Log("genuineCheckAvailable:" + Application.genuineCheckAvailable.ToString());//是否激活U3DDebug.Log("HasProLicense" + Application.HasProLicense().ToString());// 应用安装方式/*  Unknown                     应用程序安装模式未知。    Application.Store           通过网上商店安装的应用。    Application.DeveloperBuild  应用程序安装,通过开发者模式。    Application.Adhoc           通过临时分布安装的应用。  好像是通过广告还是什么鬼。。    Application.Enterprise      应用程序安装,通过企业分布。    Application.Editor          应用程序运行在编辑模式。    */Debug.Log("installMode" + Application.installMode.ToString());// 网络连接方式/* NotReachable                     无网络连接    ReachableViaCarrierDataNetwork  网络通过运营商数据网络    ReachableViaLocalAreaNetwork        网络通过WiFi或电缆    */Debug.Log("internetReachability" + Application.internetReachability.ToString());//打开一个网站Application.OpenURL("www.baidu.com");//结束程序Application.Quit();//当应用程序在后台运行时,该应用程序应该运行吗?Debug.Log("runInBackground" + Application.runInBackground.ToString());//  沙盒类型。/*  Unknown         未知    NotSandboxed    不运行在沙盒环境中    Sandboxed       运行在沙盒环境中    SandboxBroken   运行在破碎的沙盒环境中,  这又是什么鬼*/Debug.Log("sandboxType" + Application.sandboxType.ToString());//  堆栈跟踪日志记录选项。/*    None        没有堆栈跟踪将输出到日志。    ScriptOnly  只有管理堆栈跟踪将输出。    Full        本地和托管堆栈跟踪将被记录。    */Debug.Log("stackTraceLogType:" + Application.stackTraceLogType.ToString());//系统语言Debug.Log("systemLanguage:" + Application.systemLanguage.ToString());/*  指示游戏在指定的帧速率下进行渲染。    设置targetFrameRate为-1(默认值)使单机游戏尽可能快的渲染且网页游戏呈现在50-60帧/秒,取决于平台。    注意,设置targetFrameRate不保证帧速率。由于平台的详情,可能会有波动,或游戏可能无法达到帧速率,因为电脑太慢。    如果垂直同步设置质量目标帧率设置,是不容忽视的,和VBLANK间隔代替。在qualitysettings的vblankcount属性可以被用来限制帧率的屏幕刷新率(每秒60帧画面可以通过设置vblankcount为2限30 fps)    在编辑器中targetFrameRate被忽略。    */Debug.Log("targetFrameRate" + Application.targetFrameRate.ToString());//U3D版本Debug.Log("unityVersion" + Application.unityVersion);//应用程序版本Debug.Log("version" + Application.version);//此方法用于注册一个委托来调用日志信//Application.logMessageReceived += null;//Application.logMessageReceivedThreaded += null;//Application.logMessageReceived += null//日志的输出信息string outPut = "";//堆栈跟踪信息string stack = "";//日志类型string logType = "";int tp = 0;void Update(){    if (tp == 0)    {        Debug.Log("outPut: " + outPut);        Debug.Log("stack: " + stack);        Debug.Log("logType: " + logType);        Debug.Log("tp: " + tp.ToString());    }}void OnEnable(){    Application.logMessageReceived += MyCallBack;}void OnDisable(){    Application.logMessageReceived -= MyCallBack;}void MyCallBack(string logString, string stackStrace, LogType type){    outPut = logString;    stack = stackStrace;    logType = type.ToString();}//应用程序版本Debug.Log("version" + Application.version);//独特的云项目标识。每一个项目都是独一无二的Debug.Log("cloudProjectId" + Application.cloudProjectId.ToString());//在运行时返回应用程序包标识符。Debug.Log("bundleIdentifier" + Application.bundleIdentifier.ToString());//后台加载线程优先级。Debug.Log("backgroundLoadingPriority" + Application.backgroundLoadingPriority.ToString());//CancelQuit用法, Application.isShowingSplashScreenpublic float showSplashTimeout = 2.0F;private bool allowQuitting = false;void Awake(){    DontDestroyOnLoad(this.gameObject);}void OnApplicationQuit(){    if (Application.loadedLevelName.ToLower() != "finalsplash")        StartCoroutine("DelayedQuit");    if (!allowQuitting)        Application.CancelQuit();}IEnumerator DelayedQuit(){    Application.LoadLevel("finalsplash");    yield return new WaitForSeconds(showSplashTimeout);    allowQuitting = true;    Application.Quit();}

5.WebPlayer

//application.absoluteurl和application.srcvalue让你发现如果你的unityweb数据文件被移动到另一个位置或是被链接到其它地方。你可能想保护你的数据文件以防止盗版。Debug.Log("absoluteURL" + Application.absoluteURL.ToString());Debug.Log("srcValue" + Application.srcValue.ToString());//在网页中调用一个函数。Application.ExternalCall(functionName, params);//调用网页中的脚本函数。Application.ExternalEval(script.functionName);//检查用户是否已授权使用网络摄像头或麦克风。Application.HasUserAuthorization(UserAuthorization.Microphone | UserAuthorization.WebCam);//我们从主网络流下载了多少字节(只读)。Debug.Log("streamedBytes" + Application.streamedBytes.ToString());//指示是否webplayer的安全模式启用。Debug.Log("webSecurityEnabled" + Application.webSecurityEnabled.ToString());//不知道什么鬼。。。Debug.Log("webSecurityHostUrl" + Application.webSecurityHostUrl.ToString());

————>U3D版本为5.2.1f1

0 0
原创粉丝点击