繁体   English   中英

Unity 2D C#在画布上实例化精灵。 找不到什么问题

[英]Unity 2D C# Instantiate sprite on canvas. Can't find what's wrong

我读了很多关于此的问题,但是我仍然找不到我的问题是什么...我试图在画布上实例化一个预制件。 它由一个按钮和一个精灵组成。 该按钮看起来不错,但精灵在游戏中不可见(但在场景中可见)。

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

 [SerializeField] GameObject finishedLevel;

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

 }

在此处输入图片说明

SpriteRenderer不能与Canvas一起使用。 您正在混淆和误用两者。

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

画布仅用于UI显示。 它用于显示诸如UI文本,按钮,滑块,滚动条和图像之类的内容。 不应将Rigidbody2D和Colliders附加到其或其子对象。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM