【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法

一些问题的思考:

1. 如何应用左手法则决定视图,应用 Field of view 设置场景大小。
左手法则使用方法如下图:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
Field of view越大,可视角和距离越大。

2. 添加一个 Empty 游戏对象, 添加一个 Camera 部件(Rendering 分类下),有什么效果
这个对象变成了Camera,删掉了主Camera后仍能有Camera视角。在Unity中,Camera就是一个Component(部件),任何一个GameOnject只要挂载上它,都可以变成一个“摄像师”的角色。

4. Camera 部件继承的类树(用 Umlet 绘制)
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法

5. Camera 部件有哪些静态属性。用程序验证并管理所有的 Camera ,并在程序中 enabled 部分有用的 Camera (切换摄像机)
静态属性如下:
 allCameras :返回所有可以使用的camera
 allCamerasCount: 翻译场景中所有照相机的数量
 current :当前用于渲染的相机,只用于低级的渲染控制
 main :第一个被启用的Camera会被标记为main
 onPostRender :任何一个camera结束rendering都会触发的时间
 onPreCull :任何一个camera开始culling的时候触发的事件
 onPrerRender :任何一个camera在开始rendering之前都会触发的事件


实现切换摄像机

在项目中Create两个empty对象,并加载两个camera组件,并设置两个在不一样的位置,有所区别。
Camera1视角:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
Camera2视角:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
实现代码:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
在键盘上按1和2,能够切换不同的相机视角


光源的学习

添加光源,把光源的inspector设置如下,制造一个聚光灯:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
效果:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
给摄像机加了个spot光源组件,调整angle能改变照射角度,如图就是聚在CUBE的1个面上。


给太阳加上光源

给SUN添加一个光源,这里Type选择Point,才能向周围发射光,注意到太阳本身是不发光的!!!只是具有照明效果:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
效果:
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法

光源总结:
Unity 3D中没有将 Camera, Light 设计为 GameObject ,而是一个组件,我想是因为这样灵活很多,摄像机和光源作为一个组件,挂在一个EMPTY上就是一个摄像机和光源的对象,而当想把其他对象也赋予这样的功能是,也能把组件挂载上去而不是处理对象和对象之间的关系,显然,组件的可扩展性和灵活性都强得多。如果是对象,则受限很大。