unity 打包完成之后 (黑色控制台提示)
2016-12-28 13:14
218 查看
unity 打包完成之后 (黑色控制台提示)
习惯了原来C/S结构的开发,需要在unity里调用控制台来打印游戏日志,而不影响游戏的画面,我们需要调用windows API来处理一些事情。 废话不多说了,直接上干货,调用windows API来显示控制台。 代码如下:
using UnityEngine;
using System.Runtime.InteropServices;
using System;
using System.IO;
using Microsoft.Win32.SafeHandles;
public static class Common
{
[DllImport(“kernel32.dll”, SetLastError = true)]
static extern bool AllocConsole();
private const int STD_OUTPUT_HANDLE = -11; [DllImport("kernel32.dll", SetLastError = true)] static extern bool FreeConsole(); [DllImport("kernel32.dll", EntryPoint = "GetStdHandle", SetLastError = true, CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] static extern IntPtr GetStdHandle(int nStdHandle); static TextWriter oldOutput; internal static void StartWriteline() { AllocConsole(); oldOutput = Console.Out; try { IntPtr stdHandle = GetStdHandle(STD_OUTPUT_HANDLE); SafeFileHandle safeFileHandle = new SafeFileHandle(stdHandle, true); FileStream fileStream = new FileStream(safeFileHandle, FileAccess.Write); System.Text.Encoding encoding = System.Text.Encoding.ASCII; StreamWriter standardOutput = new StreamWriter(fileStream, encoding); standardOutput.AutoFlush = true; Console.SetOut(standardOutput); } catch (System.Exception ex) { Debug.Log("Couldn't redirect output: " + ex.Message); } } internal static void CLoseWriteline() { Console.SetOut(oldOutput); FreeConsole(); }
}
有需要的人直接把代码拷贝下来就可以用了,这种控制台不建议在编辑器模式下使用,在编辑器模式下会带来不必要的麻烦。
相关文章推荐
- Android升级到24之后Unity打包出错
- unityios开发--加载视频以及加载完成之后自动跳转 .
- Unity打包安卓apk时或发布安卓程序时提示 Android Asset Packaging Tool Failed
- .NET程序中加入Autodesk Design Review 2013 ,打包完成后安装提示未注册XXX.dll解决办法
- unityios开发--加载视频以及加载完成之后自动跳转
- iOS开发:2017年末最新Xcode升级之后打包的提示过程,请知晓
- Unity打包Android提示找不到jdk解决方案
- 关于DEB打包的一些失败记录,想让deb安装完成之后显示一些信息
- unity打包exe之后 下载或者生成的图片(不是直接赋给的资源)变模糊
- 控制台打包unity C#代码为dll
- oracle安装完成之后,执行sqlplus命令,提示:bash: sqlplus: command not found...
- android+https网址屏蔽证书+IntentService+NotifyManager通知栏+下载apk文件+在通知栏显示下载进度+完成之后提示安装
- win10系统java环境配置完成之后,javac命令提示不是内部或外部命令
- 从键盘输入两个数字,之后完成两个整数的加法操作,不是数字提示错误信息
- 关于DEB打包的一些失败记录,想让deb安装完成之后显示一些信息
- Unity加载TeuturePackage打包之后的图片,直接上代码
- WebLogic安装完成,控制台无法登录原因之一
- mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法
- 图片全部加载完成之后再显示页面ui,公司项目里用上,自己写的几行代码