Unity3D教程-实现攻击扣血流程.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实现攻击扣血的流程 这个流程主要实现以下功能:界面上显示玩家当前的总血量,当被其他玩家发射的子弹打中后,会减1格血,血量为0时判定为死亡,会重置玩家的位置到出生点,并且重设血量为最大血量。 实现这个逻辑,分了以下几个步骤。 1.维护玩家血量相关信息。 首先玩家血量要用图形化在界面上显示,首先需要在场景中建立一个GUITexture,这里起名为GUI_heart,来表示当前血量图片。为了控制血量的显示,为GUI_heartf附加了一个控制脚本,名为HeartControl.cs。这个脚本的内容如下: ???? 01using?UnityEngine;02using?System.Collections;03public?class?HeartControl?:?MonoBehaviour?{04????public?Texture2D[]?heartImageArray;05????private?const?int?maxLives?=?5;06????private?static?int?lives?=?maxLives;07????public?static?void?DecreaseLive()08????{09???????lives--;10????????if(lives==0)11????????{12???????????lives=maxLives;13????????????PlayerManager.selfPlayer.position?=?GameObject.Find(SpwanPlayer).transform.position;14????????}15????}16????//?Use?this?for?initialization17????void?Start?()?{18????}19????//?Update?is?called?once?per?frame20????void?Update?()?{21????????if(PlayerManager.selfPlayer!=null)22????????{23???????????guiTexture.enabled?=?true;24????????????guiTexture.texture?=?heartImageArray[lives-1];25????????}26????????else27????????{28???????????guiTexture.enabled?=?false;29????????}30????}31}这里heartImageArray表示不同血量所对应的血量图片,血量用心型图标来显示,5格血就是5颗心。把这个数组声明为public,可以在编辑器中,设置这个数组的尺寸,以及每个入口点所对应的图片,十???方便。 maxLives就是最大血量有5格血,lives是当前人物的血量。 在每帧更新函数Update()中,首先检查当前玩家的变量是否为空,为空可能是因为是Server端,这种情况下就不需要显示血量,因此将图片设为false:guiTexture.enabled?=?false; 如果不为空,那么将根据当前血量的值,把对应数组中的图片赋值给这个guiTexture当前的texture,这样就实现图片随血量值的变化而变化。 这里PlayerManager.selfPlayer中的PlayerManager我自己建立的一个全局的静态类,维护了唯一的静态变量private?static?Transform?_selfplayer,代表客户端所对应的玩家自己。这个类可以被所有脚本所访问,访问起来十分方便,实现如下: ???? 01using?UnityEngine;02using?System.Collections;03using?System;04public?static?class?PlayerManager??{05????private?static?Transform?_selfplayer?=?null;06????????public?static?Transform?selfPlayer07????????{08????????????get09????????????{10????????????????return?_selfplayer;11????????????}12????????????set13

文档评论(0)

wx171113 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档