- 用户指南
- 资源商店 (Asset Store)
- 资源服务器 (Asset Server)(仅限团队许可证)
- 缓存服务器(仅限团队许可证)
- 幕后场景
- 创建游戏
- 运行时实例化预设 (Prefabs)
- 变换 (Transforms)
- 物理
- 添加随机的游戏元素
- 粒子系统(Particle Systems)
- Mecanim 动画系统
- 旧动画系统
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Sound (音频侦听器)
- 游戏界面元素
- 多玩家联网游戏
- iOS 开发入门
- Android 开发入门
- Blackberry 10 开发入门
- Metro:入门指南
- 本地客户端开发入门
- FAQ
- Advanced
- Vector Cookbook
- 资源包(仅限专业版)
- Graphics Features
- 资源数据库 (AssetDatabase)
- 构建播放器管道
- 分析器(仅限专业版)
- 光照贴图快速入门
- 遮挡剔除(仅限专业版)
- 相机使用技巧
- 运行时加载资源
- 通过脚本修改源资源
- 用程序生成网格几何体
- 富文本
- 在 Unity 工程 (Project) 中使用 Mono DLL
- 事件函数的执行顺序
- 移动优化实用指南
- Unity XCode 工程结构
- 优化图形性能
- 减少文件大小
- 理解自动内存管理
- 平台依赖编译
- 泛型函数
- 调试
- 插件(专业版/移动版特有功能)
- 文本场景文件格式(仅限专业版)
- 流媒体资源
- 启动时运行编辑器脚本代码
- 网络模拟
- VisualStudio C 集成
- 分析
- 检查更新
- 安装多版本 Unity
- 故障排除
- Unity 中的阴影
- Unity 中的 IME
- 对集成显卡进行优化
- 网络播放器 (Web Player) 部署
- 使用网络播放器中的信任链系统
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
相机射线
了解视锥体部分解释了相机视图中的任一点对应世界空间的一条线。有时有这条线的数学表示很有用,Unity 会以射线 (Ray) 对象的形式提供 。射线 (Ray) 始终对应视图中的一个点,所以相机 (Camera) 类提供 了 ScreenPointToRay 和 ViewportPointToRay 函数。两者的区别在于 ScreenPointToRay 将该点作为一个像素坐标点,而 ViewportPointToRay 采用 0..1 的标准坐标(0 表示视图底部或左边,1 表示视图顶部或右边)。每种函数返回射线 (Ray),该射线包含一个起点和表示从起点开始线条方向的矢量。射线 (Ray) 源自近端裁剪平面,而非相机 (Camera) 的 transform.position 点。
光线投射
相机射线 (Ray) 最常用于执行 光线投射 (raycast) 到场景中。光线投射 (raycast) 发出一个虚拟“激光束 (laser beam)”,从射线起点开始沿着射线方向,直至触及场景中的碰撞体。之后返回有关对象和 RaycastHit 对象上被触及的点的信息。这是根据屏幕图像找到对象的有用方法。例如,鼠标位置的对象可由下列代码确定:-
var hit: RaycastHit; var ray: Ray = camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, hit)) { var objectHit: Transform = hit.transform; // Do something with the object that was hit by the raycast. }
沿着一条射线移动相机
有时有一条射线对应屏幕位置很有用,可沿着这条射线移动相机。例如,您可能想让用户用鼠标选择一个对象,然后放大并将其“固定”到鼠标下的相同屏幕位置(当相机对准战术图等时比较有用)。完成该任务的代码非常简单:-
var zooming: boolean; var zoomSpeed: float; if (zooming) { var ray: Ray = camera.ScreenPointToRay(Input.mousePosition); zoomDistance = zoomSpeed * Input.GetAxis("Vertical") * Time.deltaTime; camera.transform.Translate(ray.direction * zoomDistance, Space.World); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论