问题标签 [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.
unity3d - 我应该在 Unity 的 UI 预制件中包含 Canvas 父游戏对象吗
我的 Unity 场景中有四种不同的 Canvas 元素。这按关注点组织它们,但也提高了性能,因为如果我“弄脏”其中一个元素,我不必重建所有元素。我想创建每个预制件,这样我就可以在整个游戏中重复使用它们,而且我的场景文件中的元素也更少(我还没有弄清楚为什么 Unity 不重新组织 YAML 以匹配场景顺序和层次结构. 目前我看不出任何原因,这让源代码管理变得非常痛苦)。
所以,我的问题是:我应该在预制件中包含 Canvas 作为父游戏对象,还是应该让第一个孩子成为预制件(见图)?我看到两个观点:
- 一方面,扫描场景根中的元素列表并查看蓝色对象并知道它们在场景中自动复制是很好的。另外,存储在预制件中的对象越多,对我的 YAML 文件的污染就越少。
- 另一方面,在父级上使用 Canvas Scalar 脚本时,每次更改分辨率/平台时,预制件内的尺寸都会更新,并且我读过总是在预制件模式之外更新它们并不好。另一个问题是 UI 元素通常有很多外部引用来更新文本等。
unity3d - Unity 触发对其他脚本的引用
我有一个带有触发器的预制件,并希望在 Gamescene 的游戏对象中使用 OnTriggerStay 方法。有人知道我如何从场景中引用预制件的触发器并在场景中调用 OnTrigger 方法吗?
先感谢您!
c# - 如果在 C# 中存在 2D 游戏,则防止实例化预制件被重新实例化
您好,感谢您的阅读。
我对编码和东西不是很有经验,我有一个可以在碰撞时激活的盾牌
如果盾牌已经实例化,玩家再次拿起盾牌加电,盾牌将加倍,等等。
我想为下面的实例化行提供一个解决方案,以防止每次拾取时多次实例化盾牌。
谢谢你。
unity3d - 刚体 2D 不会停止
在我的场景中,我在运行时实例化了一个预制件,它有一个动态 Rigidbody2D 和一个 BoxCollider2D;它还有一个带有 OnTriggerEnter2D 方法的脚本,它运行以下函数:
基本上我希望对象在与触发器发生碰撞时停止。问题是它不会停止,即使控制台消息说(0.0, 0.0)
刚体的检查器看起来像这样:
正如你所看到的,它的速度实际上并不为零。我尝试添加
但它所做的只是冻结 prefab 上的位置,而不是实际的 gameObject 实例。而且我不明白这怎么可能,还考虑到脚本上的 Rigidbody 字段被 占据Ball(clone)
,这是场景中游戏对象的名称。我也尝试GetComponent
在 Awake/Start 中使用,但结果是一样的。
我已经在此处和 UnityAnswers 上查找了许多其他帖子,但没有一个可以帮助我。究竟发生了什么?
c# - 如何使用预制更改文本?
如何在 ac# 脚本中制作和更改文本?
我目前有这段代码,但它不起作用,因为我告诉脚本我要更改的文本是什么:
unity3d - 下拉选项复制到其他场景的下拉列表 - Unity3d
我正在通过脚本动态生成下拉列表选项,并根据选项值和其他场景应该加载的某些条件。(通过单击下拉值新场景应该加载)。我已将所有必需的脚本附加到所有场景中的下拉游戏对象,并且动态下拉选项适用于启动场景,但是当加载新场景时,新的下拉列表为空,前一个感觉下拉列表的值未加载. 下面是脚本。谁能给我一个提示或示例脚本以将下拉值从一个场景转移到另一个场景。谢谢
''''
公共类SceneLoad:MonoBehaviour {
}
unity3d - 在 GameManager 中实例化玩家预制件后如何访问方法?
我对统一相当陌生,并且正在尝试基于基于地图盒位置的游戏制作游戏。现在我有一个欢迎场景,他们选择了一个名字和一个角色(男性或女性),效果很好,他们选择了地图上的角色显示。
现在,我有三个脚本:GameManager、Player 和 BonusXP。在 GameManager 中,我正在实例化选择的玩家并将它们放置在地图上。
在播放器脚本中,我有某些变量,例如 xp 和 level 以及 AddXP() 之类的方法。
在我附加到随机对象的bonusXP脚本中,当单击该脚本时,需要向玩家添加一定数量的XP。在这个例子中,我使用了 10。现在我让它工作得很好,直到我添加了选择字符功能。在我将玩家拖入 GameManager 序列化字段之前,一切正常。现在那个人不见了。它停止工作。如何将 XP 添加到用户选择的实例化播放器?
BonusXP 脚本:
播放器脚本的必要部分: