Files
back_cantanBuilding/Assets/Scripts/UI/Fishing/FishPhotoCaptrue.cs
2026-05-26 16:15:54 +08:00

90 lines
2.5 KiB
C#

using GameCore;
using System.Threading.Tasks;
using TMPro;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.Universal;
public class FishPhotoCaptrue : MonoBehaviour
{
[SerializeField]
private TMP_Text
txt_fishWeight,
txt_fishName;
[SerializeField]
private Camera cam;
[SerializeField]
private UniversalRenderPipelineAsset m_PipelineAsset;
private RenderPipelineAsset m_PreviousPipelineAsset;
private bool m_overrodeQualitySettings;
void OnEnable()
{
UpdatePipeline();
}
void OnDisable()
{
ResetPipeline();
}
private void UpdatePipeline()
{
if (m_PipelineAsset)
{
if (QualitySettings.renderPipeline != null && QualitySettings.renderPipeline != m_PipelineAsset)
{
m_PreviousPipelineAsset = QualitySettings.renderPipeline;
QualitySettings.renderPipeline = m_PipelineAsset;
m_overrodeQualitySettings = true;
}
else if (GraphicsSettings.renderPipelineAsset != m_PipelineAsset)
{
m_PreviousPipelineAsset = GraphicsSettings.renderPipelineAsset;
GraphicsSettings.renderPipelineAsset = m_PipelineAsset;
m_overrodeQualitySettings = false;
}
}
}
private void ResetPipeline()
{
if (m_PreviousPipelineAsset)
{
if (m_overrodeQualitySettings)
{
QualitySettings.renderPipeline = m_PreviousPipelineAsset;
}
else
{
GraphicsSettings.renderPipelineAsset = m_PreviousPipelineAsset;
}
}
}
public void Init(string fishName, float fishWeight)
{
txt_fishName.text = LocalizationMgr.GetFormatTextValue(fishName);
txt_fishWeight.text = LocalizationMgr.GetWeight(fishWeight);
}
public async Task RenderImage(RenderTexture rt)
{
Camera main = Camera.main;
cam.transform.position = main.transform.position;
cam.transform.rotation = main.transform.rotation;
cam.fieldOfView = main.fieldOfView;
await Awaiters.NextFrame;
await Awaiters.EndOfFrame;
var request = new UniversalRenderPipeline.SingleCameraRequest();
request.destination = rt;
RenderPipeline.SubmitRenderRequest(cam, request);
await Awaiters.EndOfFrame;
await Awaiters.NextFrame;
}
}