| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | using HorizonBasedAmbientOcclusion;using System;using System.Runtime.InteropServices;using UnityEngine;using UnityEngine.Rendering.PostProcessing;public class OpenByUrl : MonoBehaviour{    [DllImport("__Internal")]    private static extern string StringReturnValueFunction();    public static string UrlMsg = string.Empty;    public GameObject panel_1;    public GameObject panel_2;    public GameObject panel_3;    public PageIndex defaultPage;    public GameObject reflectProbe;    public HBAO aoComponent;    public PostProcessLayer postProcessComponent;    public PostProcessVolume postProcessVolume;    private void Awake()    {        //panel_1 = this.transform.GetChild(0).gameObject;        //panel_2 = this.transform.GetChild(1).gameObject;        //panel_3 = this.transform.GetChild(2).gameObject;        panel_1.SetActive(false);        panel_2.SetActive(false);        panel_3.SetActive(false);        SelectPage();    }    void SelectPage()    {        UrlMsg = "?panel=1&quality=low";        try        {            UrlMsg = StringReturnValueFunction();        }        catch (System.Exception e)        {            UrlMsg = "[catch]" + e.Message;            Debug.Log("获取URL参数错误!!!");        }        string panelValue = "";        string qualityValue = "";        // 解析URL参数        if (UrlMsg.StartsWith("?"))        {            string[] paramPairs = UrlMsg.Substring(1).Split('&');            foreach (string pair in paramPairs)            {                string[] kv = pair.Split('=');                if (kv.Length == 2)                {                    if (kv[0] == "panel")                        panelValue = kv[1];                    else if (kv[0] == "quality")                        qualityValue = kv[1];                }            }        }        // 输出qualityValue(用于调试或设置画质)        if (!string.IsNullOrEmpty(qualityValue))        {            Debug.Log("Quality 参数为: " + qualityValue);            // 你可以在这里根据qualityValue设置游戏画质            // 例如:            if (qualityValue == "high")            {                QualitySettings.SetQualityLevel(3);            }            else if (qualityValue == "middle")            {                QualitySettings.SetQualityLevel(2);                reflectProbe.gameObject.SetActive(false);                aoComponent.enabled = false;                postProcessComponent.enabled = false;                postProcessVolume.enabled = false;            }            else            {                QualitySettings.SetQualityLevel(1);                reflectProbe.gameObject.SetActive(false);                aoComponent.enabled = false;                postProcessComponent.enabled = false;                postProcessVolume.enabled = false;            }        }        else {            QualitySettings.SetQualityLevel(1);            reflectProbe.gameObject.SetActive(false);            aoComponent.enabled = false;            postProcessComponent.enabled = false;            postProcessVolume.enabled = false;        }        // 根据 panel 参数显示对应页面        switch (panelValue)        {            case "1":                GlobalData.pageIndex = PageIndex.Page1;                panel_1.SetActive(true);                break;            case "2":                GlobalData.pageIndex = PageIndex.Page2;                panel_2.SetActive(true);                break;            case "3":                GlobalData.pageIndex = PageIndex.Page3;                panel_3.SetActive(true);                break;            default:                switch (defaultPage)                {                    case PageIndex.Page1:                        GlobalData.pageIndex = PageIndex.Page1;                        panel_1.SetActive(true);                        break;                    case PageIndex.Page2:                        GlobalData.pageIndex = PageIndex.Page2;                        panel_2.SetActive(true);                        break;                    case PageIndex.Page3:                        GlobalData.pageIndex = PageIndex.Page3;                        panel_3.SetActive(true);                        break;                }                break;        }    }}
 |