Application类

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());

//是否激活U3D
Debug.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.isShowingSplashScreen
public 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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值