`
380071587
  • 浏览: 440657 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

unity3d屏幕截图功能

 
阅读更多
function OnGUI(){
   if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){
       Application.CaptureScreenshot("Screenshot.png");
   }
}


这张Screenshot.png图片被存在了当前工程的子目录下了。之前在android上面一直不知道路径,后来把所有路径试玩了总算ok了,呵呵~~~在android上截取的图片存在Application.persistentDataPath上面,在pc上存在Application.dataPath。

private var www:WWW;
private var image:Texture;
private var path:String;
function Awake(){
   Application.CaptureScreenshot("Screenshot.png");
}
function Start () {
   if(Application.platform==RuntimePlatform.Android){
      path=Application.persistentDataPath;
   }else if(Application.platform==RuntimePlatform.WindowsPlayer){
      path=Application.dataPath;
   }else if(Application.platform==RuntimePlatform.WindowsEditor){
   path=Application.dataPath;
   path=path.Replace("/Assets",null);
  } 
   www=new WWW("file://"+path+"/Screenshot.png");
   yield www;
   image=www.texture;
}

function OnGUI(){
    GUI.Label(Rect(0,0,400,50),"1:"+Application.persistentDataPath);
    GUI.Label(Rect(0,50,400,50),"2:"+Application.dataPath);
    GUI.Label(Rect(0,100,400,50),"3:"+Application.temporaryCachePath);
    GUI.Label(Rect(0,150,400,50),"4:"+Application.absoluteURL);
    GUI.Label(Rect(0,200,400,50),"5:"+Application.streamingAssetsPath); 
    GUI.DrawTexture(Rect(0,250,300,200),image);
}
在编辑器上各种路径:



在pc上各种路径:

在web上各种路径:

在android上面各种路径:






第二种方法:

import System.IO;
var www:WWW;
var image:Texture;
function Start () {

}

function OnGUI() {
    if(GUI.Button(Rect(0,0,100,100),"png")){
        writeFile();
    }
    if(Input.GetKey(KeyCode.Escape)){
       Application.Quit();
    }
    
      www=new WWW("file://"+path);
      image=www.texture;
      GUI.Button(Rect(Screen.width-100,0,100,100),image);
  
}
private var fileName : String = "jietu2";
private var path:String;
function writeFile()
{
    path=Application.dataPath;
    var tex : Texture2D= new Texture2D(Screen.width,Screen.height,TextureFormat.RGB24, false);
    tex.ReadPixels(Rect(0,0,Screen.width,Screen.height),0,0);
    tex.Apply();
    var bytes : byte[]=tex.EncodeToPNG();
    Destroy(tex);
    var thisName : String = fileName+".png";
    if(Application.platform==RuntimePlatform.Android){
        path="/mnt/sdcard/"+thisName;
    }else{
       path=path+thisName;
    }    
    var cache = new FileStream(path, FileMode.Create);
    cache.Write(bytes,0,bytes.Length);
    cache.Close();
}



后来我又试了一下这个方法,结果又不行了,运行到var cache = new FileStream(path, FileMode.Create);就不运行了。

分享到:
评论

相关推荐

    Unity3D屏幕截图功能2

    28 } 在编辑器上各种路径:Unity3D屏幕截图功能在pc上各种路径:Unity3D屏幕截图功能在web上各种路径:Unit

    Unity3D火山岩浆,河流流动效果

    Win7系统,Unity3D3.5.6f4。 这是Unity3D官方flow资源包免费版本,下载下来跟大家分享,...至于运行是屏幕左下脚出现的那一行字,需要隐藏的话,大家自己把字体颜色调成黑色就可以了,更多功能请去官方下载收费版本。

    Unity3d C#实现UGUI上箭头指示3D地图物体位置功能源码

    Unity屏幕内标注视野外物体项目源码。 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/122837978

    Unity3d多相机同屏显示+可切换式场景监控

    主要用于Unity中多场景监控及场景交互,主要功能如下: 1:场景内显示多个相机拍摄到的画面,且主屏幕占整个屏幕,其他相机画面显示在右上角。 2:主屏幕与右上角的次屏幕的内容可以互换。互换方式:点击右上角想要...

    Unity3d C# UGUI制作内置键盘带输入功能工程源码

    Unity3d C# UGUI制作内置键盘带输入功能工程源码, 建议先看说明:https://blog.csdn.net/qq_33789001/article/details/119150082

    unity3d 左右滑动

    实现一个功能,鼠标向右滑动时响应下一页事件,鼠标向左滑动时响应上一页事件

    unity3d串口数据显示.docx

    这是我网上查阅了大量资料、文档后自己修改、总结做出来的,网上大部分都是debug形式显示数据,然后我做的是显示到text中去的,功能就是接收单片机发送过来的数据,并显示到unity3d里面,里面包含有两种显示形式,一...

    Unity重定向日志输出到屏幕

    非常的不方便,所以做了个日志输出的重定向到屏幕上 为了图方便,用了UGUI做输出显示 支持做了简单的颜色区分和时间显示,并且会自动拦截全局的未catch的exception信息 提供了显示隐藏和屏蔽滑动的功能(用于...

    Unity3D项目编码规范

    Unity3D项目编码规范 U3D C#编码规范 Unity3D代码规范 游戏开发编程代码规范 Unity3D开发编程代码规范 1.1行数和列数 1. 单个文件尽量不要超过500行(一些特殊功能类除外)。 2. 单个函数尽量不要超过40行,即在...

    将3D坐标转成2D坐标的方法2

    2.用“tower”标签名称来区隔不同的3D物件 3.用此功能取得所点击的3D物件的x,y,z坐标(world space) 然后再透过camera.World

    Hovershift 1.3.0 - 宇宙飞行游戏模板 Unity3D

    - 将PNG屏幕截图分享到社交网络 - 原生评级弹出窗口(评价我的应用) - 使用OneSignal或Firebase服务推送通知 - 原生警报 笔记: *预先集成意味着您不需要编写一行集成代码,所有事情都是事先完成的。您只需导入...

    使用 Unity3d 开发的微信跳一跳小游戏

    使用 Unity3d 开发的微信跳一跳小游戏。它主要实现了以下功能: 角色跳跃:用户可以通过点击屏幕来控制角色的跳跃力度和方向,目标是跳到不同的平台上,不要掉下去。 相机跟随:相机会随着角色的跳跃而移动,保持...

    Unity 实现UI窗口拖拽缩放

    在Unity里面实现UI窗口的操作,包含拖动,单边拖动缩放,对角拖拽缩放功能

    GPU-Planetary-Rendering:Unity 3D中的GPU大气散射和行星生成

    相机控件如下: E / Q-行相机W / A / S / D-移动相机鼠标滚动-提高/降低摄像头速度空间-显示/隐藏鼠标C-以两倍的屏幕分辨率拍摄屏幕截图X-退出申请更新到Unity 2019.2.8f1要求具有计算着色器功能的GPU 具有异步GPU...

    基于C#和Unity3d引擎制作的音频可视化播放器源码+项目说明文档.zip

    这是一个使用Unity3D引擎制作的音频可视化播放器。 【实现功能】 自适应不同分辨率比例,例如16:9:、16:10等。 进入游戏前可设置窗口化或全屏显示。 进入游戏后,播放问候语同时播放示例音频进行效果展示。 读取本地...

    Unity 3D NGUI实战教程(80M完整版)

    Unity 3D NGUI实战教程 完整版 第1章 初识NGUI 1.1 游戏UI开发介绍 1.1.1 什么是游戏UI 1.1.2 UI为何如此重要 1.1.3 UI开发的流程 1.1.4 UI开发的难点 1.2 什么是NGUI 1.2.1 NGUI插件介绍 1.2.2 NGUI的强大优势 第2...

    DynamicScroll:Unity 3D NGUI动态滚动

    NGUI的动态滚动Dynamic Sc​​roll解决了现有NGUI Scroll的问题,即在处理大量滚动内容时性能会降低。...演示这是在Unity Editor上运行的“ Dynamic Sc​​roll for NGUI”演示的屏幕截图。 YouTube链接:htt

    java服务器 java机器人 unity3D客户端.rar

    输入几个字屏幕就被换行,肯定玩玩。不过如果是画面形式,当然就无所谓了。 修改比较方式。修改数组的初始化的方式(建议改为ArrayList方式作为容器),并调用Lists的排序方法;最后提个建议:注意代码编写规范,...

    最新版本的NGUI插件NGUI Next-Gen UI 覆盖unity多个版本

    它可以覆盖Unity的多个版本,包括Unity 5、Unity 2017和Unity 2018等。与其他UI插件相比,NGUI Next-Gen UI具有高效的性能和优秀的渲染效果,可以帮助开发者快速构建出美观、流畅的用户界面。 在NGUI Next-Gen UI中...

    GPU Instancer 是一款开箱即用的工具,可显示屏幕上对象的精确数量,性能表现强劲。

    GPU Instancer 是一款开箱即用的工具,可显示屏幕上对象的精确数量,性能表现强劲。只需鼠标点击几下,你就可以实例化你的预设、Unity 地形细节和树木。 GPU Instancer 可提供方便操作的工具,让你省去费力学习计算...

Global site tag (gtag.js) - Google Analytics