微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#-Unity Spawning预制

我正在尝试使用脚本生成一个预制件.这是代码,该代码写在游戏面板内部.

Network.Instantiate (ninjaPreFab, new Vector3 (-53, -34, 0), Quaternion.identity, 0);

但是,它不是在画布中生成的.相反,它总是在画布外部生成,这意味着它不是画布的子级,因此当我使用“渲染-覆盖相机”时,它不会出现在游戏中.我尝试将画布的“排序顺序”设置为-1,但仍然无法正常工作.我知道它是由于编辑器清楚地表明存在此新对象而产生的.

解决方法:

如果使用新的Unity UI,则GUI元素必须是画布游戏对象的子元素,并且它们的坐标必须设置在画布的边界内,并且如果要移动,则它们不能太靠近相机的接近剪切平面(在视锥范围内).在屏幕上可见.如果使用UI画布,请查看很棒的Unity UI教程here.

按照您的代码片段,由于坐标值上的负号,您的UI元素似乎不可见.尝试将它们更改为正值,然后看看会发生什么.同样,将UI元素作为画布的父元素,如下所示:

var newUIElement = Network.Instantiate (ninjaPreFab, new Vector3 (53, 34, 0), Quaternion.identity, 0);
newUIElement.transform.parent = canvas;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