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如何实现射击小游戏”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2022-03-18 22:52:09
收藏
分享
海报
0 条评论
34
上一篇:如何实现redis数据一致性 下一篇:python使用数字与字符串方法技巧有哪些
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码