unity3d - 将随机游戏对象放置在画布上具有特定距离的随机位置
问题描述
我是统一的新手,正在尝试创建一个自上而下的游戏。
我的主相机投影设置为正交。
我添加了一个具有“屏幕空间 - 相机”渲染模式和“随屏幕大小缩放”的 UI 缩放模式的画布,以容纳我的操纵杆和其他 UI 元素以支持不同的分辨率。此外,我添加了另一个具有相同设置的画布来固定墙壁和门(因为它们应该在屏幕的边界或边缘以及不同的分辨率!)。我需要将一些对象放置到屏幕上,我可以通过特定距离随机或通过在屏幕上(画布内)创建空游戏对象并将它们绑定到脚本然后将我的预制件放置到它们的(空GameObject
)位置来实现。
问题是我无法理解 Canvas 和 Screen 中的对象位置,我将我的预制件实例化到 Canvas 上的空游戏对象位置,但它被放置在其他地方。
这是我的场景的 3d 视图:
解决方案
您可以使用Camera.main.screenToWorldPoint
随机浮点数或整数作为 x 和 z 坐标。如果您将随机数设置在世界空间的右下角和世界空间的左上角之间,您将获得墙内的随机位置。
推荐阅读
- sql-server - 将长 java 日期时间转换为 SQL Server 日期时间
- javascript - NextJS 中的 CMS 驱动组件
- kubernetes - 是否可以使用 DNSchallenge 运行多个 Traefik v2 实例
- vue.js - 让子组件上的按钮在父组件上运行功能
- node.js - 在Nodejs中,如何从多个队列上的redis blpop
- azure - System.Net.Http.HttpRequestException 从 Azure Datalake V2 下载多个文件
- react-native - 如何在反应原生动画中实现贝塞尔函数?
- c++ - Int 数组到 C++ 容器
- flutter - 错误“在 null 上调用了 getter 'signUpBloc'。接收方:null 在颤振上使用 searchdelegate 时尝试调用:signUpBloc'
- python-3.x - 堆栈驱动程序日志记录代理未显示从 Google 云平台的堆栈驱动程序日志查看器中的自定义日志文件读取的日志