第六章 Unity3D中的C#Script编程的注意事项
也许您在学习Unity3D之前,已经是一位C#的编程高手了。但在Unity3D中的C#并不像真正的C#那般强大,在Unity3D的C#中必须全部继承自MonoBehaviour。下面为一段C#Script的完整代码:

除此之外它不支持空间命名,但官方说他们很有可能会在以后的版本中支持这一功能。
在Unity3D中,JavaScript和C#Script的编程效果近乎一样。只是为了不同程序爱好者设立了不同的编程模式。并且JavaScript所编写的代码对象可以和C#Script编写的代码对象交叉使用,并不发生任何冲突。

第七章 修改MonoDevelop编辑器为Unity3D的默认编辑器
通常情况下Unity3D默认的编辑器都是“UniSciTE”,它用起来十分轻巧快捷,就像记事本一样。
但如果要开发一些大型的项目,
显然“UniSciTE”简单的功能就不足以支撑它的工作了。但如果您每次在编辑脚本的时候,都去用“MonoDevelop”一个个的打开,又会显得很
麻烦。所以我们就要在Unity3D中做一些设置,让“MonoDevelop”成为默认的脚本编辑器。具体的步骤是:在菜单栏中找到 ——> ,在弹出的 对话框中找到 并将它后面的下拉框选中为 ,浏览到我们“MonoDevelop”可执行文件存放的地方。这个路径一般都和您的Unity3D文件夹在一起。
设置好之后,重新再Unity3D中点选脚本文件,就会发现已经能用“MonoDevelop”软件打开了,但一次打开的时候会稍显慢一点,因为“MonoDevelop”需要加载很多东西。
当然,如果您是一个C#和Visual Studio忠实的编程爱好者,您也可以用同样的方法来设置Visual Studio软件的路径,让Visual Studio成为您Unity3D脚本的默认编辑器。

第八章 向Unity3D中导入外部模型
Unity3D支持多种外部导入的模型格式,但它并不是对每一种外部模型的属性都支持。具体的支持参数,您可以对照如下列表:

种类
网络
材质
动画
骨骼
Maya的.mb和.mal格式
3D Studio Max的.maxl格式
Cheetah 3D的.jasl格式
Cinema 4D的.c4dl 2格式
Blender的.blendl格式
Carraral
COLLADA
Lightwavel
Autodesk FBX的.dae格式
XSI 5的.xl格式
SketchUp Prol
Wings 3Dl
3D Studio的.3ds格式
Wavefront的.obj格式  
Drawing InterchangeFiles的.dxf格式  

在下面的实例中,我们利用3D MAX来制作一个完整的动画,并导出FBX的格式给Unity3D使用。
第一步:创建新的工程文件。
创建一个名为“Turret”的项目文件夹。然后打开Unity3D软件,选择 ——> ,创建一个新工程项目,在项目路径中点击 找到我们刚才创建的“Turret”文件夹,并点选我们需要导入的包文件,然后点击 来创建一个新的工程文件。需要注意的是,以上步骤千万不能乱,因为Unity3D是无法以非空的文件夹作为工程文件夹来创建项目的。
在此为了节省时间,笔者直接使用刚才创建好的场景来进行示范。
第二步:制作一个炮塔模型。
打开3D MAX软件制作一个炮塔模型,并将制作好的模型保存在“Assets”【资源】文件夹下面。3D MAX中的模型样图如图8.1所示:

图8.1
第三步:将炮塔模型放入场景。
重新来到Unity3D的软件环境中,这时大家已经能在Project【项目文件栏】看到我们刚才用3D MAX导出的模型文件和材质贴图文件了。接着我们在地形场景中找到一个合适的位置,将我们的炮塔拖拽进去。如图8.2所示:

图8.2
但是我们发现,这样似乎太小了一点。在改变外部模型尺寸的时候,有一个技巧,您不必在场景中修改它。儿科一道该模型的属性面板中去修改它的“Scale Factor”大小。如图8.3所示:

图8.3
它的默认值都是0.01,我们在这里将它改为0.1,并在属性面板的最下方找到 按钮,点击它让模型尺寸在Unity3D中得到改变。如图8.4所示:

图8.4
怎么样,我们的炮台是不是雄壮了许多?但是,我们并不赞同这样的模型导入方法。因为根据官方的说法,他们建议您将做好的模型导出成为FBX格式的模型文件
给Unity3D使用。也许这样会使模型在Unity3D中的运行速度得以提高吧。所以说我们还是回到3D MAX的软件环境下面,将模型导出。
第四步:将炮塔模型导出。
在3D
MAX中,点击File【文件】——>Export【导出】,将模型文件导出为FBX文件,保存到我们创建的文件夹中的“Assets”【资源】文
件夹下面。注意一下弹出的“FBX
Export”面板,这里包含了模型动画、骨骼工具、材质等等一系列的导出设置。如果您没有在模型中添加这些东西,就需要将不必要的复选框勾选掉。
第五步:将炮塔模型再次放置到场景中。
回到Unity3D的软件环境,在Hierarchy【层次清单栏】中选中原先的炮塔模型,按下“Delete”键将其删除。然后在Project【项目
文件栏】中找到刚刚导入的FBX模型,点击选中,用前面修改模型尺寸的方法来修改FBX模型的尺寸。然后将其放置在场景中合适的位置上。于是从3D
MAX中导出的模型就顺利的导入到Unity3D的场景中了。

