Unity Windows 填坑日记之导出篇

Unity导出并制作window安装程序exe 如果我们是做pc端游或者基于pc的一些应用的,那么我们肯定对打包exe应用程序不陌生,我们经常会用到一些软件,比如:inno setup,NSIS等而使用unity做游戏开发的的人来说,一般导出程序都是面向手机的apk或ipa,只有做VR或者pc端游才会用到这个。下面我们就简单介绍下如何使用inno setup来制作unity导出包的exe应用程序。 阅读详情

1. .Net 2.0 Subset

顾名思义,.Net 2.0 Subset 是 .Net 的一个子集。Unity 在导出Windows8 & WindowsPhone平台的时候会默认将API Level设置成.Net2.0 Subset 来减小程序包的体积,并减少应用程序启动时间。


但是一般情况下,这个Subset是不够用的。如果你想要把一个PC端或者网页端的一个游戏导出到WindowsPhone平台,你会在编译的时候吃到大量的错误。所以这一项一定要设置为“None”。

但是即便如此,情况依然不容乐观。因为我们即使获得了完整的.Net2.0,还是要为.Net4.5以及2.0之间坑爹的兼容性付出代价。所以在写代码之前,最好查一下MSDN,了解一下哪些API是已经被遗弃了的,以避免在Unity内部一帆风顺但是导出到手机上出各种诡异的毛病。

另外,其实WindowsPhone与Winodws8都用的不是百分之百完整的.Net,这两个平台的.Net版本都面向平台自身做了一些“优化”(姑且说是优化吧。我想起来一个桥段,在美帝的阿波罗13号事故中,登月舱和指令舱居然不能共用一个空气净化器,因为一个接口是方的,一个接口是圆的。扯远了呵呵)。他们虽然是.Net4.5的子集,但是实现了两套完全不同的API。举例来说吧:如果你想上APP Store,那么,WindowsPhone自带的计费API带有应用内付费(IAP)的功能,但是Windows8没有。如果你的游戏需要打开屏幕键盘,那么好吧,Windows8不允许这么做,但是WindowsPhone可以。如果你觉得只面向Windows8或者WindowsPhone二者其一就可以避免兼容性问题,那么你错了。Windows8有8.0和8.1两个版本。这两个版本的某些API是完全不兼容的。比如还是游戏开发者最关心的IAP问题,同样的功能,实现方法确不尽相同。具体我就不细说了,我现在已经放弃使用微软内置的付费渠道来进行计费。感兴趣的请到MSDN去找代码范例。

前车之鉴,至少以下.NET API万万不可用,如果真的需要,那么自己实现或者用别的代替:

String.Format

IClone

XmlElement,XmlNode

HashTable

ArrayList

WWW.threadPriority

Type.IsAssignableFrom

BindingFlags

StreamReader

File

2. 导出工程类型

这一部分主要是关于Windows8平台。WindowsPhone的工程类型相当于下面要介绍的XAML C# SOLUTION


如了个图,这里是Windows8输出的四种主要的工程类型。不管哪一种工程,Unity官方都给出了详细的导出文档,这一点感兴趣可以自己去找。我这里主要讲需要填坑的部分,也就是不好解决的部分。好解决的问题都不是问题。

我要说的是,如果你的游戏要上Windows8平台,并且带有文字输入框,那么你一定要使用最后一种方式进行导出,也就是XAML C# SOLUTION。

这是为什么呢?

因为Windows8的API不让你弹出虚拟键盘!在Windows8平台,除非你使用微软提供的文字输入控件,否则不会让你主动弹出键盘并且不会给你任何方法让你获取到虚拟键盘上输入的文字。如果你想在NGUI输入框中输入点文字,不好意思,没门!这一部分我会着重介绍,因为我当时处理这个问题的时候搜索遍国内外大量的技术文章都没有说这个问题。而且我发现Windows8平台的3d游戏几乎都没有输入框。。。。。。

另外就是版本号,8.0和8.1.除了API会有不兼容的现象以外,还会有一个更坑爹的问题:屏幕坐标算法不一样!也就是说,如果你用8.0的API生成了一个程序,放到了8.1系统上,那么会有一定的几率出现图像缩放异常的情况。但是如果你用8.1的API生成应用程序,那么根本就没有办法在使用了WindowsRT或8.0的电脑上运行。我的看法是,两个版本要分别生成。微软给提供了这样的功能:你可以再APP Store上上传两个文件包,他们会根据用户的机器提供正确的应用程序包以供下载。


好了基本上就这些!如果有别的问题欢迎留言,也欢迎给我发邮件:stupidcodegenerator@gmail.com


