using Thousandto.Code.Center; using System; using System.Collections.Generic; using UnityEngine; namespace Thousandto.Code.Logic { /// /// 测试性能的设置 /// public class TestPrefSetting : SettingProcessBase { protected override void OnRegisterSettingChangedHandler() { base.OnRegisterSettingChangedHandler(); AddSettingChangedHandler(GameSettingKeyCode.TPSimpleShader, OnTPSimpleShaderChanged); AddSettingChangedHandler(GameSettingKeyCode.TPBlendShader, OnTPBlendShaderChanged); AddSettingChangedHandler(GameSettingKeyCode.TPSimpleMesh, OnTPSimpleMeshChanged); //往下继续加 AddSettingChangedHandler(GameSettingKeyCode.TPHUD, OnTPHUDChanged);//隐藏hud AddSettingChangedHandler(GameSettingKeyCode.TPMain, OnTPMainChanged);//隐藏主界面 AddSettingChangedHandler(GameSettingKeyCode.TPAllUI, OnTPAllUIChanged);//隐藏所有UI //替换为简单的纹理 AddSettingChangedHandler(GameSettingKeyCode.TPSimpleTexture, OnTPSimpleTextureChanged); AddSettingChangedHandler(GameSettingKeyCode.TPScene, OnTPSceneChanged); AddSettingChangedHandler(GameSettingKeyCode.TPAnimator, OnTPAnimatorChanged); AddSettingChangedHandler(GameSettingKeyCode.TPSkillAll, OnTPSkillAllChanged); } protected override void OnEnterScene(GameScene scene) { OnTPSceneChanged(GameCenter.GameSetting.GetSetting(GameSettingKeyCode.TPScene)); base.OnEnterScene(scene); } //默认全部是设置 protected override void OnLoadDefault(bool isforce, bool save) { for (int i = (int)GameSettingKeyCode.TestPerfSettingBegin+1; i < (int)GameSettingKeyCode.TestPerfSettingEnd; i++) { if (Enum.IsDefined(typeof(GameSettingKeyCode), (GameSettingKeyCode)i)) { GameSettingCore.SetUnSave((GameSettingKeyCode)i, 0, true); } } if(save) { GameSettingCore.Save(); } } //替换简单shader private void OnTPSimpleShaderChanged(int value) { //UnityEngine.Debug.Log("SimpleShader:"+value); //在这里处理设置被改变的操作 if (value > 0) { GameCenter.SceneRestoreSystem.IsRePlaceSimpleShader = true; } } //替换半透明shader private void OnTPBlendShaderChanged(int value) { //UnityEngine.Debug.Log("BlendShader:" + value); //在这里处理设置被改变的操作 if (value > 0) { GameCenter.SceneRestoreSystem.IsReplaceBlendShader = true; } } //替换简单的mesh private void OnTPSimpleMeshChanged(int value) { //UnityEngine.Debug.Log("SimpleMesh:" + value); //在这里处理设置被改变的操作 if (value > 0) { GameCenter.SceneRestoreSystem.IsReplaceSimpleMesh = true; } } private void OnTPHUDChanged(int value) { //UnityEngine.Debug.Log("OnTPHUDChanged:" + value); var root = GameObject.Find("UIRoot"); if (root != null) { var main = root.transform.Find("UIHUDForm"); if (main != null) { main.gameObject.SetActive(value <= 0); } main = root.transform.Find("UIMainFormPC"); if (main != null) { main.gameObject.SetActive(value <= 0); } } } private void OnTPMainChanged(int value) { //UnityEngine.Debug.Log("OnTPMainChanged:" + value); var root = GameObject.Find("UIRoot"); if (root != null) { var main = root.transform.Find("UIMainForm"); if(main != null) { main.gameObject.SetActive(value <= 0); } } } private void OnTPAllUIChanged(int value) { //UnityEngine.Debug.Log("OnTPAllUIChanged:" + value); var root = GameObject.Find("UIRoot"); if(root != null) { root.SetActive(value <= 0); } } private void OnTPSimpleTextureChanged(int value) { //UnityEngine.Debug.Log("OnTPSimpleTextureChanged:" + value); if (value > 0) { UnityEngine.SceneManagement.Scene scene = UnityEngine.SceneManagement.SceneManager.GetActiveScene(); var curScene = GameObject.Find(scene.name); List results = new List(); Renderer[] renderers = curScene.GetComponentsInChildren(true); for (int i = 0; i < renderers.Length; i++) { var mats = renderers[i].materials; for (int j = 0; j < mats.Length; j++) { mats[j].mainTexture = Texture2D.whiteTexture; } } } } private void OnTPSceneChanged(int value) { if (value > 0) { var root = GameCenter.GameSceneSystem.ActivedScene.GetUnitySceneRoot(); if (root != null) { for (int i = 0; i < root.childCount; i++) { var c = root.GetChild(i); if (c.name != "[Cameras]") { c.gameObject.SetActive(false); } } } } } private void OnTPAnimatorChanged(int value) { if (value > 0) { Core.Asset.AnimationPlayer.DontPlayAnim = true; } } private void OnTPSkillAllChanged(int value) { GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPVFXSkill, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSFXSkill, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSkillAnim, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSkillBloom, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSkillShake, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSkillBlink, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPSkillDamageNumber, value); GameCenter.GameSetting.SetSetting(GameSettingKeyCode.TPDropEffect, value); } } }