您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    webplayer的截图实现
    时间:2015-01-12 22:13 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印

    首先是建一个 C# 类:
    using System;
    using UnityEngine;
    using System.Collections;
    public class PostPng
    {
    public static string UploadUrl = http://127.0.0.1/getpng.php;
    public static void UploadPNG(MonoBehaviour thread, string fileName, Action<bool> result)
    {
    thread.StartCoroutine(UploadPNG(fileName, result));
    }
    private static IEnumerator UploadPNG(string fileName, Action<bool> result)
    {
    yield return new WaitForEndOfFrame();
    int width = Screen.width;
    int height = Screen.height;
    Texture2D tex = new Texture2D(width, height, TextureFormat.RGB24, false);
    tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
    tex.Apply();
    byte[] bytes = tex.EncodeToPNG();
    GameObject.Destroy(tex);
    WWWForm form = new WWWForm();
    form.AddField("enctype", "multipart/form-data");
    form.AddBinaryData("PngUpload", bytes, fileName, "image/png");
    WWW post = new WWW(UploadUrl , form);
    yield return post;
    if (string.IsNullOrEmpty(post.error) && result != null)
    {
    result(true);
    }
    else
    {
    result(false);
    }
    post.Dispose();
    }
    }
    再建一个 Cube,再建一个 C# 脚本:
    OnGUI()
    {
    if (GUI.Button(new Rect(440, Screen.height - 25, 65, 23), "Snapshot"))
    {
    LoadHelp.UploadPNG(this, "Snapshot", delegate(bool result)
    {
    if (result)
    {
    Application.ExternalEval("alert('ok')");
    }
    });
    }
    }
    最后要建立一个接受图片上传的程序,用什么取决于你的web服务器,我这里用的是php:
    <?php
    $filename = "";
    $field = "PngUpload";
    $pngfolder = "snapshot/";
    if ($_FILES[$field]["error"] > 0)
    {
    echo "Error: " . $_FILES[$field]["error"];
    }
    else
    {
    $filename = $pngfolder . $_FILES[$field]["name"] . ".png";
    move_uploaded_file($_FILES[$field]["tmp_name"], $filename);
    echo("ok");
    }
    ?>

    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家