Unity3D ——强大的跨平台3D游戏开发工具(四)的更多相关文章

  1. Unity3D ——强大的跨平台3D游戏开发工具(六)

    第十一章 制作炮台的旋转 大家知道,炮台需要向四周不同的角度发射炮弹,这就需要我们将炮台设置成为会旋转的物体,接下来我们就一起制作一个会旋转的炮台. 第一步:给炮台的炮筒添加旋转函数. 给炮台的炮筒部 ...

  2. Unity3D ——强大的跨平台3D游戏开发工具(一)

    众所周知,Unity3D是一个能够实现轻松创作的多平台的游戏开发工具,是一个全面整合的专业游戏引擎.在现有的版本中,其强大的游戏制作功能已 经达到让人瞠目结舌的地步.尤其是它在3.0版本里面制作的那款 ...

  3. Unity3D ——强大的跨平台3D游戏开发工具(五)

    第九章 图形用户界面类G.U.I 您在玩很多3D游戏的时候,不知是否注意到在游戏界面中,总有一些图形和文字信息是不随着3D视角的改变而改变的.这也是由于游戏本身的要求而决定的.比如说英雄的生命值,聊天 ...

  4. Unity3D ——强大的跨平台3D游戏开发工具(三)

    第四章 为地形添加水源.水流以及水下的模糊效果 制作好了地形的各种效果,接下来我们给场景添加一些水效果,使场景更加丰富. 第一步:添加水面 由于我在上一次的地形创作中就已经在山峰之间制作了一块洼地,它 ...

  5. Unity3D ——强大的跨平台3D游戏开发工具(二)

    第二章 Unity3D的简单预览 每个Unity3D版本都会自带一个Demo源文件.在3.0的正式版中,自带的Demo就是网上展示的那款强大的射击游戏.在一般情况下,您只要第一次 打开Unity3D ...

  6. Unity 4.2.0 官方最新破解版(Unity3D 最新破解版,3D游戏开发工具和游戏引擎套件)

    Unity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品.作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎.Unity作为一个游戏开发工具,它的设计主旨 ...

  7. 5 个最好的3D游戏开发工具(转)

    转自:http://www.open-open.com/news/view/33a4f0 5 个最好的3D游戏开发工具 jopen 2012-11-19 22:56:21 • 发布 摘要:UDK(th ...

  8. 优秀工具推荐:两款很棒的 HTML5 游戏开发工具

    HTML5 众多强大特性让我们不需要多么高深技术就能创建好玩的网页游戏,同时证明了开放的 Web 技术能与任何其他在游戏开发中使用的技术竞争.正如标题所说,这篇文章推荐的几款很棒 HTML5 游戏开发 ...

  9. Unity 3D游戏开发引擎:最火的插件推荐

    摘要:为了帮助使用Unity引擎的开发人员制作更完美的游戏.我们精心挑选了十款相关开发插件和工具.它们是:2D Toolkit.NGUI.Playmaker.EasyTouch & EasyJ ...

随机推荐

  1. 栅栏cyclicbarrier

    栅栏类似闭锁,但是它们是有区别的. 1.闭锁用来等待事件,而栅栏用于等待其他线程.什么意思呢?就是说闭锁用来等待的事件就是countDown事件,只有该countDown事件执行后所有之前在等待的线程 ...

  2. 解决IIS网站.woff 404 (Not Found)问题

    一.在没有权限操作IIS管理器的情况下,在Web.config中的system.webServer节点进行如下配置: <system.webServer> <staticConten ...

  3. struts2 严重: Error filterStart 原因

    当然你也可以用最新的struts2.3,把相应的包拷贝到工作区lib里 使用struts2.3.1所需的JAR包commons-fileupload-1.2.2.jarcommons-logging- ...

  4. 虚拟ip

    网卡上增加一个IP: ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0 删除网卡的第二个IP地址: ip addr del 192.168.0.1 d ...

  5. textbox文本键盘全选

    private void textBox1_KeyDown(object sender, KeyEventArgs e)        {            if (e.Modifiers == ...

  6. android Spinner 续

    android Spinner 续 动态增删Spinner中的数据项 public class EX04_09 extends Activity{  private static final Stri ...

  7. Android Fragment 真正的完全解析(上)--转

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fra ...

  8. USACO Section 1.3 Prime Cryptarithm 解题报告

    题目 题目描述 牛式的定义,我们首先需要看下面这个算式结构: * * * x * * ------- * * * <-- partial product 1 * * * <-- parti ...

  9. java程序中抛出异常的两种方式,及异常抛出的顺序

    在java中,会经常遇到异常,java提供了两种抛出异常的方式. 方式一: throws ,抛出具体代码中的异常,这种方式编译器都会提示,举例: public static void main(Str ...

  10. 深入理解setTimeout和setinterval

    以前一直以为这两个函数就是简单了认为类似thread一样的东西, 认为会在一个时间片内, 并发的执行调用的函数, 似乎很好很强大, 但其实并不是如此, 实际的情况是javascript都是以单线程的方 ...