Files
Main/Assets/Code/Logic/_Required/GameSetting/SettingProcess/TestPrefSetting.cs
2025-01-25 04:38:09 +08:00

192 lines
6.9 KiB
C#

using Thousandto.Code.Center;
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Thousandto.Code.Logic
{
/// <summary>
/// 测试性能的设置
/// </summary>
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<string> results = new List<string>();
Renderer[] renderers = curScene.GetComponentsInChildren<Renderer>(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);
}
}
}