问题标签 [unity3d-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
357 浏览

unity3d-5 - 运行 Hololens Unity 项目时出错

当我尝试通过 hololens 模拟器运行 hololens Unity3D 项目时出现以下错误:

我正在使用 Unity 5.6.0f3 并尝试通过 VS 2015 和 VS 2017 运行构建导出,无论是否具有管理员访问权限。

我的同事也在做这个项目,但位于印度,没有这个问题,我们花了几个小时试图解决它,但没有成功。

0 投票
1 回答
1079 浏览

c# - 父旋转时子位置不变

我觉得这很简单,但我一直在网上寻找解决方案,但找不到合适的结果——如果已经写好了,我深表歉意。

我有一个球体,它使用一个简单的脚本在它的 Y 轴上缓慢旋转:
transform.Rotate(0, Time.deltaTime, 0);

我有一个连接到这个球体的子对象,它与父对象一起旋转。到目前为止,一切都很好。

我已将枢轴放置在子对象的中心,并尝试在使用父对象旋转子对象时获取子对象的位置:

然而,更新提供了孩子的位置,就好像它没有与父母联系一样。

当连接到球体父母更新时,你们能否指出我获取孩子位置的方向?

感谢您的时间和耐心。

0 投票
1 回答
1103 浏览

c# - Unity runner 游戏中的对象池化实现(重用)

我有我的第一个亚军游戏。一切正常。所以,这个问题是关于优化的。

在我的游戏中,有 15 个平台(玩家运行的道路预制件)。随机出 15 个任何 1 被实例化,并且这种情况一直在发生。当玩家通过几个平台时,留下的平台被摧毁。我制作了一个列表来跟踪平台并删除它们最后一个平台预制件(列表 [0])。新的会提前实例化。

随着游戏的临近,它变得越来越快,这意味着现在实例化/销毁的操作发生得越来越频繁。

我读到了对象池。我理解这个概念,并且我非常强烈地认为我应该在我的游戏中使用它。我创建了一个对象池。工作正常。现在我的问题 -

问题 - 我应该如何重用我创建的池中的对象?在我的游戏中,我想出的是 - 用户留下的平台应该从后向前改变位置(用户前进的方向)。我怎样才能做到这一点?

我遵循了这些教程 - https://www.youtube.com/playlist?list=PLLH3mUGkfFCXps_IYvtPcE9vcvqmGMpRK

0 投票
1 回答
1039 浏览

c# - 非实例化加载的预制件与实例化的预制件相比如何?

例子

在 Unity5 中,假设一个名为“SomeObject”的游戏对象被存储为一个预制件Assets/Resources/SomeObject.prefab,我知道我可以创建一个预制件的实例,如下所示:

一旦执行,instanceGameObject 将是原始“SomeObject”预制件的副本,并将被放置在名为“SomeObject(Clone)”的当前活动场景中。


据我了解,GameObject prefab代表实际的预制资产,对其所做的任何更改(设置名称、添加组件等)都会写入原始预制资产,即使在退出编辑器播放模式后这些更改仍然存在。

问题

  1. 由于所有游戏对象通常都存储在一个场景中,并且上面示例中的scene属性GameObject prefab似乎是 Unloaded/Invalid/Unnamed,我究竟应该将这个特殊的 GameObject 放在哪里?我似乎可以用它做所有我可以用普通游戏对象做的事情,除了在层次/场景视图中可见。

    它是有效地处于某种不确定状态,还是特殊的 PseudoScene?它似乎通过LoadSceneMode.Single场景变化持续存在,但不像DontDestroyOnLoadObjects 在传递到时移动到的特殊场景GameObject.DontDestroyOnLoad(...)

  2. 除了生命周期变化、无效场景和彼此不同的对象(具有不同的对象等)之外,上述示例prefab之间是否还有其他值得注意的差异?instanceGetInstanceID()

  3. 由于调用GameObject.Instantiate(...)prefab产生一个处于有效场景的游戏对象,有没有办法手动创建处于类似“无场景”状态的游戏对象?我知道 Unity 打算让所有游戏对象都出现在场景中,所以这纯粹是一个学术问题。

我曾尝试查看所涉及函数的文档没有人深入了解调用预制资源时具体发生的情况的技术细节。 Resources.Load

0 投票
1 回答
1936 浏览

c# - 用 C# EntryPointNotFoundException 编写的本机插件

我正在尝试为 Unity 开发本机插件(使用 Unity 2017.1.0f3 和 VS 2015)。我的原生插件的目标平台是 UWP,插件是用 C# 编写的。

下面是我在 Unity 中的插件和脚本的代码。

面向 Windows 10 14393 的类库中的插件代码

统一脚本代码

问题是在运行时我收到一条EntryPointNotFoundException消息: Unable to find an entry point named 'SaveSetting' in DLL UnityPluginTestUWP.dll'

我在网上读到这可能是由于编译器对函数名称的修改而发生的。但这只是在 C++ 代码中。我的插件是用 C# 编写的。

欢迎任何帮助克服这个问题。

0 投票
1 回答
821 浏览

c# - 如何检测对象的点击

所以,我想做一个游戏,玩家可以点击不同的物体并被拉向它们。为了实现这一点,我使用了以下代码:

这只适用于这个预制件的一个对象,但是一旦我添加更多,玩家就会被拉到这些对象之间的点。我不太明白为什么,因为 transform.position 对于每个应用了这个脚本的对象来说应该是唯一的吗?

如果你们中的一个人能对此有所了解,我将不胜感激,谢谢:)

0 投票
1 回答
193 浏览

c# - Unity3D Debugger 不单步执行具有 DebuggerStepThrough 属性的方法

Unity3D 版本:5.6.1f1 个人版。

摘要/ TLDR

如何让 Unity3D 调试器在调用函数/方法中显示异常?


细节

我正在尝试使用静态类/方法来简化空值检查。在这个静态类Ensure中,我有一个NotNull带有System.Diagnostics.DebuggerStepThrough属性的静态方法。此方法为我执行典型的空检查和异常抛出。据我了解,这个属性应该使它看起来像调用方法正在抛出异常。它不是。

统一调试器仍然显示在静态类的方法中抛出的异常。有谁知道我缺少什么让调试器像我之前描述的那样工作?我已经在启用禁用 JMC 的情况下尝试过这个。

静态类和方法


调用方法

0 投票
2 回答
780 浏览

unity3d - 按下开始按钮后游戏不运行

没有编译错误或警告。我的游戏刚开始就暂停了。我可以环顾四周,但一切都被冻结了。我什至尝试Time.timeScale = 1;从各种启动函数调用。“暂停时出错”已关闭。

重新启动 Unity 无效。

为什么会这样?

提示:我发现调用Time.timeScale = 1;不起作用,因为脚本附加到的游戏对象未设置为活动状态。

0 投票
2 回答
560 浏览

c# - Unity3d - 在播放和暂停之间转换时的音频粗糙的声音

我有一个 Unity 脚本,可以在玩家移动时播放音频(脚步声)。该脚本正在运行,但还有一个问题,在播放和暂停之间转换时,音频似乎太粗糙(并且可能会伤害我的扬声器呵呵)。

这是我的脚本

0 投票
1 回答
1261 浏览

unity3d - 如何分离服务器端和客户端代码

是否可以通过使用 UNet 在 Unity3D 中为客户端和服务器创建单独的项目?

据我所知,这似乎是不可能的,Unity3D 官方文档对该主题并不太清楚,并且找到了零个示例或文章。

如果使用 Unity3D 提供的NetworkManager,服务器端逻辑和游戏客户端逻辑有很多耦合,是否可以将其分成两个不同的项目?服务器端应该只是一个无头服务器,客户端应该是没有所有服务器逻辑的普通游戏客户端。如果可能,它应该是什么样子?