92 lines
3.2 KiB
C#
92 lines
3.2 KiB
C#
using System.Collections;
|
||
using UnityEngine;
|
||
using System.IO;
|
||
|
||
namespace HK.FUJIFILM
|
||
{
|
||
public class TransparentCaptureSystem_Test : TransparentCaptureSystem<TransparentCaptureSystem_Test>
|
||
{
|
||
// 自定义参数:水印文本
|
||
public string watermarkText = "Custom Watermark";
|
||
|
||
// 自定义参数:水印颜色
|
||
public Color watermarkColor = Color.red;
|
||
|
||
// 重写Init:自定义单例逻辑(可选)
|
||
protected override void Init()
|
||
{
|
||
base.Init(); // 调用基类初始化
|
||
Debug.Log("自定义截图系统初始化完成");
|
||
}
|
||
|
||
// 重写原始截图方法:修改截图尺寸或相机设置
|
||
protected override IEnumerator CaptureOriginalScreenshot()
|
||
{
|
||
// 示例:截图前临时调整相机FOV
|
||
float originalFOV = targetCamera.fieldOfView;
|
||
targetCamera.fieldOfView = 60; // 缩小FOV
|
||
|
||
// 调用基类的截图逻辑(保留原有功能)
|
||
var coroutine = base.CaptureOriginalScreenshot();
|
||
while (coroutine.MoveNext())
|
||
yield return coroutine.Current;
|
||
|
||
// 恢复相机FOV
|
||
targetCamera.fieldOfView = originalFOV;
|
||
}
|
||
|
||
// 重写裁剪逻辑:添加水印
|
||
protected override void CropWithTransparency()
|
||
{
|
||
// 先调用基类裁剪逻辑
|
||
base.CropWithTransparency();
|
||
|
||
// 自定义:给裁剪后的图片添加水印
|
||
if (_croppedTexture != null)
|
||
{
|
||
// 简单水印绘制(实际项目可使用Texture2D.SetPixel或更复杂逻辑)
|
||
for (int y = 0; y < 20; y++) // 底部绘制20像素高的水印区域
|
||
{
|
||
for (int x = 0; x < _croppedTexture.width; x++)
|
||
{
|
||
// 每10像素绘制一个水印像素(简单示例)
|
||
if (x % 10 == 0)
|
||
{
|
||
_croppedTexture.SetPixel(x, y, watermarkColor);
|
||
}
|
||
}
|
||
}
|
||
|
||
_croppedTexture.Apply(); // 应用水印
|
||
}
|
||
}
|
||
|
||
// 重写保存逻辑:修改保存路径
|
||
protected override void SaveCroppedImage()
|
||
{
|
||
// 自定义保存路径:在原有路径后添加"Custom"子文件夹
|
||
string customFolder = Path.Combine(saveFolder, "Custom");
|
||
if (!Directory.Exists(customFolder))
|
||
Directory.CreateDirectory(customFolder);
|
||
|
||
// 临时修改保存路径
|
||
string originalSaveFolder = saveFolder;
|
||
saveFolder = customFolder;
|
||
|
||
// 调用基类保存逻辑(使用修改后的路径)
|
||
base.SaveCroppedImage();
|
||
|
||
// 恢复原始路径
|
||
saveFolder = originalSaveFolder;
|
||
}
|
||
|
||
// 利用钩子方法:保存后上传图片
|
||
protected override void OnAfterSave()
|
||
{
|
||
base.OnAfterSave();
|
||
// 示例:保存完成后自动上传
|
||
Debug.Log($"开始上传图片:{FullPath}");
|
||
// StartCoroutine(UploadToServer(FullPath)); // 实际项目中添加上传逻辑
|
||
}
|
||
}
|
||
} |