unity静默打印

发布全屏之后,不退出,背景静默打印,可用于截图直接打印

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.Diagnostics;
using System.Drawing.Printing;
public class Test : MonoBehaviour {
    PrintDocument pri;
    // Use this for initialization
    void Start () {
        int i = Screen.resolutions.Length;
        Screen.SetResolution(Screen.resolutions[i - 1].width, Screen.resolutions[i - 1].height, true);

        pri = new PrintDocument();
        //pri.PrintPage += Printpagetest;
        pri.PrintPage += new PrintPageEventHandler(Printpagetest);
    }
	
	// Update is called once per frame
	void OnGUI () {
        if (GUILayout.Button("Print"))
        {
            //System.Diagnostics.Process.Start("mspaint.exe", "/pt d:\\test.jpg");
            PrintFile();
        }
	}

    /// <summary>
    /// 打印
    /// </summary>
    public void PrintFile()
    {
        
        try
        {
            pri.Print();
        }
        catch (Exception _e)
        {
            UnityEngine.Debug.Log(_e);
        }
    }
    string printPath = "d:\\test.jpg";
    float _4AHeight = 595;
    float _4AWidth = 842;
    private void Printpagetest(object sender, PrintPageEventArgs e)
    {
        try
        {
            //System.Drawing.Image image = System.Drawing.Image.FromFile(printPath);
            //System.Drawing.Graphics g = e.Graphics;
            //g.TranslateTransform(_4AHeight, 0);
            //g.RotateTransform(90);
            //g.DrawImage(image, 0, 0, _4AWidth, _4AHeight);

            System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(printPath);
            e.Graphics.DrawImage(bitmap,150,240,500,700);
        }
        catch (Exception ee)
        {
           UnityEngine.Debug.LogError(ee.Message);
        }
    }
}


Unity3D提供了一个Debug类来进行打印调试信息。使用Debug类的方法可以通过连接多个变量并使用空格分隔来打印多个变量的值。然而,有些开发者认为Unity3D自带的Debug功能并不方便,因为需要手动连接变量,并且需要用空格来分隔它们。 另外,如果想要在编辑器中双击打印窗口的log,可以将打印代码打包成dll。这样,点击log时会自动跳转到目标代码,而不是打印代码本身。 这里还提供了一个示例代码片段,其中定义了一个surf函数,用于渲染3D模型表面。根据点的世界坐标高度,可以选择不同的渲染方式。如果点的高度低于指定的裁剪高度,将使用_MainTex纹理来渲染。如果高度高于裁剪高度,将使用_ConstructColor颜色来渲染,并通过比较点的高度和构建高度之间的差异来擦除部分像素。 总之,Unity3D提供了Debug类来进行打印调试信息,但有些开发者对其功能不够方便表示不满。同时,可以将打印代码打包成dll,以便在编辑器中双击log时能够跳转到目标代码。另外,示例代码片段展示了一种根据点的高度来选择渲染方式的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Unity3D打印拓展XMDebug](https://blog.csdn.net/yye4520/article/details/80393954)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Unity中使用Shader实现3D打印机效果](https://blog.csdn.net/LeoHiJack/article/details/54603420)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值