最近在制作一个钓鱼的游戏需要对钓到的不同种类的鱼进行统计,但是没有找到合适的2D图片素材,找了蛮久下载了一个3D模型素材包,只有模型和材质没有对应的贴图,当场裂开!尝试过使用快捷键截图来截取模型图片但是会被背景图片影响,只能使用PS来修改,数量太多太麻烦。不过查询到了大佬的文章,直接可以利用摄像机导出透明底的模型图片,转载记录学习一下吧!
using System;
using UnityEngine;
using System.IO;
public class CropPicture : MonoBehaviour
{
public Camera cropCamera; //待截图的目标摄像机
RenderTexture renderTexture;
Texture2D texture2D;
void Start()
{
renderTexture = new RenderTexture(256, 256, 32);//尺寸可调节
texture2D = new Texture2D(256, 256, TextureFormat.ARGB32, false);
cropCamera.targetTexture = renderTexture;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
RenderTexture.active = renderTexture;
texture2D.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
texture2D.Apply();
RenderTexture.active = null;
byte[] bytes = texture2D.EncodeToPNG();
//DataTime.UtcNow获取的是世界标准时区的当前时间不受电脑配置影响
//DateTime.Now获取的是电脑上的当前时间是可以自己进行调整的
File.WriteAllBytes(Application.dataPath + "//pic//" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds + ".png", bytes);
}
}
}
配置操作
1.把脚本拖拽到主摄像机上。
2.创建一个新的摄像机用于获取这个摄像机视野中的模型图片。
3.设置新创建的摄像机的Clear Flags为Solider Color并且将background的透明度设置为0即可。
3.在Assets文件夹下创建一个pic文件夹用于存放截取好的图片。
4.运行按下空格键即可获得模型图片。