【Unity】第6章 Unity脚本开发基础
分类: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脚本开发基础的更多相关文章
- 【SharePoint学习笔记】第1章 SharePoint Foundation开发基础
SharePoint Foundation开发基础 第1章 SharePoint Foundation开发基础 SharePoint能做什么 企业信息门户 应用程序工具集(文档库.工作空间.工作流.维 ...
- SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础
----前言 这段时间项目出在验收阶段,不是很忙,就潜心把SharePoint学一下,不求有多深刻,初衷只是先入门再说.后续会发布一系列的学习总结.主要学习的书籍为<SharePoint2010 ...
- Unity脚本开发基础 C#
1. MonoBehaviour 类 常用事件响应函数: 2. 访问游戏对象 (1) 通过名称来查找 (2) 通过标签来查找 上述函数比较费时,应避免在 Update 函数调用. 3. 访问组件 对于 ...
- [原]Unity3D深入浅出 - 脚本开发基础(Scripts)
常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每 ...
- 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础
一:为什么需要动态网页 由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页 ①:动态网页是指在服务器端运行的,使用程序语言设 ...
- U3D脚本开发基础
1.MonoBehaviour类,定义了对各种特定事件的脚本响应函数.这些函数均以On做开头. 2.U3D中常用的组件及对应变量名如下: Transform(transform),Rigidbody( ...
- jsp第一章 动态网页开发基础
动态网站可以实现交互功能,如用户注册.信息发布.产品展示.订单管理等等: 动态网页并不是独立存在于服务器的网页文件,而是浏览器发出请求时才反馈网页: 动态网页中包含有服务器端脚本,所以页面文件名常以a ...
- [No0000138]软件开发基础知识
1. 本文目的 本文目的在于,介绍软件开发的各种基础知识 以实现,看了之后,对于软件开发的很多领域的基础知识有所了解 如此在进行后续的真正的软件开发时,遇到各种细节知识,才会明白由来和背景知识 第 1 ...
- SAP-ABAP系列 第二篇SAP ABAP开发基础
第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...
随机推荐
- Maven让资源文件处理插件能够解析资源文件中的Maven属性
<build> <resources> <resource> <directory>${project.basedir}/src/main/resour ...
- C++11中的mutex, lock,condition variable实现分析
本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装.不 ...
- Ubuntu14.04设置开机自启动脚本
方法一.编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本,所以我们可以直接在/etc/rc.local中添加启动脚本.在 exit 0 前面添加好脚本代码, ...
- java 增量运算符
//java 增量运算符 public class Test16{ public static void main(String args[]) { int x1=10; x1+=3; //x1=x1 ...
- ArcGIS进行自定义投影转换(重投影)
这里记录一下使用自定义七参数进行投影转换的过程. 1.主动创建自定义地理(坐标)变换 首先在系统工具箱里面选择创建自定义地理(坐标)变换 在弹出的窗口中输入相关参数即可. 转换方法选择COORDINA ...
- 电信网关-天翼网关-GPON-HS8145C设置桥接路由拨号认证
需求描述: 自从用了电信的200M光纤,解析卡成狗.打开域名3秒左右,不常见的域名8s左右.怀疑电信的网关有问题,故想让路由器拨号认证,进而设置dns解析域名 修改为路由器拨号认证,域名解析缓慢依然没 ...
- I2C 12864OLED的工作机制
有许多不同规格的OLED显示屏与Arduino兼容, 128x64是最常见的型号, 也很便宜, 淘宝上大概是12~14元一片. OLED与Arduino的通信 首先, 使用I2C总线的设备, 都可以使 ...
- 【TP3.2】详解_initialize() 和 __construct() 的区别和联系
1.假设 一个AdminController.class.php 集成至 \Think\Controller 类, 我们来看看Controller.class.php的构造方法源码: /** * 架构 ...
- 怎样查看SSL证书的有效期?自动续期是否生效?
前面一篇教程教大家如何能够把网站的 HTTPS 的 SSL 证书自动续期.料神米课的学员动手能力都很强,已经很多都成功把证书续期了.但怎么看证书续期是否成功了呢? 使用火狐 firefox 浏览器就可 ...
- sqlserver修改为windows验证登陆, 程序的调整
业务需求, 客户要求sqlserver改为windows验证登陆, sa用户不可用, 程序端如何修改呢? 我在本机做了个测试. 环境: sqlserver2016, springmvc+spring+ ...