Fer*_*osa 2 c# instantiation sprite unity-game-engine
我读了很多关于这个的问题,但是我仍然找不到我的问题...我试图在画布上实例化一个预制件.它由一个按钮和一个精灵组成.按钮看起来没问题,但精灵在游戏中不可见(但在场景中可见).
我做错了什么,但我看不出是什么......
[SerializeField] GameObject finishedLevel;
private void Start()
{
finishedLevel = Instantiate(finishedLevel, transform.position, transform.rotation);
finishedLevel.transform.SetParent(GameObject.FindGameObjectWithTag("Canvas").transform, false);
}
Run Code Online (Sandbox Code Playgroud)
SpriteRenderer不能与Canvas一起使用.你是混乱和误用两者.
SpriteRenderer用于显示2D对象,如2D动画角色或2D环境.您可以将Rigidbody2D与Colliders到SpriteRenderer.
Canvas仅用于UI显示.它用于显示UI文本,按钮,滑块,滚动条和图像等内容.您不应将Rigidbody2D和Colliders附加到它或其子对象.
通过上面的解释,您应该能够确定使用哪一个.如果您只需要在Canvas下显示图像,请使用Image或RawImage组件,因为它们是UI系统的一部分.这应该工作,但不作SpriteRenderer画布的孩子.如果你必须使用SpriteRenderer它,使它成为自己的对象或在另一个对象下,但它不应该在Canvas下.您可能会发现Unity的UI 教程很有用.
| 归档时间: |
|
| 查看次数: |
736 次 |
| 最近记录: |