关于Application类的静态属性(初学:11)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lfanyize/article/details/101039711

在Application类中,主要涉及到了datapath和loadLevel属性
首先先介绍datapath属性

功能说明:此属性用来返回程序的数据文件所在的文件夹的路径(只读),返回路径是相对路径,在不同游戏平台的数据文件的保存路径不同,所以返回的路径可能不同,具体如下

Unity Editor: <工程文件夹所在的路径>/Assets

Mac player:<应用程序路径>/Contents

ipone player:<应用程序路径>/AppName.app/Data

Win player:<包含可执行文件的文件夹路径>/Data

Web player:<播放器数据文件夹的绝对路径(没有实际的数据文件名称)>

Flash:播放器数据文件夹的绝对路径(没有实际的数据文件名称

与DataPath的功能类似的属性有
1.persistentDataPath----用来返回一个持久化的数据出粗车你目录的路径(只读),可以在此路径下储存一些持续化的数据文件,比如可以用来游戏存档

2.streamingAssetsPath ------用来返回流数据的缓存目录,适合设置一些外部数据文件的路径,由于是相对路径,所以比较适合在多平台遗址中设置要读取的外部数据文件的路径

3.temporaryCachePath ------用来返回一个临时数据的缓存目录,在不同程序中调用此属性,返回值相同,但是在不同的运行平台下,返回值一般不同

扫描二维码关注公众号,回复: 7661693 查看本文章

在这里插入图片描述
运行结果如下:
在这里插入图片描述
LoadedLevel属性:关卡索引
基本语法:public static int loadLevel(get;)
功能:返回程序加载的场景
与其相关的属性:
在这里插入图片描述
Application类的静态方法
一:截屏方法:CaptureScreenshot
基本语法:public static void CaptureScreenshot(string filename,int superSize)
其中filename为截屏名称,superSize为放大系数,默认为0
二:LoadLevelAdditiveAsync:异步加载关卡
基本语法:(1)public static AsyncOperation LoadLevelAdditiveAsnc(int index)
其中参数index是被加载的关卡的索引值
基本语法:(2)public static AsyncOperation LoadLevelAdditiveAsync(string leveName)
参数leveName是被加载的场景的名字
功能:这两个方法是在后台将场景加载到当前场景中,原来场景的数据并不消失
RegisterLogCallback方法:注册委托
基本语法:public static void RegisterLogCallback(Application.LogCallback handler);
功能:用来注册一个委托
注释:RegisterLogCallbackThread方法与此方法功能相似,但是不同之处在于RegisterLogCallbackThreaded方法是在一个新的线程中调用委托
实例

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Control : MonoBehaviour
{
    // Start is called before the first frame update

    // Update is called once per frame
    public class RegisterLogCallback_ts:MonoBehaviour
    {
        string output = "";//日志消息
        string stack = "";//堆栈跟踪消息
        string logType = "";//日志类型

        void Update()
        {
            Debug.Log("Output" + output);
            Debug.Log("stack" + stack);
            Debug.Log("logType" + logType);
        }
        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();
        }
    }
    void Update()
    {
        
    }
}

猜你喜欢

转载自blog.csdn.net/lfanyize/article/details/101039711