Files
plugin-library/Assets/00.StaryEvo/Runtime/Tool/FluentAPI/0.Unity/4.UnityEngineCameraExtension.cs

41 lines
1.2 KiB
C#
Raw Normal View History

2025-03-31 11:16:52 +08:00
using UnityEngine;
namespace Stary.Evo
{
#if UNITY_EDITOR
[ClassAPI("00.FluentAPI.Unity", "UnityEngine.Camera", 4)]
[APIDescriptionCN("UnityEngine.Camera 静态扩展")]
[APIDescriptionEN("UnityEngine.Camera extension")]
#endif
public static class UnityEngineCameraExtension
{
#if UNITY_EDITOR
// v1 No.151
[MethodAPI]
[APIDescriptionCN("截图")]
[APIDescriptionEN("captureScreen")]
[APIExampleCode(@"
Camera.main.CaptureCamera(new Rect(0, 0, Screen.width, Screen.height));
")]
#endif
public static Texture2D CaptureCamera(this Camera camera, Rect rect)
{
var renderTexture = new RenderTexture(Screen.width, Screen.height, 0);
camera.targetTexture = renderTexture;
camera.Render();
RenderTexture.active = renderTexture;
var screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
screenShot.ReadPixels(rect, 0, 0);
screenShot.Apply();
camera.targetTexture = null;
RenderTexture.active = null;
UnityEngine.Object.Destroy(renderTexture);
return screenShot;
}
}
}