第一课:制作预制体、材质
Tall布局 One Column Layout - 创建
Scenes文件夹 ,存放MainScenes - 创建
Material文件夹 ,存放各种材质 - 创建
Plane 作为整个游戏的地表 - 在
Material文件夹 中,创建一个Plane的材质 ,赋予给主场景中的Plane ,调节材质颜色为金黄色土地。 - 地面有点儿放光,调节
Plane材质 的属性smoothness ,设置为0或者1,我选择设置为1。 - 去掉主场景中Plane的
Mesh Collider组件 ,因为该塔防游戏,我们不处理碰撞检测 。 - 新建
Prefab文件夹 ,将cube 作为一个prefab 。后续会点击cube,在上面制造炮台。并且会复用。
第二课:制作地图
- 在场景中会创建很多的
MapCube ,新建一个空物体,来存放MapCube。命名为Map。将MapCube拖放到Map层级 下。 - ctrl+d复制1个cube,因为cube大小是4*4,两个cube之间计划设置为间隔1m距离。
- 按住ctrl键点击cube拖动,每次拖动
距离是1m 。如果不按住ctrl键,拖动距离的精度是任意的。 - 创建出15*15的Map,然后设计地图:
设计起点、设计路径、设计终点 。
第三课:制作路径
- 在Map上面,挖出一条路径(
删除路径上所有的MapCube ) - 制作一个
RoadCube ,将RoadCube制作为Prefab,制作RoadCube的材质,将该材质设置给RoadCube。 - 创建一个
空物体Road ,将RoadCube归类到Road下。所有的MapCube归类到Map下。归类方便之后查找 。 - 把挖出来的路径,
从起点到终点,用RoadCube填充一遍 。 - 创建起点和终点。(有个小知识点:因为要从Map中扣掉一个MapCube,即从Map层级中,使一个MapCube脱离该层级。可以通过
GameObject=>Break Prefab Instance 来实现该操作)
第四课:摄像机
左上角 ,点击对应按钮 ,可以切换 控制摄像机的移动 和旋转 模式。- 给摄像机做移动和地图缩小放大:
- 因为已经对摄像机做了旋转,所以移动时用
世界坐标 (移动是前后左右) - 摄像头的
上下 ,就是地图的放大和缩小 。 - 给
Main Camera 添加一个脚本来控制摄像机 Input.GetAxis(“Horizontal”) 获取水平轴滑动 Input.GetAxis(“Vertical”) 获得垂直轴滑动- 在Update()函数中获取轴的滑动值,
Update()函数1min跑60帧 ,Time.deltaTime可以获取当前Update()处于第几帧 - 因为摄像机经过了旋转,所以transform.Translate()移动相机时,要用世界坐标系
Space.World ,而不能使用自身坐标系Space.Self - 获取的轴滑动值范围是
[-1,1] - 获取属性滚轮的滑动值
Input.GetAxis(“Mouse ScrollWheel”)
第五课:配置路点
- 添加路径点,创建一个空物体Way,在Way下面挂路径点WayPoint,点击Inspector下的立方体,可以给WayPoint添加图标。
- 添加一个WayControol脚本来控制所有的路径点,挂载在Way上面。
- 脚本中在Awake()函数中,获取节点下挂载的所有WayPoint。
wayPointsPosition = new Transform[transform.childCount];
for (int idx=0; idx<wayPointsPosition.Length;++idx)
{
wayPointsPosition[idx] = transform.GetChild(idx);
}
第六课
|