点击上方“蓝字”关注我们吧!

本期我们继续为大家进行双杆射击游戏(组件)的后续教程

学习内容

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 | 免费资源 | 游戏开发日记

长按关注我们添加微信获取教程源代码

(后台回复“源代码”)

游戏脚本代码大全_引擎入门 | 创建双杆射击游戏(组件 2)相关推荐

  1. unity太空射击源码_引擎入门 | 创建双杆射击游戏(入门 2)

    点击上方"蓝字"关注我们吧! 本期我们继续为大家进行双杆射击游戏的后续教程 学习内容 3.整理资产 4.导入资产 5.安装 Blender 6.导入包 文章末尾可免费获取教程源代码 ...

  2. 游戏脚本代码大全_代码与程序的关系是这样的

    很多人都明白代码的意思,但真正的含义还不是太理解,那么专业的代码解释是什么呢?其实它就是服务器所解析的语言,也就是说服务器将代码翻译成源代码. 代码也可以看成是程序的片段,代码可能只有一行,也有可能有 ...

  3. auto.js 脚本代码大全_本周 GitHub 速览:您的代码有声儿吗?(Vol.38)

    作者:HelloGitHub-小鱼干 摘要:还记得花式夸赞程序员的彩虹屁插件 vscode-rainbow-fart 吗?它后续有人啦!JazzIt 同它的前辈 vscode-rainbow-fart ...

  4. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

  5. python做游戏脚本被监测_一个监视CSDN论坛押宝游戏状态的python脚本

    # -*- encoding:UTF-8 -*- #以指定的时间间隔获取CSDN押宝游戏的结果 #网址:http://community.csdn.net/Games/GamePawn.aspx?id ...

  6. C 修改服务器代码,rpg c 游戏服务器代码大全

    rpg c 游戏服务器代码大全 内容精选 换一换 香港节点和大陆节点的区别如下:香港节点购买域名后无需备案,可以直接在后台绑定域名并使用.大陆节点购买域名后需要先完成备案,才可以在后台绑定域名.香港节 ...

  7. FLASH脚本代码大全转

    FLASH脚本代码大全 - Go to 跳转到指定的帧 - Play 播放 - Stop 停止 - Toggle High Quality 在高画质和低画质间切换 - Stop All Sounds ...

  8. 锁定计算机按键精灵运行,最新按键精灵脚本代码大全 按键精灵命令运行方法...

    按键精灵脚本代码命令运行大全.按键精灵的鼠标动作录制是一项非常好用的功能,但因为鼠标点击的地方是固定死板的,且延迟时间无法调整,如果在后台脚本中添加一些专用代码,就可以调整点击频率和点击时间,甚至可以 ...

  9. Games104现代游戏引擎入门-lecture3如何构建一个游戏世界

    Games104现代游戏引擎入门-lecture3如何构建一个游戏世界 1 游戏世界的构成 2 无人机案例 3 游戏世界如何动起来 4 如何探索 5 如何管理GO 6 总结 7 Q&A 1 游 ...

最新文章

  1. ORACLE 10g 数据库体系结构图
  2. Linux 系统学习梳理_【All】
  3. c语言冒泡排序(解析)
  4. Typora 快捷键
  5. webpack打包生成的map文件_一站式搞明白webpack中的代码分割
  6. win7系统怎么拷贝到u盘_Win7系统电脑无法识别U盘启动盘怎么办?
  7. 用java写四则混合运算,JAVA写的四则混合运算-JSP教程,Java技巧及代码
  8. ElasticSearch D3
  9. 3个月贵了1.6万!特斯拉Model 3今年已涨价6次
  10. python是什么意思中文、好学吗-爬虫Python入门好学吗?学什么?
  11. Spring Boot 整合 Kafka 分布式消息系统快速入门
  12. java读取properties文件详解
  13. 北京计算机应用基础考试时间,07年北京市自学考试计算机应用基础课周末开考...
  14. 精简win服务器系统,My Server之管理Win Server 2012精简版
  15. html表格中加入斜线,使用css给table表格表头添加斜线(斜线表格)
  16. python气象学_Python气象绘图教程(十)
  17. 云脉H5文档管理系统之文件管理的共享与协作
  18. 基于STM32的RFID监控系统设计
  19. 小白如何选择采集器-爬虫
  20. 服务器cpu型号后面的字母,Intel 至强 E3服务器CPU后缀解读

热门文章

  1. HTML5 - 表格与列表处理
  2. sockaddr、sockaddr_in、sockaddr_in6的区别及转换
  3. 学长做的网站,爆了 ! ! !
  4. 关于生活励志的句子,生活是这样美好,活他一千辈子吧
  5. 神经网络越训练准确率越低,神经网络训练的优势
  6. css3-旋转的星球
  7. redis 基础+进阶
  8. rosdep update 出现time out 解决办法(绝对有效)
  9. 最详细的WLAN无线综合实验
  10. Nat. Methods | scBasset:基于DNA序列的单细胞ATAC-seq卷积神经网络建模