4 如何不冻结Unity中的主线程? 我有一个计算量很大的关卡生成算法。因此,调用它总是导致游戏屏幕冻结。在游戏仍继续渲染加载屏幕以指示游戏未冻结时,如何在第二个线程上放置该功能? 33 unity multithreading
6 闲置游戏如何处理如此大量的数字? 只是想知道Tap titans和Cookie Clicker之类的游戏如何处理这么大的数字。 我正在尝试实现一个空闲游戏,但是C#支持的最大数字格式是十进制。 我希望最多支持10 ^ 500;需要浮点数 我该如何处理? PS它需要跨平台,即PC,Mac,iOS,Android,并与Unity兼容 31 unity mathematics
6 Unity的最严重限制是什么?[关闭] 在阅读了有关Unity,UDK和ID的激烈问题之后,我很好奇:什么是Unity屡受打击,最严重的局限性? 为了使这个问题保持非主观性,我再一次谈论的是Unity的头号重复犯案者。作为Unity用户,您确实希望有人在开始使用它之前就告诉过您。 我从某人那里听说Unity不能很好地处理版本控制,因为它会生成很多二进制文件(不可更改)。对我来说,当我独自工作时,这并没有真正削弱。 有什么想法吗? 30 unity
7 Unity中的团队合作 我有一个没有任何版本控制的Unity项目,我需要与其他开发人员共享它,以便我们俩都可以从事该项目。 应该使用哪些策略与Unity Assets配合使用? 30 unity version-control
6 是否可以通过从APK中删除默认的Unity启动屏幕来合法删除它? 使用Unity时,我将Android游戏导出为APK。运行APK时,首先显示的是Unity启动屏幕。我得出结论,可以通过像打开zip文件一样打开APK,查找初始屏幕图像(App.apk/assests/bin/Data/splash.png)并将其替换为所需的任何图像来替换该图像。 发行带有修改过的初始屏幕的Unity驱动的Android游戏应用程序合法吗?我记得有些PS3、360和Wii上的游戏是使用Unity创建的,但是在各自的控制台上运行时不会显示Unity启动屏幕。 29 unity legal copyright publishing google-play
4 您如何保存游戏状态? 游戏程序员用于保存和恢复游戏状态的程序是什么?像文件/映射。我想将其保存为塔防游戏,并且正在使用unity3D游戏引擎。 27 unity tower-defense savegame
8 用于创建球体的算法? 有没有人有算法来程序地创建一个球体,该球体具有la一定数量的纬度线,lo一定数量的经度线和一个半径为r?我需要它与Unity一起使用,因此需要定义顶点位置,然后通过索引定义三角形(更多信息)。 编辑 我设法使代码统一工作。但是我想我可能做错了什么。当我打开时detailLevel,它所做的就是添加更多的顶点和多边形,而无需四处移动。我忘记了什么吗? 编辑2 我尝试沿其法线缩放网格。这就是我得到的。我想我缺少了一些东西。我应该只缩放某些法线吗? 27 unity procedural-generation 3d-meshes
2 如何在Unity中正确画一条线 我正在开发一款游戏,该游戏要求我从更正式的角度出发画一条线 给定坐标为x,y的点A,我画了n条线,第i条线的坐标为xi,yi。鉴于Unity3D中的LineRenderer功能,我无法从特定点绘制多条线,因为它仅渲染多段线。 我目前正在使用Debug.DrawLine()方法,该方法成功呈现了线条。我已经尝试使用GL.Begin()(如Unity示例所示),但是看不到绘制的线条。 我的问题是:还有其他方法可以做到这一点吗?如果没有,您能告诉我如何在播放模式下显示使用Debug.DrawLine()绘制的线吗?我已经看到可以使用Gizmos.DrawLine(),但我不太了解它的用法。 27 c# unity
7 Microsoft是否建议使用适用于游戏开发的C#属性? 我知道有时您需要一些属性,例如: public int[] Transitions { get; set; } 要么: [SerializeField] private int[] m_Transitions; public int[] Transitions { get { return m_Transitions; } set { m_Transitions = value; } } 但是我的印象是,在游戏开发中,除非您有其他理由,否则一切都应尽可能快。从我读过的书中给我的印象是Unity 3D不确定通过属性内联访问,因此使用属性会导致额外的函数调用。 我是否经常不理会Visual Studio不使用公共字段的建议?(请注意,我们会int Foo { get; private set; }在显示预期用法的地方使用优势。) 我知道过早的优化是不好的,但是正如我所说,在游戏开发中,只要有类似的努力就可以使它更快,但事情不会变慢。 26 unity performance optimization
3 团队如何防止覆盖源文件中的工作?[关闭] 关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成) 26 project-management version-control teamwork java 2d collision-detection vector collision-resolution unity directx directx11 directx10 xna ios monogame windows-phone-8 xamarin design-patterns oop xna collision-detection collision-resolution bounding-boxes rotation collision-detection mathematics javascript algorithm separating-axis-theorem xna 2d monogame image xna directx graphics performance opengl 2d 3d c++ directx11 unity c# scale c# xna collision-detection collision-resolution leaderboards scoring glsl srgb tilemap three.js tiled unity physics xml dialog-tree xna c# .net opengl lwjgl vbo physics graphics procedural-generation simulations water opengl java textures lwjgl frame-buffer unity unity 2d collision-detection collision-resolution trigonometry java android libgdx xna c# frame-rate c++ unreal-4 procedural-generation java graphics lwjgl slick c++ software-engineering
1 为什么我总是要考虑创建和使用对象池,而不是即时实例化新对象? 我已经多次(从最佳实践的角度)了解过这种模式: 内存分配:始终考虑创建和使用对象池,而不是即时实例化新对象。这将有助于减少内存碎片,并减少垃圾收集器的工作。 但是,我不知道这实际上意味着什么。我该如何实施? 例如,我可以实例化一个GameObject使用InstantiateUnity 的方法吗? Instantiate(prefab, new Vector3(2.0F, 0, 0), Quaternion.identity); 不鼓励这种用法吗?还有什么意思? 25 unity c# design-patterns memory-efficiency
1 如何对Unity3D游戏进行功能测试? 语境 我将继续在Unity3d中为游戏使用一些旧代码,并且我想编写一些用于回归的功能测试,以确保在实现新事物或重构时不会破坏事物。 我已经知道Unity3d的“单元测试工具”套件可以作为资产使用。我已经将其用作单元测试套件,因此我测试了我的模型(类)。 我正在考虑哪种测试的示例 对于“功能测试”,我的意思是这样的: 运行程序 在菜单场景中,断言有一个显示“开始”的按钮 点击它 然后断言新场景已加载 断定像素XXX为红色 点击坐标XXX 现在断言像素变为绿色 等等 问题 问题1:如何编写和运行游戏功能测试?这通常也在UnityTestTools(UTT)中完成吗? 问题2:如果UTT可以用于单元测试,那么是否有单独的功能测试套件?哪一个? 笔记: 我的目标是Android,并且正在运行 Unity5.3.1f1 25 unity automated-testing
5 为什么像Unity3D这样的引擎相对于像OpenGL这样的本机库更适合初学者?[关闭] 已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我只是3D游戏的初学者,我的首选平台是Android。我在其他论坛上发布了一个有关“使用什么:OpenGL或Unity3d?”的问题。他们都强调Unity3D并使用其内置的功能和工具,如果我要使用OpenGL,则必须自己编写代码。但是后来有人说,大多数复杂的游戏都需要自定义引擎。为什么要在OpenGL上使用像Unity3D这样的引擎? 25 opengl android unity
3 如何根据另一个对象的偏移旋转对象? 我有一个围绕Y轴旋转的转塔的3D模型。该炮塔的加农炮明显偏离物体中心。我希望大炮而不是炮塔瞄准特定目标。但是,我只能旋转炮塔,因此我不知道为了达到目标而需要应用什么方程式。 下图说明了我的问题: 如果我的炮塔为“ LookAt()”目标,则来自加农炮的激光将完全错过所述目标。 如果这是完全自上而下的情况,并且加农炮与炮塔完全平行,那么我的逻辑告诉我,假目标应位于等于实际目标的位置,再加上与目标之间的偏移量相等的位置。炮塔和加农炮 但是,在我的实际情况下,我的摄像机倾斜60º,并且大炮有轻微的旋转。 下图说明了这种情况: 我不确定为什么,但是如果应用相同的偏移量,则它似乎仅在瞄准与转塔一定距离的同时起作用。 我的逻辑有缺陷吗?我在这里缺少基本的东西吗? 最终编辑:@JohnHamilton最新更新提供的解决方案以完美的精度解决了此问题。现在,我已经删除了用于说明错误实现的代码和图像。 25 unity rotation vector linear-algebra
9 学习如何在Unity3d中编写游戏的最佳场所[关闭] 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 什么是unity3d教程和其他学习资源的最佳位置? 25 unity