Unity如何实现射击小游戏
Unity如何实现射击小游戏
这篇文章主要为大家展示了“Unity如何实现射击小游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unity如何实现射击小游戏”这篇文章吧。
游戏画面展示
这款小游戏只用了两个UI界面,一个是菜单界面,另一个是战斗界面
菜单界面有三种模式,分别是一般、困难和地狱
战斗界面就是很简单的从两边刷野怪,然后主角开枪打死他们
UI搭建很简单,只有一张背景图使用Image,加上一个Text文本输入框,然后摆放一下位置即可!
菜单界面如下
战斗画面演示
游戏代码解析
这款横版2D射击小游戏,核心部分只需要 两个脚本 就可以完成,一学就会,一起来看一下代码吧!
一个挂载到玩家身上的脚本PlayerMove,用于控制玩家的左右移动和跳跃
还有两种开枪的方法,分别是穿透和重击!当碰到怪物的时候就会掉血
当玩家血量低于0 的时候就跳出 游戏结束 的画面,非常简单清晰的逻辑!
代码如下,一个没有多少行,代码内容也是Unity最基础的知识点,相信稍微懂一点的人也都能看懂
PlayerMove代码如下
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassPlayerMove:MonoBehaviour{///<summary>///生命值///</summary>publicintHP;publicSliderhpUI;///<summary>///动画组建///</summary>publicAnimator_animator;///<summary>///击杀///</summary>publicstaticintjisha;publicTextjishaUI;publicTextjishaUIEnd;///<summary>///是否跳跃///</summary>publicboolisJump;///<summary>///游戏结束UI///</summary>publicGameObjectui;//UsethisforinitializationvoidStart(){Time.timeScale=1;jisha=0;hpUI.maxValue=HP;hpUI.value=HP;}//UpdateiscalledonceperframevoidUpdate(){if(Input.GetKeyDown(KeyCode.Escape)){UnityEngine.SceneManagement.SceneManager.LoadScene("Menu");}if(HP<=0){HP=0;}jishaUI.text="击杀:"+jisha;jishaUIEnd.text="击杀:"+jisha;if(HP==0){ui.SetActive(true);Time.timeScale=0;}hpUI.transform.position=Camera.main.WorldToScreenPoint(transform.position+newVector3(0,3,0));hpUI.value=HP;if(Input.GetKey(KeyCode.D)){transform.localEulerAngles=newVector3(0,0,0);transform.Translate(Vector3.right*Time.deltaTime*7);_animator.SetBool("run",true);}elseif(Input.GetKey(KeyCode.A)){transform.localEulerAngles=newVector3(0,180,0);transform.Translate(Vector3.right*Time.deltaTime*7);_animator.SetBool("run",true);}else{_animator.SetBool("run",false);}if(Input.GetKeyDown(KeyCode.Space)&&!isJump){GetComponent<Rigidbody2D>().velocity=newVector2(0,30);}if(isJump){_animator.SetBool("Jump",true);}else{_animator.SetBool("Jump",false);}if(Input.GetKeyDown(KeyCode.J)){GameObjectn=Instantiate(Resources.Load("a1"),transform.GetChild(0).position,transform.GetChild(0).rotation)asGameObject;n.name="a1";Destroy(n,2);}if(Input.GetKeyDown(KeyCode.K)){GameObjectn=Instantiate(Resources.Load("a2"),transform.GetChild(0).position,transform.GetChild(0).rotation)asGameObject;n.name="a2";Destroy(n,2);}}privatevoidOnTriggerStay2D(Collider2Dcollision){if(collision.name=="0"){isJump=false;}}privatevoidOnTriggerExit2D(Collider2Dcollision){if(collision.name=="0"){isJump=true;}}publicvoidReturnMenu(){UnityEngine.SceneManagement.SceneManager.LoadScene("Menu");}}
还有一个Monster脚本,用于显示怪物的生命、速度和攻击力等
还有受到玩家打出的子弹就会掉血,很简单的方法就可以实现!
完整代码如下:
usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;usingUnityEngine.UI;publicclassMonster:MonoBehaviour{///<summary>///生命///</summary>publicintHP;///<summary>///速度///</summary>publicfloatspeed;///<summary>///攻击力///</summary>publicintatt;publicSliderhpUI;//UsethisforinitializationvoidStart(){speed=Random.RandomRange(speed-2,speed+2);Destroy(gameObject,10);GameObjectn=Instantiate(Resources.Load("HP"))asGameObject;n.transform.SetParent(GameObject.Find("HPShow").transform);n.transform.localScale=Vector3.one;hpUI=n.GetComponent<Slider>();hpUI.maxValue=HP;hpUI.value=HP;}//UpdateiscalledonceperframevoidUpdate(){if(HP<=0){HP=0;PlayerMove.jisha++;Destroy(gameObject);}hpUI.transform.position=Camera.main.WorldToScreenPoint(transform.position+newVector3(0,6,0));hpUI.value=HP;transform.Translate(Vector3.right*Time.deltaTime*speed);}privatevoidOnTriggerEnter2D(Collider2Dcollision){//撞到玩家生命值if(collision.name=="Player"){collision.GetComponent<PlayerMove>().HP-=Random.RandomRange(att-2,att+2);Destroy(gameObject);}//红色子弹伤害低,能够连续穿透射击多个目标if(collision.name=="a1"){HP-=Random.RandomRange(8,15);}//红色子弹伤害高,只能击中一个目标if(collision.name=="a2"){HP-=Random.RandomRange(20,40);Destroy(collision.gameObject);}}privatevoidOnDestroy(){Destroy(hpUI.gameObject);}}
游戏打包
这个小游戏只需要上面两个脚本差不多就算是完成了,然后还可以打包出来到电脑上面玩!
打包这个游戏也很简单,只需要在Build下将下面几个场景添加进去直接Build就好啦!
打包出来的文件夹是这个样子的,然后点击.exe文件就可以直接在电脑上玩了!
以上是“Unity如何实现射击小游戏”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
如何将三个变量放在一个表格中(unity pro xl 如何在硬件中添加变量标签)
unityproxl如何在硬件中添加变量标签?不知道你的变量标签是咋系统设置的,我这边打印出来可变数据标签的话,是会先将标签内...
-
VS Code里如何使用Debugger for Unity插件调试
-
Unity如何实现炸弹人游戏
-
Unity中怎么通过LitJson对JSON数据创建与使用
Unity中怎么通过LitJson对JSON数据创建与使用这篇文章...
-
Unity实现动物识别的代码怎么写
-
怎么用Unity命令行打包WebGL
怎么用Unity命令行打包WebGL本文小编为大家详细介绍“怎么用...
-
如何教训unity与3dmax美工部分的总结
如何教训unity与3dmax美工部分的总结今天给大家介绍一下如何...
-
Unity图形学中的ShaderLab怎么入门
-
Unity怎么实现植物识别
-
Unity渲染管线流程是怎样的