unity 相机截图

/// <summary>

/// 针对相机的截图

/// </summary>

public void CameraScreenShot(){

Rect rect = new Rect(0,0,Screen.width,Screen.height);

RenderTexture renderTexture = RenderTexture.GetTemporary((int)rect.width,(int)rect.height,0, RenderTextureFormat.ARGB32);

#region 默认内置渲染管线或者urp渲染管线(相机都是Base模式),多个相机截图的顺序是depth越小越在前渲染,如下,最终就是两个相机的画面结合

// Camera.main.targetTexture = renderTexture;

// Camera.main.Render();

// camera.targetTexture = renderTexture;

// camera.Render();

#endregion

#region urp渲染管线(base和overlay两种相机) 多个相机截图的顺序是先渲染overlay的相机再是Base的相机。如下,最终就是两个相机的画面结合

// camera.targetTexture = renderTexture;

// camera.Render();

Camera.main.targetTexture = renderTexture;

Camera.main.Render();

#endregion

RenderTexture.active = renderTexture;

Texture2D texture2D = new Texture2D((int)rect.width,(int)rect.height,TextureFormat.ARGB32,false);

texture2D.ReadPixels(rect,0,0);

texture2D.Apply(false);

Camera.main.targetTexture = null;

camera.targetTexture = null;

RenderTexture.active = null;

image.sprite = Sprite.Create(texture2D,rect,new Vector2(0.5f,0.5f));

RenderTexture.ReleaseTemporary(renderTexture);

}

在这里只是记录一下多相机截图并不包含保存、加入文字水印等方式

相关推荐
Magnum Lehar2 小时前
3d游戏引擎的Utilities模块实现
c++·算法·游戏引擎
敲代码的 蜡笔小新4 小时前
【行为型之观察者模式】游戏开发实战——Unity事件驱动架构的核心实现策略
观察者模式·unity·设计模式·c#
向宇it4 小时前
【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件
开发语言·ui·unity·c#·编辑器·游戏引擎
吃个糖糖6 小时前
MFC 调用海康相机进行软触发
c++·数码相机·mfc
szxinmai主板定制专家6 小时前
RK3588 串行解串板,支持8路GMSL相机
数码相机
半熟芝士味6 小时前
自动泊车技术—相机模型
数码相机
qq_205279057 小时前
unity 鼠标更换指定图标
unity·游戏引擎
虾球xz7 小时前
游戏引擎学习第279天:将实体存储移入世界区块
c++·学习·游戏引擎
虾球xz9 小时前
游戏引擎学习第278天:将实体存储移入世界区块
数据库·c++·学习·游戏引擎
FAREWELL0007510 小时前
Unity基础学习(九)输入系统全解析:鼠标、键盘与轴控制
学习·unity·c#·游戏引擎