[返回游戏天地首页]·[所有跟帖]·[ 回复本帖 ] ·[热门原创] ·[繁體閱讀]·[版主管理]
【扫盲】《扯蛋》游戏是怎样炼成的
送交者: 宋青书[★★声望品衔9★★] 于 2015-03-17 10:16 已读 2484 次 7 赞  

宋青书的个人频道

首先,给大家看看unity 5 的精神面貌:

从左到右,Project窗口可以用来浏览你的文件。每个unity项目自身都是一个文件夹,里面含有所有unity自带的资源,然后你往里面添加自己的资源。 中间的Hierarchy窗口列出的是你的游戏场景中所有的物体。每个新场景自动含有一个灯光和一个主摄像机。所有的物体都是按字母顺序排列的,然后每个物体可以含有子物体。 再右边的Inspector显示选择的物体的属性。 最右边的两个大框框,下边的Console显示错误信息,上边的Scene自然是当前的场景,旁边的Game是你运行游戏前摄像头的视角。点击上面的三角形运行游戏,这时可以通过Game窗口测试。 接着我们下一个蛋。照下图在场景中加入一个球体。unity场景中的物体分两种,一种是独立物体,另一种是prefab。啥是prefab?你在场景里随便加入一个物体,这时它的名字颜色是白色,它就是个独立物体。把它拉进project窗口里,它就变成了蓝色的prefab。你每次把一个蓝色prefab 拉到场景里,它的属性都跟project(也就是你硬盘上)的那个相同。如果你在场景里对它做了改变,你可以选择把你的改变输送到这个prefab所有的进程里面。。。这里是越说越糊涂了,大家自己玩玩就能明白。

球体加入后大家可以改名,也可以在场景中移动/旋转。按W键是移动模式,按E键是选择模式。

下面建立一个新的c#脚本。unity有两种脚本语言,一个是javascript,一个是c#。当然要注意这两者只是脚本语言,不是真正的编译器,我个人更喜欢c#,因为我比较习惯面向对象的编程法。打开这个c#文件,unity自带了monodevelop开发环境。

下面是新建立的c#脚本的缺省内容。大家可以看到“扯蛋”这个类是继承monobehavior类的,在unity中,所有继承这个类的脚本都可以安置到场景内的物体上。游戏运行的时候,首先做的就是从场景中搜索所有物体上面安装的脚本,只要碰见Start()这个方法,就执行它。当然如果同时有多个物体都有脚本而且都有Start(),游戏不可能同时执行,而是逐个执行。执行的顺序很不可靠,所以在我的游戏中,只有一个类含有Start()方法,游戏每次都是从它开始。 下面的那个Update()方法跟Start()一样,都是事件,也就是说unity会自动运行它。Update()方法的运行规则是每帧运行一次。大家都知道量子物理吧?都听说过连时间都可以分成量子吧?游戏中的“帧”就相当于宏观的时间量子,游戏中所有的任务都是每帧运行一次,然后等下一帧再运行,不可能在两帧之间运行。每帧的任务多了,计算机处理每帧花费的时间就多,然后玩家就会觉得“跳帧”。若想让游戏操作起来百分百流畅,每秒五十帧是必须的。 我们这个扯蛋游戏的目标就是,每帧让那个蛋挪一点点位置,在玩家看来,就是一路不停得走了。

下面这个图是让蛋运动的脚本。编程大家都懂,细节就不详述了。值得一提的一个是vector3,一个是transform。 vector3是unity自带的模拟三维矢量的类,内含很多有用的矢量运算方法,用起来很方便。比如程序里用到的“Distance” 方法。做三维游戏会用到很多很多矢量运算,写shader就更多了(你的显卡本身就是个矢量运算器中的战斗器),所以一定要克服对矢量数学的厌恶。我以前最烦他妈矢量和矩阵什么的了,现在成天左手规则右手定律得比划,我老婆一看就问你丫这是抽的什么疯? unity场景中每个物体都会有transform这个部件,它含有每个物体位置,指向,和比例数据,同时也有很多有用的方法。值得注意的是那些数据是可以直接通过脚本改变的,所以你蛋疼的话可以完全写自己的物理引擎。unity也自带一个物理引擎,一般般但大部分时间都够用。这个扯蛋游戏中我们自己写一个很简单的物理引擎:每帧朝X方向挪一点。

脚本写完后就可以拉到场景中的球体上。如果脚本中有public变量的话,可以直接在Inspector窗口里面设置。这里我就设置了速度和移动距离两个变量。

然后就可以点击运行按钮运行游戏了!你可以看到蛋被扯二十米,希望大家看得蛋疼。

6park.com

评分完成:已经给 宋青书 加上 50 银元!

喜欢宋青书朋友的这个贴子的话, 请点这里投票,“赞”助支持!
[举报反馈]·[ 宋青书的个人频道 ]·[-->>参与评论回复]·[用户前期主贴]·[手机扫描浏览分享]·[返回游戏天地首页]
帖子内容是网友自行贴上分享,如果您认为其中内容违规或者侵犯了您的权益,请与我们联系,我们核实后会第一时间删除。

所有跟帖:        ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )


用户名:密码:[--注册ID--]

标 题:

粗体 斜体 下划线 居中 插入图片插入图片 插入Flash插入Flash动画


     图片上传  Youtube代码器  预览辅助

手机扫描进入,浏览分享更畅快!

楼主本栏目热帖推荐:

>>>>查看更多楼主社区动态...






[ 留园条例 ] [ 广告服务 ] [ 联系我们 ] [ 个人帐户 ] [ 版主申请 ] [ Contact us ]