using System.ComponentModel; using Framework; using Gameplay.Performance; using MagicaCloth2; using PhxhSDK; using UnityEditor; using UnityEngine; using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; public partial class SROptions { [Category("性能")] public bool EnableOutline { get { return _eanbleOutline; } set { _eanbleOutline = value; PerformanceManager.instance.data.enablePostOutline = _eanbleOutline; } } private bool _eanbleOutline = true; [Category("性能")] public bool EnableDrawTireMark { get { return _enableDrawTireMark; } set { _enableDrawTireMark = value; PerformanceManager.instance.data.enableTireMark = _enableDrawTireMark; } } private bool _enableDrawTireMark = true; // 光照 [Category("性能")] public bool EnableShadow { get { return _enableShadow; } set { _enableShadow = value; // 找到场景中的所有灯光 var lights = GameObject.FindObjectsOfType(); foreach (var light in lights) { light.shadows = _enableShadow ? LightShadows.Soft : LightShadows.None; } } } private bool _enableShadow = true; // 布料 [Category("性能")] public bool EnableCloth { get { return _enableCloth; } set { _enableCloth = value; PerformanceManager.instance.data.enableCloth = _enableCloth; // 找到场景中的所有灯光 var cloths = GameObject.FindObjectsOfType(); foreach (var cloth in cloths) { cloth.enabled = _enableCloth; } } } private bool _enableCloth = true; [Category("性能")] public int TargetFrameRate { get { return _targetFrameRate; } set { _targetFrameRate = value; } } private int _targetFrameRate = 60; [Category("性能")] public void SetFps() { Application.targetFrameRate = _targetFrameRate; } [Category("性能")] public bool EnableEffect { get { return _enableEffect; } set { _enableEffect = value; } } private bool _enableEffect = true; [Category("性能")] public bool EnableLog { get { return DebugUtil.LogEnable; } set { DebugUtil.LogEnable = value; } } [Category("性能")] public bool EnableMainRender { get { return _enableMainRender; } set { _enableMainRender = value; CameraManager.Instance.MainCamera.enabled = _enableMainRender; } } private bool _enableMainRender = true; [Category("性能")] public bool EnableUIRender { get { return _enableUIRender; } set { _enableUIRender = value; CameraManager.Instance.UICamera.enabled = _enableUIRender; } } private bool _enableUIRender = true; #if UNITY_EDITOR [Category("性能"),DisplayName("渲图")] public void RenderImg() { // 渲图 var renderTexture = new RenderTexture(1920, 1080, 24); var additionalCameraData = CameraManager.Instance.UICamera.GetComponent(); additionalCameraData.renderType = CameraRenderType.Base; CameraManager.Instance.UICamera.targetTexture = renderTexture; CameraManager.Instance.UICamera.Render(); additionalCameraData.renderType = CameraRenderType.Overlay; CameraManager.Instance.UICamera.targetTexture = null; RenderTexture.active = renderTexture; // 保存到本地 var texture2D = new Texture2D(RenderTexture.active.width, RenderTexture.active.height, TextureFormat.RGB24, false); texture2D.ReadPixels(new Rect(0, 0, RenderTexture.active.width, RenderTexture.active.height), 0, 0); texture2D.Apply(); var bytes = texture2D.EncodeToPNG(); var path = Application.dataPath + "/" + "render.png"; System.IO.File.WriteAllBytes(path, bytes); AssetDatabase.Refresh(); } #endif }