查看: 1274|回复: 0
打印 上一主题 下一主题

[unity3d脚本]Unity3D截图并保存任意目录

[复制链接]

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-3-2 09:58:02 |只看该作者 |倒序浏览
截图并保存至任意目录在游戏或者软件需求中经常会用到,现在就来分享下具体实现:

1.前提条件:仅限于--Pc and Mac Standalone

2.准备工作: ①找到System.Windows.Forms.dll:在unity的安装目录中找到它,如Erogram Files (x86)UnityEditorDataMonolibmono2.0
                    ②设置.NET 2.0集:Untiy默认是.NET 2.0 Subset。在Edit->roject Settings->layer->OtherSettings中修改。

3.具体实现:①任意打开一项目,新建Plugins文件夹,将找到的System.Windows.Forms.dll复制进去
                   ②新建一脚本Screenshot.cs并拽至任一物体上。
                   ③运行后,按Z键进行截图并保存。

4.Screenshot.cs:

using UnityEngine;
using System.Windows.Forms;
public class Screenshot : MonoBehaviour {
    void Update() {
        if (Input.GetKeyDown(KeyCode.Z)) {
            SaveFileDialog saveLog = new SaveFileDialog();
            saveLog.InitialDirectory = "c:";
            saveLog.Filter = "Image Files(*.JPG;*.BMP;*.PNG)|*.JPG;*.BMP;*.PNG|All files (*.*)|*.*";
            DialogResult result = saveLog.ShowDialog();
            if (result == DialogResult.OK) {
                string path = saveLog.FileName;
                UnityEngine.Application.CaptureScreenshot(path);
            }
        }
    }
}
5.注意事项:①代码中所有的API均可在Msdn上查阅
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.savefiledialog.aspx
                    ② EditorUtility.SaveFilePanel也可以实现相同功能,只不过必须在编辑器下才可以。

6.关于报错:
①在编辑器运行,当出现此弹窗,确定忽略即可。发布成桌面客户端是不会有这个弹窗的。②关于其他报错,有可能是切换到.NET 2.0 Subset的时候没有实时编译造成的。Build一个客户端后错误就会消失。



保存至桌面

转载于unity3d圣典,原作者:eva
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-26 07:54 , Processed in 0.067719 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部