分类:Unity、C#、VS2015

创建日期:2016-04-16

一、简介

游戏吸引人的地方在于它的可交互性。如果游戏没有交互,场景做得再美观和精致,也难以称其为游戏。

在Unity中,游戏交互通过脚本编程来实现。脚本可以理解为附加在游戏对象上的用于定义游戏对象行为的指令代码。通过脚本,开发者可以控制每一个游戏对象的创建、销毁以及对象在各种情况下的行为,进而实现预期的交互效果。

在Unity中进行脚本开发十分简易和高效,这是因为Unity的编辑器整合了很多脚本编辑的功能,比如脚本与游戏对象的连接、变量数值的修改以及实时预览脚本修改后的游戏效果,这样就节省了很多脚本开发时调整和调试的时间,提高了游戏开发的效率。

另外,Unity内置有一个脚本资源包,提供了丰富的游戏开发中的常用脚本,以帮助开发者快速实现游戏的基本功能。

二、Unity支持的脚本语言

Unity支持3种脚本语言:C#、JavaScript 和Boo。

其中,JavaScript 和 C# 大家都比较熟悉了,这也是在Unity中最常用的两种脚本语言。Boo是Python语言在.NET上的实现,使用者相对较少。

在Unity工程中,可以同时存在用不同语言编写的脚本。比如,在同一个工程中,有些脚本可能是用C# 编写的,而另一些脚本可能是用JavaScript编写的,这都没问题。因此,开发人员可以根据自己的喜好来选择使用哪种语言来开发,而且无须担心兼容性问题。

Unity的脚本语言在基于Mono的.NET平台上运行,因此可以使用各种.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。另外,和传统解释型脚本语言不同,Unity里的脚本都会经过编译,因此它们的运行速度也很快。

总的来说,在同一个Unity工程中,基本的东西既可以用JavaScript来编写,也可以用C#来编写。但是,深度开发时(比如实际的商业游戏项目)基本上都是用 C# 来开发的。另外,绝大多数Unity的第三方游戏插件也都是用C#来开发的。

还有,用JavaScript编写的任何功能,也都可以用C#来实现。

三、使用MonoDevelop还是VS2015

都可以。

但是,VS2015的编辑器和调试器比MonoDevelop强得太多了(比如设置断点等),而且创建、修改多个脚本时,不必在VS2015和Unity之间来回切换,直接在VS2015中创建和编辑多个脚本文件就行了,等脚本的修改全部完成并保存后(注意:必须保存),再切换到Unity,即可直接使用这些脚本。另外,Unity和VS2015之间的同步全部是自动完成的,不需要你去操这个心,你只需要在VS2015中编辑并保存就行了。

所以,用Unity开发游戏时,首选的脚本语言是C#,首选的脚本编辑器是VS2015。

但是,如果你对C#不熟悉(比如Java开发人员),也可以选择用JavaScript来编写。这也是为什么搞Java的用Unity开发手机游戏时都是用JavaScript写脚本,因为他们不会C#,只好退而求其次了。

四、本章示例

本章的所有示例都在ch06Demos工程中。

【Unity】第6章 Unity脚本开发基础的更多相关文章

  1. 【SharePoint学习笔记】第1章 SharePoint Foundation开发基础

    SharePoint Foundation开发基础 第1章 SharePoint Foundation开发基础 SharePoint能做什么 企业信息门户 应用程序工具集(文档库.工作空间.工作流.维 ...

  2. SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础

    ----前言 这段时间项目出在验收阶段,不是很忙,就潜心把SharePoint学一下,不求有多深刻,初衷只是先入门再说.后续会发布一系列的学习总结.主要学习的书籍为<SharePoint2010 ...

  3. Unity脚本开发基础 C#

    1. MonoBehaviour 类 常用事件响应函数: 2. 访问游戏对象 (1) 通过名称来查找 (2) 通过标签来查找 上述函数比较费时,应避免在 Update 函数调用. 3. 访问组件 对于 ...

  4. [原]Unity3D深入浅出 - 脚本开发基础(Scripts)

    常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每 ...

  5. 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础

      一:为什么需要动态网页    由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页  ①:动态网页是指在服务器端运行的,使用程序语言设 ...

  6. U3D脚本开发基础

    1.MonoBehaviour类,定义了对各种特定事件的脚本响应函数.这些函数均以On做开头. 2.U3D中常用的组件及对应变量名如下: Transform(transform),Rigidbody( ...

  7. jsp第一章 动态网页开发基础

    动态网站可以实现交互功能,如用户注册.信息发布.产品展示.订单管理等等: 动态网页并不是独立存在于服务器的网页文件,而是浏览器发出请求时才反馈网页: 动态网页中包含有服务器端脚本,所以页面文件名常以a ...

  8. [No0000138]软件开发基础知识

    1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...

  9. SAP-ABAP系列 第二篇SAP ABAP开发基础

    第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...

随机推荐

  1. 转 error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file

    我是今天再用emboss得时候发现出现问题了,再网上搜索了一下,发现有人和我一样得问题,解决得方法是: wget -O /usr/lib64/libmysqlclient.so.15 http://f ...

  2. aapt 命令可应用于查看apk包名、主activity、版本等很多信息

    aapt即Android Asset Packaging Tool,在SDK的build-tools目录下,本文小结了一下该工具的用法. 配置环境变量后可直接在cmd使用该命令 http://blog ...

  3. 初始化ArrayList的两种方法[转]

    方式一:  ArrayList<String> list = new ArrayList<String>();  String str01 = String("str ...

  4. Eclipse和MyEclipse使用技巧--如何解决新建一个包的时候,工具帮生成了多个包的问题?

    一.问题再现 二.如何解决

  5. http协议请求方法

    解析HTTP协议六种请求方法get.put.post.delete.options和trace含义与区别. 1.GET   selecr请求会向数据库发索取数据的请求,从而来获取信息,该请求就像数据库 ...

  6. Highcharts X轴纵向显示

    xAxis: { categories: ['苹果', '橘子', '梨', '葡萄', '香蕉'], labels:{ rotation: 90, style:{ fontSize: '13px', ...

  7. (原)SphereFace及其pytorch代码

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/8524937.html 论文: SphereFace: Deep Hypersphere Embeddi ...

  8. open()系统调用的实现

    open系统调用的服务例程是sys_open()函数,它接受三个参数:要打开文件的路径名filename, 访问模式的表示flags和文件权限掩码mode.在内核中,sys_open实际调用do_sy ...

  9. Swift3.0 - 实现剪切板代码拷贝及跨应用粘贴

    有个需求,点击某个按钮,实现一段内容的拷贝,然后到其他应用内,直接长按粘贴. 实现如下: /// 测试剪切板,实现代码拷贝内容 func testPasteBoard(str:String) { // ...

  10. 时间选择器(js,css,html)

    忘了从哪下载的了, 整理电脑, 做个记录, 效果图: 下载链接: 链接: https://pan.baidu.com/s/1qfYkcfn8dtLFg0oniB2GHA 提取码: 2amm