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

简介:

本节书摘来自华章社区《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之前的代码行插入下面的代码:


b3236b80ef6623e693eef27ef2ea4c1a8fd59e53

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


15ad3f7b8bc2b484a6b8b517a336e2b371f143e1

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


928978905a5ff7255290430a61fbf2684a2d779f

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

目录
打赏
0
0
0
0
1408
分享
相关文章
unity摄像机的平滑过渡,平滑缓冲
在Unity中,通过插值计算实现摄像机的平滑过渡与缓冲效果,避免突兀跳跃,提升玩家视觉体验。主要方法包括位置和旋转的平滑过渡,常用线性插值(Lerp)和SmoothDamp函数。代码示例展示了如何使用SmoothDamp实现摄像机从一个点到另一个点的平滑移动。将脚本挂载到场景中测试即可看到效果。
小功能⭐️Unity 如何判断物体是否在摄像机视野内或外
小功能⭐️Unity 如何判断物体是否在摄像机视野内或外
[Unity3D]多个摄像机进行场景的切换
摄像机比作人的眼睛最适合不过了。比如:极品飞车里面可变换视觉角度,可以从多个角度观察汽车。 切换摄像机:一个键控制一个摄像机 这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种...
1215 0
[Unity3d]多个摄像机叠加效果
今天学习到一个多个摄像机看到的场景在同一个层显示,比如我们做一个类似反光镜的效果,当然反光镜可以直接用Shader来实现,但我就是了实现一个类比这样的一个效果,一个摄像机将看到的图像显示到一个Texture上,然后将Textrue赋予一个面板,然后另一个摄像机看到这个的这个面板放在UI层,然后最后将所有场景里面的物体都置于MainCamera的可见区域。
1113 0

热门文章

最新文章