Unity+C#怎么开发炸弹人游戏?教你Unity+C#开发炸弹人游戏操作

作者&投稿:养胁    更新日期:2024-05-18
~ Unity是全球应用非常广泛的实时内容开发平台,为游戏、汽车、建筑工程、影视动画等广泛领域的开发者提供强大且易于上手的工具来创作、运营和变现3D、2DVR和AR可视化体验。而一般没有点游戏开发的小伙伴想要自学掌握这个软件,可能就有点困难了!想要自学掌握Unity,还得是要系统的视频课程学习。如果你有想法自学Unity,那么就可以选择的Unity精选视频课程,四个阶段课程,Unity专业讲师带你从基础的软件安装到软件介绍到案例操作~

Unity+C#开发炸弹人游戏操作方法:

准备工作

首先,请下载一个我为本文游戏建立的初始示例项目,然后把它放到一个你指定的位置。

然后,使用Unity3D打开这个项目,注意到Assets文件夹下包含了好多的子文件夹。

这里具体说一下各个文件夹的主要功能:

AnimationControllers:存储着游戏控制器部分,包括的逻辑部分。

Materials:包含构建各关卡场景所需要的块(Block)材质。

Models:存储玩家、关卡及炸弹模型,及其相关材质。

Music:存储游戏的音效文件。

PhysicsMaterials:存储玩家的物理材质数据,它们是一些特殊类型的材质,用于实现特定的物理属性。在本教程中,用于使玩家在无摩擦情况下轻松地在关卡中穿越。

Prefabs:包含炸弹及爆炸的预制数据。

Scenes:对应于游戏场景数据。

Scripts:包含游戏的启动脚本,其中添加的大量注释将有利于读者阅读源码。

SoundEffects:包含炸弹及爆炸效果相关的声效文件。

Textures:包含两个玩家的纹理数据。

投掷炸弹

如果你还没有打开游戏工程,请抓紧打开,然后试着运行一下此程序。没有其他问题的话,你会观察到如图所示的情形:

你会注意到,游戏中的两个玩家可以通过键盘上的WASD四个字符键或者四个箭头键驱动,使其沿着游戏地图运动。

通常,当按下空格键时红色玩家会在其脚下安置一枚炸弹,而另一个玩家也能够做同样的事情——只是通过按回车键实现。

然而,目前我们还没有实现这一功能。为此,你需要先编写放置炸弹的代码。现在,请你使用自己喜欢的代码编辑器打开脚本文件Player.cs。

此脚本负责处理所有的玩家运动及动画逻辑,还包含一个方法DropBomb,当关联游戏对象(GameObject)bombPrefab时,它用于检测目的。

