Unity3d 将随机游戏对象放置在画布上具有特定距离的随机位置

Unity3d 将随机游戏对象放置在画布上具有特定距离的随机位置,unity3d,Unity3d,我是unity的新手,正在尝试创建一个自上而下的游戏 我的主相机投影设置为正交 我添加了一个画布,其中渲染模式为“屏幕空间-相机”,UI缩放模式为“随屏幕大小缩放”,以固定操纵杆和其他UI元素以支持不同的分辨率。此外,我还添加了另一个具有相同设置的画布来固定墙和门(因为它们应该位于屏幕的边界或边缘,分辨率不同!)。我需要在屏幕上放置一些对象,我可以通过特定距离随机放置,或者通过在屏幕上创建空的游戏对象(在画布内)并将它们绑定到脚本,然后将我的预设放置到它们的(空的游戏对象)位置 问题是我无法理解

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

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

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

问题是我无法理解画布和屏幕中的对象位置,我实例化了画布上的空游戏对象位置,但它被放置在了其他地方

以下是我的场景的三维视图:


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

我试过了,但没用!!这是我的代码:Camera.main.ScreentToWorldPoint(EmptyGameObjectOnCanvas.transform.position),但我的预制件现在被放置在屏幕外。与其使用单独的画布来调整墙,不如尝试使用ScreentToWorldPoint移动墙,然后使用墙的位置来创建一个随机位置。感谢您的耐心,事实上,我现在通过门的位置生成随机位置,这与你所说的相同,问题是如果我不在画布中保持门和墙,如何在不同的分辨率下调整它们?我希望它们始终位于屏幕的边缘和角落。我不确定这是否会更好,但您可以尝试在右下角的画布中放置一个空的游戏对象,然后调整墙以与世界空间中的墙对齐。也许这会帮助你获得随机对象的位置。