Unity-WinForms:Unity3d的Windows窗体端口 Unity Windows表单 在“ UnityEngine.GUI”类的顶部构建的Unity3d的Windows窗体端口(包括System.Drawing)。 支持的控件 按钮; 复选框; 组合框; DateTimePicker; FontDialog; 形成; GroupBox; HScrollBar; 标签; LinkLabel; 列表框; MenuStrip; 月历; NumericUpDown OpenFileDialog; 面板; PictureBox; 进度条; 单选按钮; SaveFileDialog; SplitContainer; 立即下载

相关推荐

E-Prime脑电实验打mark全攻略:从端口查询到串并口实战(附常见问题解决)

本文提供了E-Prime脑电实验打mark的完整实战指南,涵盖端口查询、并口与串口配置的核心步骤及常见问题解决。文章深入解析了mark原理,并详细介绍了通过E-Basic脚本和Serial设备对象发送信号的两种方法,帮助研究者实现E-Prime与脑电设备的高精度时间同步,确保实验数据可靠性。

4k5l6j7h8的博客 354

Unity截屏(部分屏幕)并显示

using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; public class MyShot : MonoBehaviour { public Texture2D texture2d; public bool isShoot; // ...

weixin_42935398的博客 1229

芯片低功耗设计实战:CPF与UPF流程选择指南(附工具对比)

本文深入探讨了芯片低功耗设计实战中CPF与UPF流程的选择策略。文章从两者本质差异与演进脉络出发,结合Cadence与Synopsys工具链的深度支持实况,为工程师提供了基于项目场景的决策框架。重点分析了在混合工具链环境下如何实施流程与验证,并强调了利用Spyglass等工具确保功耗意图无损传递的关键技巧,旨在帮助团队做出明智的流程抉择,提升设计效率与可靠性。

weixin_29197051的博客 405

调用电脑触控键盘

[DllImport("user32")] [/float][float=right][color=#4f4f4f][font="][size=16px]static extern IntPtr FindWindow(String sClassName, String sAppName); [DllImport("user32")] static extern bool PostMess...

weixin_37744986的博客 976

DeepSeek安装教程

两分钟讲述deepseek正确安装教程

weixin_45906703的博客 1662

C#版OpenCV:OpenCVSharp 最详细最全面教程(万字详细总结)

OpenCVSharp 是一个用于 .NET 环境的 OpenCV 包装库,它提供了一种简便的方法来利用 OpenCV 的功能进行图像和视频处理。OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉和机器学习软件库,最初由 Intel 研发并发布。OpenCVSharp 让 C# 和其他 .NET 语言的开发者可以方便地访问 OpenCV 的强大功能。// 打印 OpenCV 版本信息Cv2。

仰望星空的博客 2万+

unity-打包及发布

如何打包游戏

qq_64573579的博客 1万+

Android Telephony主要模块及功能

Telephony的代码主要由五个模块组成 1.Telephony Frameworks 代码区域: frameworks/opt/telephony/ 其中主要的文件在如下目录 /frameworks/opt/telephony/src/java/com/android/internal/telephony/ 其中比较常见的有以下几类文件 1.BaseCommands、RIL构成R

泊客 7720

Protobuf-net 在Unity3D中使用的小技巧 (解决JIT错误)

项目中使用了开源项目 Protobuf-net 来解析 google protobuf 格式的通信数据,因为 GOOGLE 自带支持的语言里不包括 C#,所以需要用到第三方的开源库 Protobuf-net 。 之前在WIN7,安卓上使用都正常。发布到 IPAD MINI2 上是发现有问题,表现如下: 有时可以正常使用,但似乎一开始会被卡一会。 有时完全无法正常使用,反序列化的时候会

宁静致远 2118

福彩快乐8智能选号系统研究

本文介绍了一款福彩快乐8智能选号系统的开发过程。系统首先通过数据采集获取历史开奖数据,作为分析的基础。随后,对采集的数据进行深入分析,以识别可能的模式和趋势。基于这些分析,系统能够智能预测未来的开奖号码,如2025129期的预测。最后,通过模拟兑奖功能,用户可以直观地看到预测结果的实际效果。文章鼓励感兴趣的读者点赞并领取源代码,以便自行探索和使用该系统。

gumuzi1210的博客 2211

Unity小游戏接入抖音敏感词检测

摘要: 本文介绍了Unity小游戏接入抖音敏感词检测的方法。抖音官方提供了两种API:SensitiveWordCheck用于检测敏感词,ReplaceSensitiveWords用于替换敏感词。此外,若使用键盘输入事件,可通过tt.onKeyboardComplete监听回调,平台会自动屏蔽敏感词(替换为*)。接入官方字库可有效避免审核驳回,适用于小游戏中的用户输入功能(如起名系统)。附官方文档链接及参数说明。

类人_猿的博客 4593

Windows 填坑日记之Windows 8 虚拟键盘问题

首先我要说一下,只有在Windows8

StupidCodeGenerator的专栏 1866

【AI for Medecine】吴恩达医学图像AI专项课程(诊断、预测、治疗)

近期需要简单了解AI4Science上的一些应用,看到吴恩达大佬的专项课程,于是开始来个“全面”的了解--医学人工智能(诊断、预测、治疗)。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 770

WindowsPhone&Windows8.1&Windows8&Unity3d 填坑日记

最近的游戏开发大体上接近尾声,总结了不少关于Unity3d面向Windows几大平台

StupidCodeGenerator的专栏 5180

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

unity设置包最小

unity 裸包apk 7.69m +NGUI +反编译=7.93M  打包时的引用库,改一改build设置即可。 对于一个新项目来说不会有太大问题,但是如果是已经存在的项目,可能改变会导致原来所需要的库的缺失(虽说一般来说这种可能性不大), 因此有可能无法做到最优。 当使用Unity开发时,默认的Mono包含库可以说大部分用不上,在Player Set

枫叶林的专栏 8439

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[Unity3d]Player Settings导出设置

Player Settingsis where you define various parameters (platform specific) for the final game that you will build in Unity. Some of these values for example are used in theResolution Dia...

weixin_34137799的博客 2906

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Protobuf改subset模式缺少dll问题

protobuf是google 的一种数据交换的格式,它独立于语言,独立于平台。 游戏中用于客户端与服务端的数据交互以及简单的数据存储都很方便。 prototbuf的导入,去github下载最新的版本。然后有两种方案,一种是直接将源码放入工程,一种是编译成dll再放入工程。 关于第二种,网上有说法是用dll的方式在Android平台下没问题,但是在IOS平台下会有问题,用不了。 那就用第一

随风吹笛 1497

在ios android设备上使用 Protobuf (使用源码方式)

转自:http://game.ceeger.com/forum/read.php?tid=14359 如果你的工程只能以.Net 2.0而不能以.Net 2.0 subset运行,请看另外一个方法。  地址:http://game.ceeger.com/forum/read.php?tid=13479&fid=27  ===================================

xdesigner的专栏 928

unity中出现找不到.net部分命名空间的问题

在unity环境下需要使用串口,需要用到System.IO.Ports这个命名空间下的相关资源,代码用vs2015写的,vs2015没有报任何错,结果unity报了一个错误: The type or namespace name `Ports' does not exist in the namespace `System.IO'. Are you missing an assembly ref

whshiyun的专栏 5257

.NET和UNITY版本问题

.NET和UNITY版本问题 亲测:unity5.5之前:通过VS工程属性查看.NET版本为3.5, 对应unity中没有可查看的项,只有一个Api Compatibility level 是.net subset2.0,看名字,猜测是最低支持的版本,再低就不支持了。 unity2018.2,通过VS工程属性查看.NET版本也是3.5, 对应unity中有 Scri...

c1sdn19的专栏 1846

Unity 获取错误日志信息

public static bool CheckLogType(LogType t) { if (t == LogType.Error || t == LogType.Exception) return true; return false; } public static Application.LogCallback GetErrorLog(Action<string,string> func) { Application.LogCallback .

Zyt 3704

Unity3D一键导出程序

using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; using System.IO; public class Tools : EditorWindow { [MenuItem("Tools/Build for Windows")] ...

810364804 817

win10针对Unity导出apk 需要Android SDK ,对SDK的进行安装与相应配置

在做一个AR项目中,对需要unity导出apk安装包在手机上进行测试,需要预先的jdk与Android sdk配置教程。 1.安装JDK 2.Android SDK 3.unity路径配置 1.安装jdk https://www.oracle.com/cn/java/technologies/javase-downloads.html 可以在上面链接官网中进行一个下载 1.1 可以自己更改安装路径,但是记得所有路径必须是英文滴。(下面是我的安装路径) 1.2 变量环境的设置:此电脑右键,属性,高级系统设置

weixin_44213956的博客 1023

Unity3D一键导出Windows程序

using UnityEngine;   using System.Collections;   using UnityEditor;   using System.Collections.Generic;   using System.IO;      public class Tools : EditorWindow   {       [MenuItem("Tools/B...

TTS 1015

关于使用 Unity 在 Windows 端导出带有 Admob 插件的 XCode 工程后,再到 Mac 端打包的问题

Unity 从 windows 端导出带有 Admob 插件的 XCode 工程后,在 Mac 端打包

艾沃尼斯の飞空庭 8233
上一篇: WindowsPhone&Windows8.1&Windows8&Unity3d 填坑日记
下一篇: Windows 填坑日记之Windows 8 虚拟键盘问题
垃圾桶
博客等级 码龄15年 20粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值