privatevoidDropBomb(){if(bombPrefab){//Checkifbombprefabisassignedfirst}}1.2.3.4.

为了实现一个炸弹掉落在玩家下面的效果,在if语句中添加下面的代码:

Instantiate(bombPrefab,myTransform.position,bombPrefab.transform.rotation);1.

上述代码将在玩家脚下生成炸弹(随着玩家的运动路径的变化,将生成成串的炸弹)。现在,运行一下游戏工程,你会观察到如下图所示效果:

目前,效果不错吧!

但是,还有一个小问题:炸弹投掷的方式如何?如果是无论在哪里你都能放炸弹的话,当你需要计算爆炸应该发生的位置时就会带来一些问题。

接下来,本教程将向你具体介绍如何实现爆炸的所有细节。

炸弹定位

下一步任务是确保炸弹在丢掉时能够附着到相应位置,从而实现炸弹很好地与地板上的网格对齐。由于我们的设计中网格上的每个图块大小是1×1,所以进行此更改是相当容易的。

打开文件Player.cs,编辑一下Instantiate()函数,像下面这样:

Instantiate(bombPrefab,newVector3(Mathf.RoundToInt(myTransform.position.x),bombPrefab.transform.position.y,Mathf.RoundToInt(myTransform.position.z)),bombPrefab.transform.rotation);1.2.3.

注意,这里函数Mathf.RoundToInt调用中使用了玩家位置的x和z两个参数值,每一个浮点类型值被转换为一个整型值,这就可以实现炸弹很好地与地板上的网格对齐的效果:

现在,你可以再次启动工程来运行一下,你会观察到当投掷炸弹时,这些炸弹恰好能够对齐网格:

虽然把炸弹投掷到地图上是很有趣的,但你知道真正有趣的事是如何实现爆炸!为此,我们再来添加一些功能。

创建爆炸效果

首先,我们要创建一个新的脚本文件:

(1)从Project视图下选择Scripts文件夹;

(2)按下Create按钮;

(3)选择“C#Script”;

(4)把脚本文件命名为Bomb即可。

现在,把Bomb.cs脚本关联到预制Bomb上:

(1)在Prefabs文件夹中选择GameObjectBomb;

(2)点击按钮“AddComponent”;

(3)在搜索框中输入“bomb”;

(4)选择你刚刚创建的脚本Bomb.cs;

(5)打开此脚本文件,然后在其Start()方法中输入如下代码:

Invoke("Explode",3f);1.

此方法使用了两个参数,第一个是将要调用的方法名称,第二个是在调用此方法时需要延迟的时间数。在本例中,想实现炸弹在3秒内爆炸的效果。我们将在后面添加这个Explode方法的具体内容。

现在,只是在Update()方法下面添加这个方法占位符形式(目前为空):

voidExplode(){}1.2.

在生成任何GameObjectExplosion之前,还需要创建一个公共类型的GameObjet对象,以便进行预制Explosion的赋值。恰好在Start()方法上面定义如下代码:

publicGameObjectexplosionPrefab;1.

保存此文件,然后从Prefabs文件夹下选择预制Bomb,然后把预制Explosion拖动到“ExplosionPrefab”选项后面空白处。

完成这一操作后,返回到编辑器中。现在开始编写更有意思的代码。

在方法Explode()中,添加如下代码行:

Instantiate(explosionPrefab,transform.position,Quaternion.identity);//1GetComponent<MeshRenderer>().enabled=false;//2transform.FindChild("Collider").gameObject.SetActive(false);//3Destroy(gameObject,.3f);//41.2.3.4.

上述代码实现如下功能:

1.在炸弹位置触发爆炸;

2.禁用网络渲染器(meshrender),使炸弹不可见;

3.禁用碰撞器,从而允许玩家在爆炸中移动与行走;

4.在0.3秒后拆除炸弹;这可以确保在删除GameObject之前所有爆炸都会触发。

现在,保存脚本Bomb.cs,返回到编辑器尝试再玩一下游戏。放下一些炸弹并观察一下它们爆炸时良好的效果,参考下图。

设置爆炸音效

为了创建理想的爆炸效果,你需要创建一个协程。

「补充」协程本质上是一个函数,允许你暂停执行并将控制返回到Unity3D。在以后的某个时间点处该函数将从上次离开的位置恢复执行。

人们经常混淆协程与多线程。其实,它们是不同的:协程运行在同一个线程中,并能够在某中间点处及时恢复执行。若要了解更多的关于协程及其定义相关信息,请查阅相关的Unity文档(

untiy在C盘,而C#在D盘,在untiy中可运行C#吗?
答:是可以的。在 Unity 中运行 C# 代码并不会受到代码存储位置的限制。即使你的 Unity 项目存储在 C 盘,而 C# 代码文件存储在 D 盘,只要在 Unity 工具中正确导入这些脚本,就可以在 Unity 中运行这些脚本。Unity中的脚本可以在多个地方存储,不一定非要存储在 Unity 项目的主目录下。你可以在任何一...

unity用什么编程语言
答:unity主要使用csharp作为编程语言。csharp是一种由微软开发的、面向对象的编程语言,运行在netframework和netcore上,语法简洁优雅,功能强大且类型安全。unity是一款实时3d互动内容创作和运营平台,广泛应用于游戏开发、美术、建筑、汽车设计、影视等多个领域,提供了一整套完善的软件解决方案,用于创作、运营和...

unity怎么与c语言进行连接
答:extern "C" int _declspec(dllexport)addT(int a,int b);int testunity(){ return 3;//这是函数,里面可以写你想要实现的任何功能 } int addT(int a,int b){return a*2+b*3;} 然后编译、组建。就生成了testunity.dll文件。然后再把这个文件放在你的unity工程的assert的Plugins(如果没有...

unity3D用什么语言?
答:unity3D用C#语言。unity3d选择C#,是因为C#在网络开发方面成绩很优秀。选择Mono这个基于C#的开源框架,Mono是一个由Novell公司(先前是Ximian)主持的项目。C#是Microsoft推出的.NET语言,只能在.NET平台上运行,例如Win9x、ME、NT、2000、XP和WinCE之类的操作系统。但是MONO是把.NET及其编程语言移植到非Win...

unity引擎的特点
答:2、面向组件开发,不同的游戏项目,整个逻辑需要用C#重新写,但是资源都是可以沿用原来项目的;3、跨平台性,只需一键即可完成作品的多平台开发和部署,支持PC、移动、主机三大不同的平台;4、入门简单,开发语言C#相对于C/C++更简单,而且unity的使用已相对成熟,学习视频较多;5、支持ARVR,U3D是实现...

unity用什么编程语言
答:1、C#(C Sharp):C#是Unity3D中最常用的编程语言之一,也是官方推荐的语言。C#是一种现代化的面向对象编程语言,它可以为Unity3D游戏开发提供强大的编程支持,例如物理引擎、图形渲染、用户界面等等。2、JavaScript(JS):JavaScript是另一种常用的Unity3D编程语言。它是一种面向对象的动态语言,与C#相比...

安装unity C盘越来越大
答:GICache在本地的所有Unity工程中共享,所以当各项目中有相同内容和相同版本的光照系统时可以直接共享,而不用重新构建 因为unity 的GI cache 默认在 C:\Users\lenovo\AppData\LocalLow\Unity\Caches\GiCache,处理方法,Edit-> Preferences->GI Cache->选中Custom cache location 复选框,选择一个空间大...

unity是什么意思
答:Unity 是一个用纯C语言编写的测试工具。 它简洁实用,多应用于嵌入式系统。Unity工具可以裁剪用于各种规模的嵌入式项目,只要是纯C语言的项目,Unity都可以使用。3、Unity(英文单词)Unity是一个英文单词,指团结一致,统一体。示例:Speakersattherallymouthedsentimentsofunity。(集会上的发言人空泛地呼吁...

新款Unity房车,3.0T+7AT动力猛,2个客厅和家一样
答:以往我们介绍过不少基于奔驰底盘打造的房车,不过这些车型往往都带有浓郁的商务气息,缺少了一款房车应有的“家的温馨”。前不久,德国房车公司Unity发布了一款基于新一代奔驰凌特打造的自行式C型房车,它的内部却带给了我全新的感受,一起来看看吧~作为一款基于奔驰底盘打造的自行式房车,在外观气质上这款...

unity3D怎么使用C#的DLL
答:1) 添加引用关系 如果有对UnityEngine、UnityEditor的引用,需要先添加引用关系。路径通常位于Unity安装目录下的Editor/Data/Managed路径下。2) 生成DLL文件 建立项目时,选择“类库”。目标框架.Net Framework的版本,只能选择3.5及以下版本。3) 在项目中引用DLL文件 Unity会自动加载相应的DLL文件,所以DLL...

本文来自网友【养胁】 发表,对若有侵权或建议请照网页底部电邮联系。网址:https://youxi.xkyn.com/wy-rne9nybbyhy2nhrrrye.htm

相关链接

  • 写作的作意思是什么
    答:作的解释 [zuò ]1.起,兴起,现在起:振~。枪声大~。2.从事,做工:工~。~息。~业。3.举行,进行:~别(分别)。~乱。~案。~战。~报告。4.干出,做出,表现出,制造出:~恶(è)。~弊。~梗。~祟。~态。~色。~为。~难。~奸犯科(为非作歹,触犯法令)。5.当成...
  • 作组词有哪些?
    答:一、作,读音为:zuò,动词意思是:劳动、假装、起、当作、做出、从事某种活动。组词有:作用、作践、作揖、作弊、作梗、作案、单作、作色、作死、做作、作物、作成、作法、作兴、作势、作风、作痛、作速、作陪、作件、作难、习作、夜作、作恶、连作、作祟、操作、作为、振作 二、...
  • 作和做是一个字吗
    答:“作”和“做”这两个常用的词,由于不仅音同,有时意思也相同,或者词义相差甚微,所以在报刊上常被用混淆或混用。因此有必要辨析。“作”常用来表示当作、作为和充当的意思,如作罢、作别、作价、作保、作陪、作依据、作为献礼、过期作废、认贼作父。“作”还常表示从事某种活动的意思,如作...
  • 作和做有什么区别及用法?
    答:请注意后面的3例,多数人都习惯用“作”,而吕先生用“做”。特别是“动词+作(做)”的形式,吕先生写“做”:“叫做(2节)”“分做(38节)”“算做(41节)”“当做(47节)”“看做(72节)”“译做(注9)”等。可是在同样的情况下,我们也发现了两个字混用的现象,例如: 有时候一个介词带上一个名词可以做...
  • 作还是作?
    答:作重要讲话。“做”是“作”的后起字(凡是“做”其实都可以用“作”代替)。在“制作”“从事某种活动”等义项上与“作”通用。但在现实应用中已逐渐分化:“作”多用于抽象对象或不产生实物的活动,动作性较弱;“做”侧重于具体对象或产生实物的活动,动作性较强。讲话不产生实物,综上所述,...
  • 作的四字词语
    答:作的四字词语 :装腔作势、自作自受、装模作样、著作等身、矫揉造作、忸怩作态、始作俑者、一鼓作气、以身作则
  • “做”和“作”的区别?
    答:“做”和“作”的区别为:意思不同、侧重点不同、写法不同。一、意思不同 1、做:进行工作或活动:做活。做事。做工。做手脚(暗中进行安排)。2、作:干出,做出,表现出,制造出:作恶(è)。作弊。作梗。作祟。作态。二、侧重点不同 1、做:“做”所连接的多数都是中性事物。2、作:...
  • 做和作的用法区别
    答:“作”和“做”这两个常用的词,由于不仅音同,有时意思也相同,或者词义相差甚微,所以在报刊上常被用混淆或混用。因此有必要辨析。“作”常用来表示当作、作为和充当的意思,如作罢、作别、作价、作保、作陪、作依据、作为献礼、过期作废、认贼作父。“作”还常表示从事某种活动的意思,如作...
  • “做”和“作”的区别、用法?“做出”和“作出”的区别?
    答:“做”的用法:表示从事某种工作或活动,如做工、做法。表示制作和制造的意思,如做衣服、做家具。“作”的用法:表示当作、作为和充当的意思,如作罢、作别。表示从事某种活动的意思,如作案、作恶。“做”和“作”的区别为:意思不同、写法不同。一、意思不同 1、做:表示举行、举办和用做、...
  • 做和作是什么意思?
    答:“做”和“作”的区别为:意思不同、侧重点不同、写法不同。一、意思不同 1、做:进行工作或活动:做活。做事。做工。做手脚(暗中进行安排)。2、作:干出,做出,表现出,制造出:作恶(è)。作弊。作梗。作祟。作态。二、侧重点不同 1、做:“做”所连接的多数都是中性事物。2、作:...
  • 星空游戏网特别说明:本站文章来自互联网交流,仅供参考,并不代表本站对其准确性和真实性作任何担保
    © 星空游戏网 联系邮箱:电邮