解决VMware安装MacOS无法连接真手机的方法
VMWare中MacOS连接真机Xcode始终提示No devices connected to ‘My Mac’…
使用C#开发跨平台游戏
VMWare中MacOS连接真机Xcode始终提示No devices connected to ‘My Mac’…
https://releases.xamarin.com/stable-release-cycle-8-service-release-2/
https://releases.xamarin.com/stable-release-cycle-7-service-release-1/
https://releases.xamarin.com/stable-release-cycle-6-service-release-4/
留意上面三个URL地址。cycle8,cycle7,cycle6表示三个大版本,release2,release1,release4表示大版本发布了几个稳定版。修改这些数字就可以找到Xamarin各个版本的详细更新说明,可以知道ios,android,windows分别需要对应安装包的版本。
我使用的是https://releases.xamarin.com/stable-release-cycle-6-service-release-3/ 也就是第六个大版本的第三个发布版。打开地址可以看到安装包版本要求
因为我只开发iOS和Mac所以只需要安装Xamarin Studio Community,Xamarin.iOS,Xamarin.Mac。请留意各大组件的版本号。下面是一张安装好的Xamarin Studio关于界面的截图。需要版本对应Xamarin才能正常运行
下面举例说明如何下载Xamarin离线安装包先留意以下地址
Xamarin Studio下载地址:https://dl.xamarin.com/MonoDevelop/Mac/XamarinStudio-5.10.3.51.dmg
Xamarin.iOS下载地址: https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-9.6.1.9.pkg
Xamarin.Mac下载地址:https://dl.xamarin.com/XamarinforMac/Mac/xamarin.mac-2.4.2.1.pkg
MonoFramework下载地址:https://dl.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-4.0.5.1.macos10.xamarin.x86.pkg
Xamarin for Visual Studio下载地址:https://dl.xamarin.com/XamarinforVisualStudio/Windows/Xamarin.VisualStudio_4.0.3.214.msi
下载响应版本只需要修改URL地址中的版本号即可获得离线下载包
一、下载相关工具
1.下载安装VMware12
https://pan.baidu.com/s/1nu6dxfr 密码: u8kh
VMware 12 专业版永久许可证密钥
5A02H-AU243-TZJ49-GTC7K-3C61N
2.下载VMware MAC解锁工具
https://pan.baidu.com/s/1cit2fc 密码: bnmg
为了让MonoGame编写的代码能跨平台编译运行要注意资源文件(Content目录中文件)的命名,错误的命名会出现意想不到,甚至莫名其妙的错误。比如名字带了特殊字符“+”号就会导致在iOS平台出现The “CollectBundleResources” task failed unexpectedly.错误。在windows平台却没有问题。
MonoGame开发手机游戏最大的缺陷是安装包太大。小游戏打包后的尺寸基本都在20MB以上。造成包大的原因是资源文件。比如:一个png文件编译成xnb以后体积会增大好几倍。所以为了压缩安装包的尺寸可以放弃使用xnb作为资源文件,可以直接使用png文件。方法是用TitleContainer代替Content加载资源。
iOS早期的屏幕大小是固定,游戏界面的位置通常采用绝对定位。为了保证迁移的顺利,只需要放大iOS的根视图即可解决iPhone尺寸变大的问题!方法如下:
MonoGame的iOS项目模板新建以后无法直接编译运行,会报错误。
iOS平台使用Microsoft.Devices.Sensors.Accelerometer制作重力感应游戏要注意plist文件中屏幕方向的设置。如果游戏使用了上下左右四个方向重力加速度,那么取消plist文件中任何一个方向会造成游戏闪退。Debug过程中很难找到崩溃原因。所以要注意这个细节。
MonoGame在iOS平台使用Microsoft.Devices.Sensors.Accelerometer会出现重力感应不灵敏的问题。monogame版本是3.5.1
MonoGame的价值在于可以将原XNA游戏移植到iOS和Android平台。移植基础是Xamarin。在Xamarin.iOS缺少System.IO.IsolatedStorage.IsolatedStorageSettings类。这个类通常用来存储游戏数据状态,非常重要。下面提供IsolatedStorageSettings在iOS平台的实现代码:
MonoGame v3.5.1 使用SoundEffect播放音频文件时会出现0x88960001错误。详细如下:
HRESULT: [0x88960001], Module: [SharpDX.XAudio2], ApiCode: [XAUDIO2_E_INVALID_CALL/InvalidCall], Message: Unknown
很明显是第三方SharpDX的问题,可能是音频文件格式也可能是其他的。
MonoGame 3.5.1有一个bug。明明已经using了Microsoft.Xna.Framework.Media还是会提示:The type or namespace name ‘XXXX’ does not exist in the namespace ‘MediaPlayer’ (are you missing an assembly reference?)
MonoGame 3.5.1在iOS,Windows Phone(其他平台未测试)中使用Mouse.GetState()方式获取坐标点始终是0。这是MonoGame的一个Bug。
解决办法:
1.等官方修复,请关注MonoGame最新进展 https://github.com/MonoGame/MonoGame
2.自己下载源码修复
3.本站提供临时解决办法: