查看: 1859|回复: 0
打印 上一主题 下一主题

[GUI] Unity3D游戏开发入门 —— 界面与简单编程

[复制链接]

1557

主题

1

听众

1万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
454
精华
31

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2013-10-10 17:00:44 |只看该作者 |倒序浏览
周末听Sliz说Unity正式支持导出Flash了,作为一款成熟的游戏引擎,相信不少兄弟都对她很感兴趣。今天中午抽了点时间研究了一下,在这里做个笔记,算是本系列文章的一个开端。本文非100%原创,借鉴和参考了部分英文资料,在文中会有原版的连接。对于unity3d我也是刚刚研究,文中如有纰漏之处,望各位海涵。同时欢迎各位弟兄指正!

零 下载与安装

官方网站 http://www.unity3d.com
下载地址 http://unity3d.com/unity/download/
安装好后,在开始界面里有视频介绍和文档介绍的连接。不再赘述。

一 界面



Unity3D的界面基本上如上图分布,来看一下各区域的功能。

红色:工具栏,可以通过工具栏来设置当前的鼠标功能(缩放,移动等等),进入或退出游戏运行状态
橙色:视图,即编辑/游戏演示窗口
绿色:对象列表,本窗口列举了游戏中的全部游戏对象(摄像机,灯光等等)
蓝色:游戏素材窗口,包括脚本,贴图,模型等等
紫色:属性区

小技巧:选中某对象(不管是在绿色的列表区,还是在橙色的视图区)后,把鼠标移到橙色的视图区,按下F则视图自动对准该对象


二 创建游戏对象

和我们使用FB开发一样,在开始Unity开发之前,必须要创建一个新的项目(File->New Project)。
之后,就可以进行操作了。我们来创建一个平面(Plane),一个方盒子(Cube)和一个追光(Spotlight)

创建平面:GameObject->Create Other->Plane
创建方盒子:GameObject->Create Other -> Cube
创建追光:GameObject->Create Other->Spotlight

如果你创建完成后,并没有看到他们,可以在列表中选择某对象,然后把鼠标移动到橙色视图区,按下F。如果你看到你的对象是线条,类似下面这样:



说明你的对象被遮挡住了,调整他们的位置到合适就可以了。如何调整位置?可以试用工具栏的第2个功能按钮(移动)



选择该功能后,在列表区(绿色)或视图区(橙色)选择游戏对象,均可看到3方向的箭头,拖动对应方向的箭头即可完整在该方向上的移动操作。

试着把聚光灯方在方盒子的上方,并旋转聚光灯让他对准盒子吧。类似下面这样



最后,我们希望摄像机的视野,和我们现在视图区的一致。在列表区(绿色)中选择摄像机(MainCamera),然后选择菜单GameObject->Align With View,可以发现,摄像机的预览视图中,变成了和我们现在的视图区一样的内容,当然,尺寸小点-.-



三 编程,追光跟随的,由键盘控制的盒子

在Unity中,我们试用Javascript进行程序编写,语法和AS差不多。我们先实现简单的功能,让键盘可以控制盒子移动(D5的惯例。。。哈哈),然后,让追光一直跟着盒子。

首先,我们要新建一个脚本。Asset->Create->Scrpit。这个时候,Unity自带的脚本编辑器会自动打开(MonoDevelop),我们可以看到,已经自动帮我们生成了Update函数,这个和AS的Event.ENTER_FRAME是同个概念的,即每帧都会运行。然后,我们输入以下代码:
  • var speed = 5.0;
  • function Update () {
  •         var xspeed = Input.GetAxis("Horizontal")*Time.deltaTime*speed;
  •         var yspeed = Input.GetAxis("Vertical")*Time.deltaTime*speed;
  •         transform.Translate(xspeed,0,yspeed);
  • }

复制代码
speed是移动速度
Input.GetAxis("Horizontal")和InputGetAxis("Vertical")分辨是当前键盘的状态。如果按下A和D,则Horizontal返回1或-1,W和S则Vertical返回1或-1,否则都返回0。
Time.deltaTime 记录了渲染最后一帧所消耗的秒数。我们根据这个来进行位移(这里我也没太明白,还在研究,我比较容易接受.x+=speed...)

脚本写完了,接下来就需要把这个脚本绑定到某一个游戏对象上,我们想控制盒子,自然要绑到盒子上。选择盒子,然后在菜单中选择Component-->Script,选择刚才的Scrpit文件。可以看到属性栏里,绑定成功。



现在测试一下游戏,可以发现,方盒子已经受到键盘的控制了。下面,我们要让灯光一直照向盒子,先看代码:
  • var target:Transform;
  • function Update () {
  •         transform.LookAt(target);
  • }

复制代码
这里我们定义了一个target,后面再解释如何用,和刚才对盒子的操作一样,我们把这个脚本绑定到聚光灯上。

2011-9-5 16:58:30 上传
下载附件 (7.63 KB)




刚绑定的时候可以发现,target的值是None,因为我们还没有指定哪个对象作为target,点击None右边的箭靶一样的图标,会出现选择窗,在列表中选择Cube,target的值就被指定了。接下来,测试你的第一个“游戏”吧。

总结

相对于A3D,AWAY3D来讲,UNITY3D提供了完善的游戏开发环境。对于Flasher来讲,Javascript脚本也不会让我们过于陌生。如果Unity可以完美的导出到FP11的话,相信还是灰常强大的。本笔记不定期更新:)附件中有本次项目的源码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-17 16:35 , Processed in 0.497645 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部