unityzgy/.svn/pristine/b0/b09285a779b6b4fc559ac8c74f26f36f5b13e263.svn-base
ayuan9957 bf12e02276 feat: 多语言本地化系统 - 支持中/英/法/俄实时切换
- LocalizationManager: 新增翻译表(SetFormatted/SetDuration/LocalizeOperateMsg)
- LoginPanel: InputField placeholder本地化、字体颜色保持
- HistoryPanel: 用时数据本地化、placeholder本地化
- RecordDetailPanel: 操作详情消息本地化(LanguageChanged重建)
- AppraiseWindowBase: 评价等级本地化、操作消息重建
- EditorAppraiser: 所有评估消息改用InjectOperateMsgLocalized
- StudentOperateRecorder: 新增InjectOperateMsgLocalized方法
- LocalizationLanguageTestBar: 单例模式、ScreenSpaceOverlay筛选
- 字体切换时保留颜色和verticalOverflow
2026-07-16 10:05:59 +08:00

79 lines
2.8 KiB
Plaintext

using System.Collections.Generic;
using UnityEngine.Serialization;
#if ENVIRO_LWRP
namespace UnityEngine.Rendering.LWRP
{
public class EnviroSunShaftsLWRP : UnityEngine.Rendering.Universal.ScriptableRendererFeature
{
EnviroBlitPassShafts blitPass;
private Camera myCam;
#region Shafts Var
/// LightShafts
public enum ShaftsScreenBlendMode
{
Screen = 0,
Add = 1,
}
[HideInInspector]
public int radialBlurIterations = 2;
private Material shaftsMaterial;
private Material clearMaterial;
#endregion
void CreateMaterialsAndTextures()
{
if(shaftsMaterial == null)
shaftsMaterial = new Material(Shader.Find("Enviro/Effects/LightShafts"));
if(clearMaterial == null)
clearMaterial = new Material(Shader.Find("Enviro/Effects/ClearLightShafts"));
}
void CleanupMaterials()
{
if (shaftsMaterial != null)
DestroyImmediate(shaftsMaterial);
if (clearMaterial != null)
DestroyImmediate(clearMaterial);
}
public override void Create()
{
if (EnviroSkyMgr.instance == null || !EnviroSkyMgr.instance.HasInstance())
return;
CreateMaterialsAndTextures();
blitPass = new EnviroBlitPassShafts(UnityEngine.Rendering.Universal.RenderPassEvent.AfterRenderingTransparents, shaftsMaterial, clearMaterial);
}
public override void AddRenderPasses(UnityEngine.Rendering.Universal.ScriptableRenderer renderer, ref UnityEngine.Rendering.Universal.RenderingData renderingData)
{
if (renderingData.cameraData.camera.cameraType == CameraType.Preview || renderingData.cameraData.camera.cameraType == CameraType.SceneView || renderingData.cameraData.camera.cameraType == CameraType.Reflection)
return;
myCam = renderingData.cameraData.camera;
if (EnviroSkyMgr.instance != null && EnviroSkyMgr.instance.HasInstance() && EnviroSkyMgr.instance.useSunShafts)
{
if (renderingData.cameraData.isSceneViewCamera)
return;
var src = renderer.cameraColorTarget;
var dest = UnityEngine.Rendering.Universal.RenderTargetHandle.CameraTarget;
if(blitPass == null)
Create();
CreateMaterialsAndTextures();
blitPass.Setup(myCam, src, dest, EnviroSkyMgr.instance.Components.Sun.transform, EnviroSkyMgr.instance.LightShaftsSettings.thresholdColorSun.Evaluate(EnviroSkyMgr.instance.Time.solarTime), EnviroSkyMgr.instance.LightShaftsSettings.lightShaftsColorSun.Evaluate(EnviroSkyMgr.instance.Time.solarTime));
renderer.EnqueuePass(blitPass);
}
}
}
}
#endif