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;
- }
- }
- }
|