本期我们继续为大家进行双杆射击游戏(组件)的后续教程
学习内容
18.脚本介绍
19.为什么不用JavaScript?
20.创建第一个脚本
21.Managing Input
文章末尾可免费获取教程源代码
本篇制作双杆射击游戏(组件)篇幅较长,分为五篇,本篇为第二篇,还未看过第一篇的【请点击这里】
18.脚本介绍
对于非程序员来说,脚本充其量只是进入的一个小障碍。最糟糕的是,脚本编写是永无休止的魔鬼。
来自艺术背景,我可以说脚本编写并不像您想象的那么难。像其他任何东西一样,只需要一些时间和耐心就可以了解其工作原理。
在本教程中,您将使用C#编写脚本,C#是Microsoft开发的一种流行语言,适用于移动和桌面应用程序。它功能丰富且功能全面。
但可惜的是关于C#语言,我们在这里不做教学。
如果您是编程的初学者,请务必首先确认一下自己的掌握程度。如果您是一位经验丰富的开发人员,或者是一位特别勇敢的初学者,请随时继续学习,因为本教程中的所有内容都是分步进行的;如果没有C#知识,你在学习本教程时理解可能会有一些困难。
19.为什么不用JavaScript?
过去,Unity附带了Javascript和称为Boo的python变体。大多数开发人员都使用C#,因此在2017年,不再支持Javascript。Boo在几年前就被放弃了。现在,所有脚本都完全在C#中完成。
您可能会遇到参考Javascript的教程,但是您甚至无法在编辑器中创建Javascript文件。这是一件好事,因为Unity一直专注于C#实现,并将其更新为该语言的近代版本。
C#可能需要花费一些时间来学习,但是您可以在Unity之外利用这些编程技能。例如,如果您发现自己不喜欢游戏开发(或过着艰难的生活)却喜欢这种语言,则可以将这些技能转换为C#开发工作,创建桌面或移动应用程序,甚至开发后端服务器应用程序。
编码在Unity中的工作方式是创建 scripts。脚本只是您附加到GameObjects上的另一种类型的组件,您可以为其编写代码。
脚本派生自名为MonoBehaviour的类,您可以重写一些方法以在发生某些事件时得到通知:
1 Update():此事件在每一帧发生。如果您的游戏以每秒60帧的速度运行,Update()则称为60次。不用说,您不想使用此方法进行任何繁重的处理。
2 OnEnable():在启用GameObject以及不活动的GameObject突然重新激活时调用。通常,当您一段时间不需要GameObjects时将其停用,但稍后需要使用它们。
3 Start():在脚本的生存期内且在调用Update()之前调用一次。这是设置和初始化的好地方。
4 Destroy():这在对象来世至游戏对象来世之前被调用。这是进行清理的好地方,例如关闭网络连接。
在本教程中,您还将发现许多其他事件。要查看完整的清单,请访问Unity网站上的参考资料:https://docs.unity3d.com/ScriptReference/MonoBehaviour.html
20.创建第一个脚本
好戏开场了!
您可以使用许多选项来创建脚本。您可以单击“Add Component”按钮,然后选择“New Script”
但是,我希望您这样尝试:在“ Project Browser”中选择“ Scripts”文件夹,然后单击“ Create”按钮。从下拉菜单中选择C# Script,并将其命名为PlayerController。
您会在Scripts文件夹中看到新脚本。将其从Scripts文件夹拖到SpaceMarine GameObject上。
现在,您应该看到该脚本被列为Hierarchy中SpaceMarine GameObject上的组件之一。
您已经添加了第一个自定义组件!当然,它什么也没做……
您将在短时间内更改它,然后再进行操作,您需要了解Input Manager。
21.Managing Input
输入是游戏的控件,如果您要为台式计算机开发游戏,则用户将希望能够重新绑定键。Unity的输入管理器使此操作变得容易,并且是您的游戏处理用户输入的首选方式。
要访问输入管理器,请单击“Edit\Project Settings\Input.”
检查器将看起来很空。单击“Axes.”一词旁边的 disclosure triangle
展开后,您将看到所有可用的预配置输入。
第一个属性是Size,它是游戏使用的输入数量。您可以减少数量以减少数量,如果需要更多输入,则可以增加数量。当前的输入量足以满足该游戏的需求。
点击Horizontal旁边的disclosure triangle。您可以在此处配置水平轴的输入,即左或右。
以下是关键字段的细分:
Name是Unity给输入的名称。此示例称为“Horizontal”,但您可以将其命名为“ Horizontal”。这也是您在代码中引用的名称,稍后您将看到。
如果Descriptive Name和Negative Name要重映射按键,则它们是在Unity游戏启动器中提供给用户的名称。您可以根据需要禁用Unity游戏启动并提供自己的按键映射界面,因此这些不是必需的属性。+ * 负号和正号按钮是实际使用的键。
Unity允许按钮具有负向或反向键。例如,right箭头键为正,而left箭头键为负。您无需为所有键都提供否定键-为使用操作提供否定键没有任何意义。+ * Alt负键和Alt正键是替代键。在这种情况下,您可以启用A和D键,而不是左右箭头键。
其他领域主要涉及模拟棒的功能。为简单起见,该游戏将仅使用键盘输入。如果您想使游戏成为真正的双棍射击游戏,则可以调整这些选项以创建严格的控制方案。
本期的教学就到这里结束了,我们下期会进行代码的访问和相机设置的教程。
END
Unity架构师之路
Unity教程 | 墙外的Unity | 免费资源 | 游戏开发日记
长按关注我们添加微信获取教程源代码
(后台回复“源代码”)