这是我参与「第五届青训营」伴学笔记创作活动的第 7 天,学习的是使用Unity进行简单的3D游戏开发,将学习的内容记录下来,以便时时回顾学习。
Unity3D是由Unity Technologies开发的一个能让玩家轻松创建诸如三维游戏、虚拟现实、实时电影与动画、建筑可视化、数字教育、汽车/运输与制造等众多类型互动内容的多平台的综合型游戏开发工具,是一款功能强大的专业游戏引擎。Unity类似于Director,Blender,Virtools或Torque Game Builder等利用交互的图形化开发环境为首要方式的软件。
3D实体搭建
在Unity3D中创建游戏所需的实体有两种方式,一种是设计人员提供的可以导入的模型,还有一种就是由组合参数化的基本几何体创建。可以调整实体的位姿态,Position是平移,Rotation是旋转,Scale是缩放。在Unity中,绝大部分情况下,是先缩放,后旋转,最后平移。
Unity基本组件介绍:
- 每个游戏物体的身上都有很多不同的组件,正因为每个组件的功能不同,所以实现的效果各不相同
- Unity显示的组成是 项目-> 场景->游戏物体->组件->组件参数
- 组件和游戏物体相辅相成,游戏物体可以说是组件的载体
- 基本组件包括Transfrom组件,Box Collider(盒子碰撞体),Mesh Filter(网格过滤器),Mesh Renderer(网格渲染器),Rigidbody(刚体)
相机、光照、天空盒
透视投影: 呈现出一种近大远小的现象,一般常用。
正交投影: 无论远近显示的实体都是一样的大小。
碰撞体: 碰撞体是原始碰撞体类型。在 3D 中,这些碰撞体为盒型碰撞体、球形碰撞体和胶囊碰撞体。在 2D 中,可以使用 2D 盒型碰撞体 和 2D 圆形碰撞体。可以将任意数量的上述碰撞体添加到单个游戏对象以创建复合碰撞体。
控制与碰撞
一定要熟练掌握C#代码,可以通过Input.GetAxis()与InputManager监听玩家输入,从Camera.main获取相机参数,设置场景中物体在画面中的位置。不同物体的碰撞要在不同的图层实现,利用Collider组件与OnTrigger函数添加碰撞事件。