unity以战斗截图并加上微信二维码分享

开发游戏时,会遇到战斗结算,成就等奖励界面,鼓励玩家分享到朋友圈,这时通常会在图片上加上一些内容,比如游戏Logo,二维码下载等内容。

现在分享一下我制作游戏分享图片的过程。

第一步首先截图,截屏的方法有一个unity提供的方法,CaptureScreenshot,但并不推荐使用这个方法。一来这就是一个截屏函数,必须放在startcortinoute中,二来耗时比较长。

第二种是使用RenderTexture的方法,直接利用相机的渲染输出到Texture2D中。现假设将两个相机的内容输到一个图片上。

主相机视野为:

第二个相机视野为

两个相机综合输出的视野为

。贴代码

csharp 复制代码
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class RenderTextureTest : MonoBehaviour {

	RawImage showImage = null;
	Camera mCam = null;
	Camera Came2 = null;
	RenderTexture RenderTex = null;
	Texture2D RenderSavedTexure2d = null;
	// Use this for initialization
	void Start () {
		showImage = GameObject.Find("ShowRenderTexure").GetComponent<RawImage>();   //显示输出的渲染图片
		mCam = Camera.main;
		Came2 = GameObject.Find("Camera2").GetComponent<Camera>();
		RenderTex = new RenderTexture(Screen.width, Screen.height, 16, RenderTextureFormat.ARGB32);//初始化存储
		RenderSavedTexure2d = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
		//screenUITex.mainTexture = RenderSavedTexure2d; // 如果用NGUI UITexure显示图片
		showImage.texture = RenderSavedTexure2d;
	}

	void RenderCam()
	{
		if (null != mCam && null != Came2)
		{
			mCam.targetTexture = RenderTex;  //降相机的targetTexture指向RenderTex,即输出到RenderTex
			mCam.Render();
			Came2.targetTexture = RenderTex;
			Came2.Render();

			RenderTexture.active = RenderTex;//激活RenderTexture

			RenderSavedTexure2d.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0);  //将RenderTexture内容读到RenderSavedTexure2d
			RenderSavedTexure2d.Apply();//应用RenderSavedTexure2d

			mCam.targetTexture = null;
			Came2.targetTexture = null;

			RenderTexture.active = null;
			
		}
	}

	public void ClickRenderCame()
	{
		RenderCam();
	}
	// Update is called once per frame
	void Update () {
	
	}
}
相关推荐
阿松爱学习10 小时前
【Unity开发】监听Scene场景事件
unity·c#
xiaogai_gai17 小时前
BOM 物料清单同步实战:金蝶云星空 → 四化智造 MES 修改场景深度拆解
unity·游戏引擎
淡海水21 小时前
03-03-架构篇-SGen GC架构解析
unity·架构·c#·gc·sgen
萌萌的提莫队长2 天前
Unity相机捕捉,图像识别,抠像+合成
opencv·unity
mxwin2 天前
Unity Shader 光线追踪原理与实战案例
unity·游戏引擎
地狱为王3 天前
Unity使用DPDFNet实现实时语音增强(降噪)
unity·语音增强·降噪·dpdfnet
平行云PVT3 天前
国产信创实时云渲染解决方案:如何实现数字孪生与三维应用云化部署?
unity·webrtc·unreal engine·实时云渲染·国产信创·摩尔线程·砺算科技
夏炎黄3 天前
Terrain地形剪裁
unity
小贺儿开发3 天前
DeepSeek + Codex + MCP:Unity 游戏开发实测
科技·游戏·unity·ai·程序员·编程·deepseek
新的瑞拉公主3 天前
Cocos plist 粒子一键导入 Unity:Editor 工具实现与参数映射
unity·游戏开发·cocos2d-x·粒子系统·editor工具