问题标签 [prefab]

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 投票
2 回答
587 浏览

unity3d - Unity:销毁作为预制件一部分的游戏对象

控制台向我显示此错误:

Cannot destroy GameObject that is part of a prefab instance. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&)

我很困惑。日志不会告诉您涉及哪个预制件或游戏对象。你能帮我吗 ?

非常感谢您的回答!

0 投票
2 回答
459 浏览

unity3d - C# Unity Prefabs 不会出现在 Canvas 上

我的场景是 2D 我的 Canvas 设置为 Screen Space - Overlay。(我不想改变它)

我可以看到我的预制件在层次结构中大放异彩,但它们不可见。我敢打赌它与相机视图有关,它们在相机后面,或者它们没有附加到正确的东西上,就像它必须是一个 UI 项目一样。但我不知道。一直试图弄清楚这一点 8 小时。

请帮忙。我是 Unity 和 C# 的新手,所以这可能是一件简单的事情?

0 投票
2 回答
196 浏览

c# - Prefab 实例化性能提升

所以我有多个类别按钮,每个类别有 20 多个项目。因此,按下按钮时制作预制件并实例化。问题是当我实例化预制件时,我必须使用名称、精灵、btn 点击事件等信息对其进行初始化。这将需要时间来实例化预制件和游戏挂起。这是代码

此代码在按钮单击中调用。或者,为了在 start 方法中实现一些性能,我已经在一个空的游戏对象上实例化了一些 basePrefab,并且在按钮单击时只需更改父级并初始化它们。这种方法会带来一些好处,但游戏仍然会挂起 2 秒这是代码

任何提高性能的解决方案?

所以这里是关于预制内容:基本上预制包含背景图像,此图像中的蒙版图像类别图像,选择图像和文本。在初始化函数中类别图像更改和文本值更改此外背景包含初始化中的按钮设置此按钮的单击事件这是图像

0 投票
1 回答
55 浏览

c# - 如何在 Unity 中通过拖放生成地形而不是对象?

背景

我想知道如何在Unity3D 2020.3版本中编写一个玩家可以通过拖放生成地形的代码。

到目前为止我尝试了什么

我可以在执行前为不变的背景创建地形,并在执行期间着陆。

在对象(预制件)的情况下,我确认玩家可以在选定的位置生成一个新对象。

附加到游戏对象的代码

ClickSphere.cs

与对象生成相比,如何将代码附加到地形以及如何处理地形?

0 投票
1 回答
576 浏览

c# - 统一将预制件设置为另一个游戏对象的子对象

当我尝试将预制件设置为另一个对象的子对象时,会发生以下错误。

禁用设置驻留在预制资产中的转换的父级以防止数据损坏

如何将此“aiArrow”预制件设置为另一个游戏对象的子对象。

0 投票
2 回答
932 浏览

unity3d - 我的 Prefab 上的 Canvas Environment 在 Unity 检查器中显示为灰色,我做了什么?

我制作了一个也有画布的预制件。Unity 添加了一个 Canvas Environment 作为父级。直到今天才出现问题。由于某些未知原因,当我尝试编辑预制件时,Canvas Environment 显示为灰色且未在检查器中勾选,因此我无法在编辑模式下看到任何预制件。我无法在检查器中勾选它以激活它。

有任何想法吗?所有具有 Canvas 环境的预制件都发生过这种情况。我不小心做了什么:(

版本 2019.3.7f1 检查员的图片:https ://ibb.co/FJSz79q Prefab 层次结构的图片: https ://ibb.co/bm6NbhL

0 投票
3 回答
106 浏览

c# - 在没有检查器的情况下以编程方式加载带有预制件的数组

我正在关注俄罗斯方块教程,它要求将一组预制件作为 spawner 对象的一部分。生成器会随机创建形状,例如 I 形、T 形等。这些形状是预制件。

此设置将在 Inspector 中创建一个自定义字段,我可以在其中放入所有可以生成的形状。然而,这让我想到,如果我有 1000 个形状怎么办?肯定有比填充 1000 个预制件更好的方法吗?我可以在没有 Inspector 的情况下初始化数组吗?

感谢您的时间。

0 投票
1 回答
54 浏览

unity3d - 如何实例化预制件并使用 PHOTON 设置其依赖项

我试图用光子位创建一个预制件我有这个问题 在此处输入图像描述

那是因为我试图实例化的预制件需要来自场景的一些依赖关系,比如相机 在此处输入图像描述 在此处输入图像描述

有什么想法我该怎么做?:/

非常感谢!

0 投票
0 回答
80 浏览

unity3d - 预制优化

我们有一个 MonoBehaviour 组件,其中包含一长串预制件(可以是 100 个)。这些预制件旨在根据需要创建/销毁。该组件是在第一次使用时创建的单例。

问题与内存使用有关,使用单行为组件,我理解这意味着在创建组件时所有预制件都被加载到磁盘上。我正在寻找一种方法来限制那些很少使用的预制件的加载。

我想将它们放在不同的可编写脚本的对象中,这样只有使用过的预制件的列表会被加载,不太常见的预制件的列表很可能很少或从不加载。

我正在查看有关该主题的提示。

0 投票
1 回答
46 浏览

c# - 如何根据用户输入在预制件中旋转多个刚体

我目前正在尝试Rigidbody根据单独的输入在预制件中旋转不同的 s 。当每个都有一个带有指定输入的单独脚本附加到它时,我让它工作Rigidbody,但我需要将它们组合成一个“主控制”脚本,这样我最终可以将玩家角色垂直分成两半,这样一个玩家就可以控制左半部分并且 1 名玩家可以在 Mirror Networking API 中控制身体的右半边肢体。

工作代码仅连接到一个肢体,在本例中为左二头肌。肢体之间唯一改变的是键盘输入和乘数变量。

这是附加到全身预制件的“主控制”脚本,我无法开始工作。

使用场景中具有“主控”脚本的玩家预制件运行游戏时遇到的异常是

我该如何让它发挥作用?