首页
学习
活动
专区
工具
TVP
发布

Unity3D游戏开发教程 Part.02

之前我们粗略了解了一点一个物体在Unity的组成,接下来我们初步涉及一下Unity中的脚本编程。

GameObject的行为是由附在它们上的组件控制的。虽然Unity的内置组件可以非常灵活,但你很快就会发现你需要更加复杂的功能。Unity允许您使用脚本创建自己的组件。这些允许你触发游戏事件,随着时间的推移修改组件属性,并以你喜欢的任何方式响应用户输入。

Unity中,可以使用C#或者JavaScript作为脚本语言进行编程。因为语言的良好设计和稳定性等性质,C#在Unity的各种社区中更受欢迎,而且是完全碾压JavaScript的存在,所以我们使用C#进行Unity的脚本编程。

注意:Unity中的脚本编程并不和微软官方Windows的C#编程完全一样,可以看作是在Unity的方言。在Unity的早前版本里面C#是依赖于Mono的,而不是基于微软的.Net,虽然最近新版本Unity开始支持用.Net来提供C#运行环境。而且Unity的脚本是有内置的(lL2cpp)可以编译C#编译的命令为C++的代码的,继续编译为二进制代码,来解决C#虚拟机的性能丢失。

如何创建脚本:

你可以从项目面板左上角的“Create创建”菜单中创建一个新脚本,或者从主菜单中选择“Assets>Create> C# Script。

新脚本将在项目面板中选择的文件夹中创建。并提示你输入新名称。

双击创建的新脚本会自动在Visual Studio中打开,会显示文件中代码长这个样子:

一个脚本通过实现一个派生自一个叫做MonoBehaviour的类来实现它与Unity内部操作的连接。您可以将类视为一种蓝图,用于创建可以附加到游戏对象的新组件类型。每次将脚本组件附加到游戏对象时,它都会创建一个由蓝图定义的对象的新实例。类的名称取自您在创建文件时提供的名称。类名和文件名必须相同,以使脚本组件附加到游戏对象。

要注意的是在类内部定义的两个函数。Update函数是放置处理游戏对象的帧更新的代码的地方。这可能包括移动、触发动作和对用户输入的响应,基本上是游戏过程中需要处理的任何事情。为了使Update函数能够完成它的工作,需要在任何游戏动作发生之前设置变量、读取数据并与其他游戏对象建立连接。在游戏开始之前(即,在第一次调用Update函数之前),Start函数将由Unity调用,并且是进行任何初始化的理想场所。

换句话说,Update函数每一帧被调用一次。Start函数在绑定的物体初始化的时候被调用一次,而且就这一次。

有C#基础的读者注意:你可能会惊讶于没有使用构造函数来完成一个对象的初始化。这是因为对象的构建是由编辑器来处理的,并且在游戏开始时不会发生。如果试图为脚本组件定义构造函数,则会干扰Unity的正常操作,并可能导致该项目出现重大问题。

如上所述,脚本定义组件,因此在脚本的一个实例被附加到游戏对象之前,它的任何代码都不会被调用。可以通过将脚本文件拖动到游戏对象的Inspector面板中的或当前选择的游戏对象的Hierarchy面板来附加脚本。Component组件菜单上还有一个脚本子菜单,它将包含项目中可用的所有脚本,包括您自己创建的脚本。脚本实例看起来非常类似于Inspector中的任何其他组件。

一旦GameObject添加了你的脚本,你按下播放运行游戏,脚本将开始工作。你可以通过在Start函数中添加以下代码来检查这一点:

Debug .log是一个简单的函数,它只打印一个消息到Unity的控制台输出。如果现在按下播放,则应该在主Unity编辑器窗口底部和控制台窗口中看到消息。

下一节我们来做一个小玩意。。。

未完待续

我的微信公众号:wcc_little_room

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180524G0VYC100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券