且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Unity开发实战》——2.7节制作检视摄像机

更新时间:2022-10-04 08:33:40

本节书摘来自华章社区《Unity开发实战》一书中的第2章,第2.7节制作检视摄像机,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.7 制作检视摄像机
检视摄像机是一种展示在线产品的非常流行的方式。这类虚拟显示的特点是:通常以一个摄像机环绕着产品转动并一直缩放。本节中将学习如何用标准的Unity组件作为切入点实现这样的摄像机。

2.7.1 准备工作
示例代码中名为“0423_02_06”的文件夹中有一个名为inspectScene的包需要导入,此包中有一个3D手机模型和一个摄像机的基础场景。
本节引入了用Unity编辑JavaScript文件的相关内容,如果读者需要C#版本的脚本,可以在文件夹0423_02_06中找到。

2.7.2 操作步骤
请按照下面的步骤创建检视摄像机:
1)把inspectScene包导入到Unity中,打开02_06文件夹中的名为inspectScene的场景。
2)在场景中添加一个directional light(方向光),使其光线投射到摄像机面对的方向。
3)在Hierarchy视图中,把方向光拖进Main Camera游戏对象中,让它作为Main Camera的一个子对象。
4)确保MouseOrbit脚本在Project视图中(应该在Standard Asset | Script | Camera Script文件夹中)。如果没看到,通过菜单的Assets | Import Package | Scripts导入Scripts包。
5)复制MouseOrbit脚本,重命名为InspectCamera。
6)打开InspectCamera脚本。
7)在@script之前的代码行插入下面的代码:


《Unity开发实战》——2.7节制作检视摄像机

8)然后把以@script开头的那行代码改成:


《Unity开发实战》——2.7节制作检视摄像机

12)Inspect Camera组件应该会出现在Main Camera 的Inspector视图中。从Hierarchy 视图中把Mobile 游戏对象拖进Target(目标)槽中,然后把Distance(距离)值改为1。


《Unity开发实战》——2.7节制作检视摄像机

13)播放场景。移动鼠标并按住左键不放,观察对象。放大再缩小,不松开左键并按往Shift键,再纵向移动鼠标。

2.7.3 实现原理
不像Unity的MouseOrbit,InspectCamera脚本把鼠标按钮按下作为移动摄像机的一个条件。也可以当按下鼠标键,且鼠标纵向移动的时候,通过修改camera的视野值实现缩放功能。

2.7.4 更多内容
在文件夹0423_02_07中包含C#版本的脚本。如果不想用Shift键实现,可以参考Unity的文档中关于键盘的代码值:http://docs.unity3d.com/Documentation/ScriptReference/KeyCode.html