04 塔防底板布局 (和儿子一起编游戏-塔防系列 )

2023-12-05 04:10

本文主要是介绍04 塔防底板布局 (和儿子一起编游戏-塔防系列 ),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

4.1 基本概念

从简单的来讲,塔防的底板由供坏蛋行走的路线,供安放炮塔的底座,起始点和终止点组成,成品的效果是这样的:

要做成上面说的底板,就要涉及到Unity3D Prefab,这是一个预制件概念,也就是说我们做供坏蛋行走的路线,供安放炮塔的底座的时候,先做好一条路线,一个底座,然后把他们放到Prefab包里面,凡是从Prefab包里面拉出来的部件,只要Prefab部件属性改了,就一起都改了。

底座集合:

      底座

路线集合

      路线

起点

终点

虽然只能看到一张地图,小余已经约摸知道老爸准备做什么了,乖乖的坐在老余身后看,一边看还一边吃手指头。这小子不知道什么时候染上这个毛病,一专注就吃手指头,好像手指头上有美味。

4.2 百闻不如一练 – 底座

老余多年的强迫症又犯了,他看不惯所有的东西都乱七八糟堆一块,尤其见不得那些把文件堆满Windows桌面的人,所以他在Assets目录下做了一个分类:

Imports:存放以后要导入的一些素材包

Materials:物体的自定义材质

Prefabs:游戏里面的预制件都放在里面

Scenes:游戏场景,包含主菜单,闯关分析,各个游戏关卡

Scripts:游戏的C#程序脚本

因为是小制作,老余就分了这些目录,如果是大游戏,里面的目录还可以再继续分解。

老余刚开始还有点手生,每一步都慢慢做,生怕那个地方没弄对就前功尽弃,不过在手生也得开个头把16*16的方块底座给搞定了,先用Unity3D(以后统称U3D,简单点)做出来一个Cube,给它一个名字叫Node,然后把这个Node重置到图中央的位置,直接上图,一目了然

这时候就可以看见我们的初始Cube了,真的是好丑:

就算是老余那种能将就的都受不了了,当务之急就是把底座整美一点,这时候就需要创建材质了:

老余想把材质做成白色,带一些Emission反光的效果,材质球名称叫Node_Mat跟之前的Node名称关联,没别的意思,方便查找吗。

然后老余把这个材质托拽到Node的Materials中Element 0里面。

这就是白色材质Node_Mat应用到Node上面的效果,老余非常鸡贼的一点就是他会用Prefab,他把Node托到Prefab中,以后铺16*16的“地砖”的时候,就从Prefab里面拉出来,改了Prefab属性,那些地砖都会变:

接着老余做了一个底座集合叫Nodes,用来统一管这些地砖,以后你就能看到这个集合的好处了,你想想16*16就是256块地砖(Node)出现在列表中,想找点别的物件都难。

创建一个空对象,Reset到中间位置(怎么Reset的放地砖的时候老余试过了,所以很easy),然后把做好的Node拉到Nodes下面,看见没,多出来一个小三角,可以折叠的。

这下面就有点力气活的意思了,要摆16*16的砖块,不过U3D有复制功能,做好16个,复制就行,复制的命令是CTRL+D

4.3 敌人的路线

复制粘贴完毕,老余想了一条路径,让游戏里面的坏蛋们通过,很好办,把地砖抠出来删除掉就行

抠出来的大洞要用另外一个物件(路线)补上,老余就叫它Ground了,Ground的集合叫Environment,老余英文不错,因为IT技术还是美国强大,很多好资料都是用英文写的,不会点英文,确实是短板。

注意看老余不光把Ground弄到Prefab里面了,还创建了一个暗灰色的材质球,最后把Ground挂在Environment那个节点下面,老余的动作是越来越快了

记得把Box Collider拿掉,因为走道不需要碰撞器(Collider)

Ground置备好了后,就开始新一轮铺地砖了

老余是个偷懒的人,他嫌一个一个放麻烦,直接就用U3D的拉升工具(快捷键T)直接拉满了

4.4 有始有终

最后,老余准备着放一个起点(START)和一个终点(END),这两个倒是不需要Prefab,因为各有一个吗!老余用的方法跟前面的没有两样,飞快地(一上午)搞定了。

这篇关于04 塔防底板布局 (和儿子一起编游戏-塔防系列 )的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/456096

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

vue, 左右布局宽,可拖动改变

1:建立一个draggableMixin.js  混入的方式使用 2:代码如下draggableMixin.js  export default {data() {return {leftWidth: 330,isDragging: false,startX: 0,startWidth: 0,};},methods: {startDragging(e) {this.isDragging = tr

JavaWeb系列二十: jQuery的DOM操作 下

jQuery的DOM操作 CSS-DOM操作多选框案例页面加载完毕触发方法作业布置jQuery获取选中复选框的值jQuery控制checkbox被选中jQuery控制(全选/全不选/反选)jQuery动态添加删除用户 CSS-DOM操作 获取和设置元素的样式属性: css()获取和设置元素透明度: opacity属性获取和设置元素高度, 宽度: height(), widt

高仿精仿愤怒的小鸟android版游戏源码

这是一款很完美的高仿精仿愤怒的小鸟android版游戏源码,大家可以研究一下吧、 为了报复偷走鸟蛋的肥猪们,鸟儿以自己的身体为武器,仿佛炮弹一样去攻击肥猪们的堡垒。游戏是十分卡通的2D画面,看着愤怒的红色小鸟,奋不顾身的往绿色的肥猪的堡垒砸去,那种奇妙的感觉还真是令人感到很欢乐。而游戏的配乐同样充满了欢乐的感觉,轻松的节奏,欢快的风格。 源码下载

C语言入门系列:探秘二级指针与多级指针的奇妙世界

文章目录 一,指针的回忆杀1,指针的概念2,指针的声明和赋值3,指针的使用3.1 直接给指针变量赋值3.2 通过*运算符读写指针指向的内存3.2.1 读3.2.2 写 二,二级指针详解1,定义2,示例说明3,二级指针与一级指针、普通变量的关系3.1,与一级指针的关系3.2,与普通变量的关系,示例说明 4,二级指针的常见用途5,二级指针扩展到多级指针 小结 C语言的学习之旅中,二级

剑指offer(C++)--孩子们的游戏(圆圈中最后剩下的数)

题目 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去

JavaWeb系列六: 动态WEB开发核心(Servlet) 上

韩老师学生 官网文档为什么会出现Servlet什么是ServletServlet在JavaWeb项目位置Servlet基本使用Servlet开发方式说明快速入门- 手动开发 servlet浏览器请求Servlet UML分析Servlet生命周期GET和POST请求分发处理通过继承HttpServlet开发ServletIDEA配置ServletServlet注意事项和细节 Servlet注

flex布局学习笔记(flex布局教程)

前端笔试⾯试经常会问到:不定宽⾼如何⽔平垂直居中。最简单的实现⽅法就是flex布局,⽗元素加上如下代码即 可: display: flex; justify-content: center; align-items :center; 。下⾯详细介绍下flex布局吧。   2009年,W3C提出了 Flex布局,可以简便⼂完整⼂响应式地实现各种页⾯布局。⽬前已得到了所有浏览器的⽀持,这意味着,现

【服务器08】之【游戏框架】之【加载主角】

首先简单了解一下帧率 FixedUpdate( )   >   Update( )   >   LateUpdate( ) 首先FixedUpdate的设置值 默认一秒运行50次 虽然默认是0.02秒,但FiexedUpdate并不是真的0.02秒调用一次,因为在脚本的生命周期内,FixedUpdate有一个小循环,这个循环也是通过物理时间累计看是不是大于0.02了,然后调用一次。有

Flex 布局教程:语法篇

网页布局(layout)是 CSS 的一个重点应用。 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 20