分类: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. 【C#】Excel导出合并行和列并动态加载行与列

    简单的Excel导出比较好做,只要设置表头,循环在表格中赋值添加数据即可,但是如果表头是不固定的,并且个数是不确定的,这就需要根据查询出数据的特点来添加导出了. 导出效果图: 如上图所示,商品的个数是 ...

  2. RHEL7 在不同的环境中使用不同的网络配置文件

    比如,我们可以设置RHEL7 系统在公司时使用一个网卡配置文件:在家时则使用另外一个配置文件(可以根据不同的环境设置多个网卡配置文件). 网卡配置信息如下: [root@rhel7 ~]# nmcli ...

  3. Quartz.NET开源作业调度框架系列(三):IJobExecutionContext 参数传递-转

    前面写了关于Quartz.NET开源作业调度框架的入门和Cron Trigger , 这次继续这个系列, 这次想讨论一下Quartz.NET中的Job如何通过执行上下文(Execution Conte ...

  4. Quartz.NET开源作业调度框架系列(一):快速入门step by step-转

    Quartz.NET是一个被广泛使用的开源作业调度框架 , 由于是用C#语言创建,可方便的用于winform和asp.net应用程序中.Quartz.NET提供了巨大的灵活性但又兼具简单性.开发人员可 ...

  5. Ubuntu16.04编译安装Redis Desktop Manager

    Redis Desktop Manager for OSX&Ubuntu 的安装版是收费的, 如果自己编译则是免费的. 安装过程参考官方提供的文档  http://docs.redisdesk ...

  6. 图标资源: http://www.easyicon.net/ 可以按关键词搜索

      搜索图标    

  7. update pm storage

    BEGIN #Routine body goes here... INSERT INTO EMS_PM_STORAGE ( AMOID, GP_BEGIN_TIME, EMS_RECORD_TIME, ...

  8. 在string资源中添加变量

    public void checkModeByAction() {     if(TxrjConstant.ACTION_ADD_RECIPIENT.equals(getIntent().getAct ...

  9. 基于swagger进行接口文档的编写

    0. 前言 近期忙于和各个银行的代收接口联调,根据遇到的问题,对之前编写的接口进行了修改,需求收集和设计接口时想到了方方面面,生产环境下还是会遇到意想不到的问题,好在基本的执行逻辑已确定,因此只是对接 ...

  10. swift3 生成UUID

    swift3 生成UUID //获取UUID func getUUID() -> String { let uuidRef = CFUUIDCreate(nil) let uuidStringR ...