问题标签 [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 投票
1 回答
1959 浏览

unity3d - 我应该在 Unity 的 UI 预制件中包含 Canvas 父游戏对象吗

我的 Unity 场景中有四种不同的 Canvas 元素。这按关注点组织它们,但也提高了性能,因为如果我“弄脏”其中一个元素,我不必重建所有元素。我想创建每个预制件,这样我就可以在整个游戏中重复使用它们,而且我的场景文件中的元素也更少(我还没有弄清楚为什么 Unity 不重新组织 YAML 以匹配场景顺序和层次结构. 目前我看不出任何原因,这让源代码管理变得非常痛苦)。

所以,我的问题是:我应该在预制件中包含 Canvas 作为父游戏对象,还是应该让第一个孩子成为预制件(见图)?我看到两个观点:

  1. 一方面,扫描场景根中的元素列表并查看蓝色对象并知道它们在场景中自动复制是很好的。另外,存储在预制件中的对象越多,对我的 YAML 文件的污染就越少。
  2. 另一方面,在父级上使用 Canvas Scalar 脚本时,每次更改分辨率/平台时,预制件内的尺寸都会更新,并且我读过总是在预制件模式之外更新它们并不好。另一个问题是 UI 元素通常有很多外部引用来更新文本等。

等级制度

0 投票
1 回答
400 浏览

unity3d - Unity 触发对其他脚本的引用

我有一个带有触发器的预制件,并希望在 Gamescene 的游戏对象中使用 OnTriggerStay 方法。有人知道我如何从场景中引用预制件的触发器并在场景中调用 OnTrigger 方法吗?

先感谢您!

0 投票
1 回答
23 浏览

c# - 如果在 C# 中存在 2D 游戏,则防止实例化预制件被重新实例化

您好,感谢您的阅读。

我对编码和东西不是很有经验,我有一个可以在碰撞时激活的盾牌

如果盾牌已经实例化,玩家再次拿起盾牌加电,盾牌将加倍,等等。

我想为下面的实例化行提供一个解决方案,以防止每次拾取时多次实例化盾牌。

谢谢你。

0 投票
2 回答
92 浏览

unity3d - 刚体 2D 不会停止

在我的场景中,我在运行时实例化了一个预制件,它有一个动态 Rigidbody2D 和一个 BoxCollider2D;它还有一个带有 OnTriggerEnter2D 方法的脚本,它运行以下函数:

基本上我希望对象在与触发器发生碰撞时停止。问题是它不会停止,即使控制台消息说(0.0, 0.0)刚体的检查器看起来像这样:

在此处输入图像描述

正如你所看到的,它的速度实际上并不为零。我尝试添加

但它所做的只是冻结 prefab 上的位置而不是实际的 gameObject 实例。而且我不明白这怎么可能,还考虑到脚本上的 Rigidbody 字段被 占据Ball(clone),这是场景中游戏对象的名称。我也尝试GetComponent在 Awake/Start 中使用,但结果是一样的。

我已经在此处和 UnityAnswers 上查找了许多其他帖子,但没有一个可以帮助我。究竟发生了什么?

0 投票
2 回答
267 浏览

c# - 如何使用预制更改文本?

如何在 ac# 脚本中制作和更改文本?

我目前有这段代码,但它不起作用,因为我告诉脚本我要更改的文本是什么:

0 投票
0 回答
76 浏览

c# - Unity 2D:一个预制件中的每个元素是否可以有不同的层?

我正在制作一个纸牌游戏,我通过一个预制件生成卡片,我希望它堆叠在一起。但是有些卡片隐藏在另一张卡片后面,我想知道我是否可以将一张卡片放在另一层,或者有其他方法可以做到这一点吗?非常感谢。我尝试将位置游戏对象放入另一层,但它不起作用。卡片预制件的排序层在默认层中,层中的顺序设置为0

这就是现在的样子:

0 投票
1 回答
234 浏览

unity3d - 我们如何在统一 3D 中一起移动两个?

实际上我想将两个子对象相互连接,这样当一个对象的大小增加时,两个对象都应该一起移动并改变它的位置。我想在预制件中这样做有可能吗?

这是层次结构截图:

在此处输入图像描述

基本上我想增加玻璃的大小(side1_screen1 的子对象),但随着玻璃,我的支持(子对象)的大小也在增加。

但是当我单独增加玻璃尺寸时,我的支撑位置不会改变,所以当玻璃尺寸增加时可以使用的任何方法,我的支撑尺寸都不应该增加。

任何方法将不胜感激。提前致谢。

0 投票
1 回答
40 浏览

unity3d - 下拉选项复制到其他场景的下拉列表 - Unity3d

我正在通过脚本动态生成下拉列表选项,并根据选项值和其他场景应该加载的某些条件。(通过单击下拉值新场景应该加载)。我已将所有必需的脚本附加到所有场景中的下拉游戏对象,并且动态下拉选项适用于启动场景,但是当加载新场景时,新的下拉列表为空,前一个感觉下拉列表的值未加载. 下面是脚本。谁能给我一个提示或示例脚本以将下拉值从一个场景转移到另一个场景。谢谢

''''

公共类SceneLoad:MonoBehaviour {

}

0 投票
1 回答
356 浏览

unity3d - 在 Unity 中的 2d 多边形对撞机上随机生成预制件

我在这个游戏对象上附加了 pollygon collider 2d。

在此处输入图像描述

这个游戏对象是另一个游戏对象的父对象(只是小圆圈)。

我希望那个小圆圈在 polygon collider 的某个地方随机生成。

我试过这样的事情:

这个脚本附在那个小圆圈上。在 80% 的情况下是好的结果,但有时它会变得很奇怪,如下所示:

在此处输入图像描述

有人可以帮我吗,因为我几乎尝试了所有东西。

0 投票
1 回答
257 浏览

unity3d - 在 GameManager 中实例化玩家预制件后如何访问方法?

我对统一相当陌生,并且正在尝试基于基于地图盒位置的游戏制作游戏。现在我有一个欢迎场景,他们选择了一个名字和一个角色(男性或女性),效果很好,他们选择了地图上的角色显示。

现在,我有三个脚本:GameManager、Player 和 BonusXP。在 GameManager 中,我正在实例化选择的玩家并将它们放置在地图上。

在播放器脚本中,我有某些变量,例如 xp 和 level 以及 AddXP() 之类的方法。

在我附加到随机对象的bonusXP脚本中,当单击该脚本时,需要向玩家添加一定数量的XP。在这个例子中,我使用了 10。现在我让它工作得很好,直到我添加了选择字符功能。在我将玩家拖入 GameManager 序列化字段之前,一切正常。现在那个人不见了。它停止工作。如何将 XP 添加到用户选择的实例化播放器?

BonusXP 脚本:

播放器脚本的必要部分: