gpt4 book ai didi

c# - Unity 2D C# 在 Canvas 上实例化 Sprite 。找不到问题所在

转载 作者:行者123 更新时间:2023-11-30 20:15:57 24 4
gpt4 key购买 nike

我看了很多关于这个的问题,但我还是找不到我的问题是什么......我正在尝试在 Canvas 上实例化一个预制件。它由一个按钮和一个 Sprite 组成。按钮看起来没问题,但 Sprite 在游戏中不可见(但在场景中可见)。

我做错了什么,但我看不到什么......

 [SerializeField] GameObject finishedLevel;

private void Start()
{
finishedLevel = Instantiate(finishedLevel, transform.position, transform.rotation);
finishedLevel.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, false);

}

enter image description here

最佳答案

SpriteRenderer 不是为了与 Canvas 一起使用而设计的。您混淆并滥用了两者。

SpriteRenderer 用于显示 2D 对象,如 2D 动画角色或 2D 环境。您可以将 Rigidbody2DColliders 附加到 SpriteRenderer

Canvas 仅用于 UI 显示。它用于显示 UI 文本、按钮、 slider 、滚动条和图像等内容。您不应将 Rigidbody2D 和 Colliders 附加到它或其子对象。

通过上面的解释,您应该能够确定使用哪一个。如果您只需要在 Canvas 下显示图像,请使用 Image , 或 RawImage组件,因为它们是 UI 系统的一部分。这应该有效,但不要使 SpriteRenderer 成为 Canvas 的子级。如果您必须使用 SpriteRenderer,请将其设为自己的对象或在另一个对象下,但不应在 Canvas 下。您可能会发现 Unity 的 UI tutorial有用。

关于c# - Unity 2D C# 在 Canvas 上实例化 Sprite 。找不到问题所在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51712193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com