问题标签 [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.
unity3d-5 - 运行 Hololens Unity 项目时出错
当我尝试通过 hololens 模拟器运行 hololens Unity3D 项目时出现以下错误:
我正在使用 Unity 5.6.0f3 并尝试通过 VS 2015 和 VS 2017 运行构建导出,无论是否具有管理员访问权限。
我的同事也在做这个项目,但位于印度,没有这个问题,我们花了几个小时试图解决它,但没有成功。
c# - 父旋转时子位置不变
我觉得这很简单,但我一直在网上寻找解决方案,但找不到合适的结果——如果已经写好了,我深表歉意。
我有一个球体,它使用一个简单的脚本在它的 Y 轴上缓慢旋转:
transform.Rotate(0, Time.deltaTime, 0);
我有一个连接到这个球体的子对象,它与父对象一起旋转。到目前为止,一切都很好。
我已将枢轴放置在子对象的中心,并尝试在使用父对象旋转子对象时获取子对象的位置:
然而,更新提供了孩子的位置,就好像它没有与父母联系一样。
当连接到球体父母更新时,你们能否指出我获取孩子位置的方向?
感谢您的时间和耐心。
c# - Unity runner 游戏中的对象池化实现(重用)
我有我的第一个亚军游戏。一切正常。所以,这个问题是关于优化的。
在我的游戏中,有 15 个平台(玩家运行的道路预制件)。随机出 15 个任何 1 被实例化,并且这种情况一直在发生。当玩家通过几个平台时,留下的平台被摧毁。我制作了一个列表来跟踪平台并删除它们最后一个平台预制件(列表 [0])。新的会提前实例化。
随着游戏的临近,它变得越来越快,这意味着现在实例化/销毁的操作发生得越来越频繁。
我读到了对象池。我理解这个概念,并且我非常强烈地认为我应该在我的游戏中使用它。我创建了一个对象池。工作正常。现在我的问题 -
问题 - 我应该如何重用我创建的池中的对象?在我的游戏中,我想出的是 - 用户留下的平台应该从后向前改变位置(用户前进的方向)。我怎样才能做到这一点?
我遵循了这些教程 - https://www.youtube.com/playlist?list=PLLH3mUGkfFCXps_IYvtPcE9vcvqmGMpRK
c# - 非实例化加载的预制件与实例化的预制件相比如何?
例子
在 Unity5 中,假设一个名为“SomeObject”的游戏对象被存储为一个预制件Assets/Resources/SomeObject.prefab
,我知道我可以创建一个预制件的实例,如下所示:
一旦执行,instance
GameObject 将是原始“SomeObject”预制件的副本,并将被放置在名为“SomeObject(Clone)”的当前活动场景中。
据我了解,GameObject prefab
代表实际的预制资产,对其所做的任何更改(设置名称、添加组件等)都会写入原始预制资产,即使在退出编辑器播放模式后这些更改仍然存在。
问题
由于所有游戏对象通常都存储在一个场景中,并且上面示例中的
scene
属性GameObject prefab
似乎是 Unloaded/Invalid/Unnamed,我究竟应该将这个特殊的 GameObject 放在哪里?我似乎可以用它做所有我可以用普通游戏对象做的事情,除了在层次/场景视图中可见。它是有效地处于某种不确定状态,还是特殊的 PseudoScene?它似乎通过
LoadSceneMode.Single
场景变化持续存在,但不像DontDestroyOnLoad
Objects 在传递到时移动到的特殊场景GameObject.DontDestroyOnLoad(...)
。除了生命周期变化、无效场景和彼此不同的对象(具有不同的对象等)之外,上述示例
prefab
之间是否还有其他值得注意的差异?instance
GetInstanceID()
由于调用
GameObject.Instantiate(...)
会prefab
产生一个处于有效场景中的游戏对象,有没有办法手动创建处于类似“无场景”状态的游戏对象?我知道 Unity 打算让所有游戏对象都出现在场景中,所以这纯粹是一个学术问题。
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# 编写的。
欢迎任何帮助克服这个问题。
c# - 如何检测对象的点击
所以,我想做一个游戏,玩家可以点击不同的物体并被拉向它们。为了实现这一点,我使用了以下代码:
这只适用于这个预制件的一个对象,但是一旦我添加更多,玩家就会被拉到这些对象之间的点。我不太明白为什么,因为 transform.position 对于每个应用了这个脚本的对象来说应该是唯一的吗?
如果你们中的一个人能对此有所了解,我将不胜感激,谢谢:)
c# - Unity3D Debugger 不单步执行具有 DebuggerStepThrough 属性的方法
Unity3D 版本:5.6.1f1 个人版。
摘要/ TLDR
如何让 Unity3D 调试器在调用函数/方法中显示异常?
细节
我正在尝试使用静态类/方法来简化空值检查。在这个静态类Ensure
中,我有一个NotNull
带有System.Diagnostics.DebuggerStepThrough
属性的静态方法。此方法为我执行典型的空检查和异常抛出。据我了解,这个属性应该使它看起来像调用方法正在抛出异常。它不是。
统一调试器仍然显示在静态类的方法中抛出的异常。有谁知道我缺少什么让调试器像我之前描述的那样工作?我已经在启用和禁用 JMC 的情况下尝试过这个。
静态类和方法
调用方法
unity3d - 按下开始按钮后游戏不运行
没有编译错误或警告。我的游戏刚开始就暂停了。我可以环顾四周,但一切都被冻结了。我什至尝试Time.timeScale = 1;
从各种启动函数调用。“暂停时出错”已关闭。
重新启动 Unity 无效。
为什么会这样?
提示:我发现调用Time.timeScale = 1;
不起作用,因为脚本附加到的游戏对象未设置为活动状态。
c# - Unity3d - 在播放和暂停之间转换时的音频粗糙的声音
我有一个 Unity 脚本,可以在玩家移动时播放音频(脚步声)。该脚本正在运行,但还有一个问题,在播放和暂停之间转换时,音频似乎太粗糙(并且可能会伤害我的扬声器呵呵)。
这是我的脚本
unity3d - 如何分离服务器端和客户端代码
是否可以通过使用 UNet 在 Unity3D 中为客户端和服务器创建单独的项目?
据我所知,这似乎是不可能的,Unity3D 官方文档对该主题并不太清楚,并且找到了零个示例或文章。
如果使用 Unity3D 提供的NetworkManager,服务器端逻辑和游戏客户端逻辑有很多耦合,是否可以将其分成两个不同的项目?服务器端应该只是一个无头服务器,客户端应该是没有所有服务器逻辑的普通游戏客户端。如果可能,它应该是什么样子?