Articles of 单声道

MonoGame在GTK#

我想知道是否可以在标准窗口中embeddedMonoGame实例,而不是在GTK#小部件中embedded。 如果是,我怎么办? 我必须写一个自定义小部件吗? 切换到OpenTK更好吗?即使它对我来说似乎是相当不利的。

Unity3D – 重写合成效果的主相机渲染

我对Unity相当陌生,在理解渲染管道方面有点麻烦。 我需要将场景渲染到四个“窗口”,以便视口显示场景的2×2网格,每个网格的投影matrix略有不同。 我的第一个想法是有一个组件可以创建四个RenderTextures ,然后在OnPreRender()中遍历它们, targetTexture将主摄像机的targetTexture属性设置为每个纹理,并将相机的视图渲染为该纹理: (伪代码) public class CompositiongEffect : MonoBehaviour { private Material m_material; private List<RenderTexture> m_textures; void OnEnable() { if (null == m_textures) { m_textures = new List<RenderTexture>(); for (var i = 0; i < 4; ++i) { m_textures.Add(new RenderTexture(512, 512, 24)); } } if (null == m_material) { m_material = new Material(Shader.Find("Custom/CompositingEffectShader")); […]

MonoGame – NoSuitableGraphicsDeviceException

我正在尝试在Linux上创建一个跨平台的MonoGame项目。 但是,应用程序无法运行 – 它会引发NoSuitableGraphicsDeviceException。 我不知道是什么原因造成的。 它与graphics驱动程序有关吗? 这是堆栈跟踪: Unhandled Exception: Microsoft.Xna.Framework.Graphics.NoSuitableGraphicsDeviceException: Failed to create graphics device! —> System.EntryPointNotFoundException: SDL_SetWindowResizable at (wrapper managed-to-native) Sdl+Window:SetResizable (intptr,bool) at Microsoft.Xna.Framework.SdlGameWindow.CreateWindow () [0x00098] in <c31673e23fbb4b338ace0c0a31a4b94e>:0 at Microsoft.Xna.Framework.GraphicsDeviceManager.PlatformInitialize (Microsoft.Xna.Framework.Graphics.PresentationParameters presentationParameters) [0x000d8] in <c31673e23fbb4b338ace0c0a31a4b94e>:0 at Microsoft.Xna.Framework.GraphicsDeviceManager.Initialize () [0x00023] in <c31673e23fbb4b338ace0c0a31a4b94e>:0 at Microsoft.Xna.Framework.GraphicsDeviceManager.CreateDevice () [0x00011] in <c31673e23fbb4b338ace0c0a31a4b94e>:0 — End of inner exception stack trace […]

帮助从iOS上的服务器检索/发送数据(C#,Mono,.Net)

如果这是一个愚蠢的问题,我很抱歉。 我目前正在从事一些可以从服务器获取信息的东西。 我的目标是将我正在检索的数据(或者就此发送)尽可能小 – 无论是速度还是带宽。 为了使事情更复杂,我将需要两组数据: 全局(Global):某些内容不是很多的数据,但是每次都需要同步。 (新闻,地位等) 个人:用户的数据。 (点,分数等)这也不是很多的数据,但我认为一个数据库将是理想的。 这不意味着我不得不检索整个数据库,然后过滤它? (即传输太多的数据) 服务器将尽可能小(成本),所以它应该只存放数据,而不是做任何(或几乎任何)的工作本身,所以它基本上只是存储文件。 数据库是最好的方式去做这个? 我应该使用两个数据库(全球,个人)? SQL是最好的吗? 或者我可以使用REST,只是抓住我需要的数据(不是整个文件)? 我很抱歉,如果这似乎很多。 现在我已经search了几天,我不知道该怎么办。 如果这个不清楚,请说清楚,我会尽力清理。 如果太宽泛,我会把它缩小一些。 编辑:感谢迄今的答案,但他们不是我所期待的。 所以,我会进入更多的细节。 我正在考虑使用Amazon的服务器,主要是因为它是按需付费和可扩展的。 此外,我发现这篇文章是专门针对MonoTouch的,但是我仍然不确定最简单的东西。 我不会有大量的数据,所以如果我能抓住一个小文件,或者查询一个数据库,那就太棒了。 如果可能的话,我全部都是使用第三方库,但主要是我不确定我应该怎么做我想做的事情。 对不起,这么厚。 很明显,我可以通过示例代码更好地理解它,但这不是对答案的要求。 (而且我想明确地说明我不是要求分手。)

加载源代码控制的MonoDevelop项目会留下一些文件夹

我最近开始在MonoDevelop中使用版本控制,并且发现如果我包含一个包含例如Scenes的文件夹,当我将更改推送给master时,将包含它们。 我的结构是: 脚本 – > Armour.cs – > Inventory.cs 场景 – > Scene01.unity 但是,当我重新打开Unity项目并查看代码解决scheme时,只有脚本目录及其中的文件出现,并且Scenes文件夹不存在。 奇怪的是,如果我做出改变并且提交更改,Scene01.unity仍然会被拾起。 这就是我想让我的项目看起来像 有谁知道为什么会发生这种情况,如果有什么办法可以解决这个问题? 注意:作为一个基本的解决scheme,我可以手动将文件包含在消失时,但是当我拥有大量的资源时,这可能会变成一件痛苦的事情。 另外,如果我使用MonoDevelop加载项目,它加载正常,但从Unity本身打开似乎覆盖解决scheme文件。

如何在C#(特别是单声道)中交换两个对象而不触发GC?

我有两个数组列表。 我想交换每一帧。 我的问题是,variables“temp”是否需要成为一个成员variables,以避免触发GC,假设这个方法是每帧调用几十个对象? 我不创建一个新的对象,只是一个新的对象的引用。 public void LateUpdate(){ ArrayList<int> temp = previousFrameCollisions; previousFrameCollisions = currentFrameCollisions; currentFrameCollisions = temp; currentFrameCollisions.clear(); } 我被告知没有理由为了避免GC而将一个原语变成一个成员variables,所以我最好的猜测是,这也适用于对象引用。

OpenTK与Mono崩溃

我已经实现了OpenTK作为一个辅助渲染器,让我只支持Mac / Linux,意识到由于某种原因,即使没有任何修改(新的MonoGame项目),应用程序会使单声道崩溃,但它在.NET上运行得非常好。 我一直在寻找一些模板和演示,从Mono / Mac / Linux的OpenTK开始,但是我能find的就是适用于iOS和Android的Xamarin Studio指南。

游戏开发AI,NPC和使用脚本语言的实体定义

我正在开发一个多人(实际上是MMORPG)架构的学习目的。 我确实有一些游戏开发的背景,但是我的所有引擎都非常僵硬,并且完全为游戏本身开发。 这就是说,我想实验,所以我devise了一个通用的实体/组件模型架构,我想扩展游戏逻辑,NPC,AI,实体和游戏对象的定义(怪物,人物,武器,物品等… )使用脚本语言进行代码重用和热负载/重新加载的目的。 我的问题如下:考虑到我想要一个脚本语言尽可能最好的性能,它需要实际兼容的.NET /单声道,我有什么select? 你会建议什么? 我知道Lua和Javascript是常见的,但是表演怎么样? 我的其他select是什么? 你会使用什么管理的翻译库? 你将如何继续在引擎中实现这样的脚本语言支持? 我计划实际更新每秒约10次的服务器端模拟。 提前致谢! ;)

Unity3D:C#脚本中的默认参数

根据这个线程 , Unity3D环境中的C#脚本似乎不支持默认参数。 在C#scirpt中声明一个可选参数使得Mono Ide对此抱怨: void Foo(int first, int second = 10) // this line is marked as wrong inside Mono IDE 无论如何,如果我忽略了Mono的错误消息,并在Unity中运行脚本,它的工作原理没有通知任何错误的Unity控制台内。 有谁能澄清这个问题吗? 尤其: C#脚本中是否允许默认参数? 如果是的话,他们是否支持所有平台? 为什么莫诺抱怨他们,如果实际工作?

仅逻辑GUI库

我不确定这个地方是否正确。 如果这是错误的地方,我很抱歉,请告诉我,如果是的话! 我正在做一个有趣的小游戏,它将使用OpenGL和Vulkan作为底层渲染器实现的引擎。 引擎本身是Mono / .Net的目标。 目前我还没有在那里,但我会来推动实施某种graphics用户界面(我正在思考未来,因为良好的devise)。 我已经在互联网上search了独立的GUI系统,但是我还没有幸运。 结果我思考如何自己实现GUI,并得出结论: 需要一个独立的实现,只需要注意GUI对象的布局,定位和input响应。 另一个实现只需要渲染的计算结果(渲染器) 在我开始发明新车之前,我只想知道: 这样做是否正确? 按照我所描述的方法是否有不同的常用方法?