首页 > 解决方案 > 将随机游戏对象放置在画布上具有特定距离的随机位置

问题描述

我是统一的新手,正在尝试创建一个自上而下的游戏。

我的主相机投影设置为正交。

我添加了一个具有“屏幕空间 - 相机”渲染模式和“随屏幕大小缩放”的 UI 缩放模式的画布,以容纳我的操纵杆和其他 UI 元素以支持不同的分辨率。此外,我添加了另一个具有相同设置的画布来固定墙壁和门(因为它们应该在屏幕的边界或边缘以及不同的分辨率!)。我需要将一些对象放置到屏幕上,我可以通过特定距离随机或通过在屏幕上(画布内)创建空游戏对象并将它们绑定到脚本然后将我的预制件放置到它们的(空GameObject)位置来实现。

问题是我无法理解 Canvas 和 Screen 中的对象位置,我将我的预制件实例化到 Canvas 上的空游戏对象位置,但它被放置在其他地方。

这是我的场景的 3d 视图:

我的场景

标签: unity3d

解决方案


您可以使用Camera.main.screenToWorldPoint随机浮点数或整数作为 x 和 z 坐标。如果您将随机数设置在世界空间的右下角和世界空间的左上角之间,您将获得墙内的随机位置。


推荐阅读