using cfg.ActorCfg; using Code.Scripts.Gameplay.Game; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Character; using Gameplay.Net; using Gameplay.Unit; using Gameplay.Unit.Data; using System.ComponentModel; using System.Drawing.Text; using Gameplay.Common; using UnityEngine; using YooAsset; public partial class SROptions { //[Category("GM"), DisplayName("机器人数据初始化")] 25/2/20 关闭DEBUGGER功能 //public void SendRobotTestInit() //{ // if (UnityEngine.Application.isPlaying) // { // Gameplay.Net.NetHelper.RobotTestInit(); // } //} //[Category("GM"), DisplayName("测试剧情ID")] 25/2/20 关闭DEBUGGER功能 //public string testStoryId //{ // get; // set; //} = "0_1_1"; // //[Category("GM"), DisplayName("进入测试剧情")] 25/2/20 关闭DEBUGGER功能 //public void EnterStory() //{ // GameStateManager.Instance.ChangeState(new GameStateStory(testStoryId)); //} private string gc; //[Category("礼包兑换")] 25/2/20 关闭DEBUGGER功能 //public string GiftCode //{ // get { return gc; } // set { gc = value; } //} //[Category("礼包兑换")] 25/2/20 关闭DEBUGGER功能 //public void DoGiftCode() //{ // if (UnityEngine.Application.isPlaying) // { // Gameplay.Net.NetHelper.GiftCode(GiftCode); // } //} private int _itemId; //[Category("GM增加物品"), DisplayName("物品ID")] 25/2/20 关闭DEBUGGER功能 //public int ItemId //{ // get { return _itemId; } // set // { // if (_itemId.Equals(value)) return; // SetItemId(value); // _itemId = value; // } //} private void SetItemId(int id) { DataItem dataItem = TableManager.Instance.Tables.Item.Get(id); if (dataItem == null) { SRDebug.Instance.ShowBugReportSheet(descriptionContent: "此ID不在item表里,查一下是不是填错了"); return; } _itemId = id; } private int _itemsCount = 1; //[Category("GM增加物品"), DisplayName("物品个数")] 25/2/20 关闭DEBUGGER功能 //public int ItemsCount //{ // get { return _itemsCount; } // set // { // if (_itemsCount.Equals(value)) return; // _itemsCount = value; // } //} private string GMToken = "phxh666"; //[Category("GM增加物品"), DisplayName("增加指定物品")] 25/2/20 关闭DEBUGGER功能 //public async void AddItem() //{ // if(_itemsCount==0) // { // return; // } // // // string url = GetURL(GMToken, GetIp(), Actor.Instance.Base.GetProp(NLDPB.ActorProp.ActorId).ToString()); // var request = UnityEngine.Networking.UnityWebRequest.Get(url); // await request.SendWebRequest(); // //DebugUtil.LogError("gm新错" + request.downloadHandler.text); // // //} [Category("IAP内购"), DisplayName("客户端验证")] public bool ClientVerify { get { return IAPManager.Instance.ClientVerify; } set { IAPManager.Instance.ClientVerify = value; } } [Category("IAP内购"), DisplayName("初始化IAP")] public void InitIAP() { IAPManager.Instance.ReLoad(); } [Category("IAP内购"), DisplayName("完成所有交易")] public void ConfirmPending() { IAPManager.Instance.ConfirmPending(); } [Category("IAP内购"), DisplayName("跳过真实支付")] public bool SkipRealPay { get => IAPManager.Instance.SkipRealPay; set => IAPManager.Instance.SkipRealPay = value; } [Category("用户数据"), DisplayName("删除本地缓存数据")] public void DeleteData() { StorageMgr.Instance.DeleteSaveData(); CrossDayChecker.Instance.DeleteSaveData = true; } private string GetURL(string token, string ip, string actor) { string param = ""; if (_itemId <= 0 || _itemsCount <= 0) return null; param = $"{_itemId},{_itemsCount}"; return $"http://{ip}/gm?actor_id={actor}&command=AddItem&gm_token={token}¶m={param}"; } private string GetIp() { var serverInfo = AppConfig.Instance.GetCurrent(); return serverInfo.addrs[0].ip + ":8080"; } // 从所有加载的场景中查找节点 private GameObject[] FindGameObjectsInAllScenes(string name) { int sceneCount = UnityEngine.SceneManagement.SceneManager.sceneCount; System.Collections.Generic.List foundObjects = new System.Collections.Generic.List(); for (int i = 0; i < sceneCount; i++) { var scene = UnityEngine.SceneManagement.SceneManager.GetSceneAt(i); if (scene.isLoaded) { Debug.Log($"在场景 {scene.name} 中查找 {name}"); // 获取场景中的所有根游戏对象 var rootObjects = scene.GetRootGameObjects(); foreach (var rootObject in rootObjects) { // 搜索根对象 if (rootObject.name == name) { foundObjects.Add(rootObject); Debug.Log($"在场景 {scene.name} 的根节点中找到 {name}"); } // 搜索子对象 var childObjects = rootObject.GetComponentsInChildren(true); foreach (var child in childObjects) { if (child.gameObject.name == name) { foundObjects.Add(child.gameObject); Debug.Log($"在场景 {scene.name} 的节点 {rootObject.name} 下找到 {name}"); } } } } } return foundObjects.ToArray(); } [Category("场景节点")] [Sort(1)] [DisplayName("启用Art节点(禁用Art_Old)")] public void EnableArtDisableArtOld() { Debug.Log("正在查找和切换Art节点..."); var artNodes = FindGameObjectsInAllScenes("Art"); var artOldNodes = FindGameObjectsInAllScenes("Art_Old"); if (artNodes.Length == 0) { Debug.LogError("在所有场景中找不到Art节点!"); return; } if (artOldNodes.Length == 0) { Debug.LogError("在所有场景中找不到Art_Old节点!"); return; } foreach (var artNode in artNodes) { artNode.SetActive(true); Debug.Log($"已启用Art节点: {GetGameObjectPath(artNode)}"); } foreach (var artOldNode in artOldNodes) { artOldNode.SetActive(false); Debug.Log($"已禁用Art_Old节点: {GetGameObjectPath(artOldNode)}"); } Debug.Log($"总共处理 {artNodes.Length} 个Art节点和 {artOldNodes.Length} 个Art_Old节点"); } [Category("场景节点")] [Sort(2)] [DisplayName("启用Art_Old节点(禁用Art)")] public void EnableArtOldDisableArt() { Debug.Log("正在查找和切换Art_Old节点..."); var artNodes = FindGameObjectsInAllScenes("Art"); var artOldNodes = FindGameObjectsInAllScenes("Art_Old"); if (artNodes.Length == 0) { Debug.LogError("在所有场景中找不到Art节点!"); return; } if (artOldNodes.Length == 0) { Debug.LogError("在所有场景中找不到Art_Old节点!"); return; } foreach (var artNode in artNodes) { artNode.SetActive(false); Debug.Log($"已禁用Art节点: {GetGameObjectPath(artNode)}"); } foreach (var artOldNode in artOldNodes) { artOldNode.SetActive(true); Debug.Log($"已启用Art_Old节点: {GetGameObjectPath(artOldNode)}"); } Debug.Log($"总共处理 {artNodes.Length} 个Art节点和 {artOldNodes.Length} 个Art_Old节点"); } [Category("场景节点")] [Sort(3)] [DisplayName("获取Art节点状态")] public void CheckArtNodesStatus() { var artNodes = FindGameObjectsInAllScenes("Art"); var artOldNodes = FindGameObjectsInAllScenes("Art_Old"); Debug.Log($"找到 {artNodes.Length} 个Art节点和 {artOldNodes.Length} 个Art_Old节点"); foreach (var artNode in artNodes) { Debug.Log($"Art节点状态: {(artNode.activeSelf ? "启用" : "禁用")}, 路径: {GetGameObjectPath(artNode)}"); } foreach (var artOldNode in artOldNodes) { Debug.Log($"Art_Old节点状态: {(artOldNode.activeSelf ? "启用" : "禁用")}, 路径: {GetGameObjectPath(artOldNode)}"); } if (artNodes.Length == 0) { Debug.LogWarning("在所有场景中都不存在Art节点"); } if (artOldNodes.Length == 0) { Debug.LogWarning("在所有场景中都不存在Art_Old节点"); } } // 获取游戏对象的完整路径 private string GetGameObjectPath(GameObject obj) { string path = obj.name; Transform parent = obj.transform.parent; while (parent != null) { path = parent.name + "/" + path; parent = parent.parent; } // 添加场景名称 var sceneName = obj.scene.name; path = sceneName + ":" + path; return path; } }