当前位置: 首页 > news >正文

建设银行报考网站品牌加盟最好的网站建设

建设银行报考网站,品牌加盟最好的网站建设,wordpress菜单 标题属性,布吉做棋牌网站建设哪家服务好文章目录 介绍一#xff0c;制作玩家具体函数脚本PlayerCharacter三、 制作玩家控制脚本 PlayerController#xff0c;调用上面的函数方法四、 制作子弹脚本 shell五、 给玩家挂载脚本六、 制作坦克脚本七、 给坦克添加组件八、 开始游戏#xff0c;播放动画九、 下载 介绍 … 文章目录 介绍一制作玩家具体函数脚本PlayerCharacter三、 制作玩家控制脚本 PlayerController调用上面的函数方法四、 制作子弹脚本 shell五、 给玩家挂载脚本六、 制作坦克脚本七、 给坦克添加组件八、 开始游戏播放动画九、 下载 介绍 3d游戏。 玩家自由移动。 持枪发射子弹。 随机生成的坦克追踪玩家。 坦克发射子弹攻击玩家。 hp归零死亡 一制作玩家具体函数脚本PlayerCharacter 设置float移动速度、转动速度、子弹发射速度、现在生命值、最大生命值、两次攻击时间间隔。 设置bool是否正在攻击、是否死亡 其他组件角色控制器、生命值滑动条、最大生命值颜色绿色、最小生命值颜色红色、音频源、动画器、粒子系统 等 public float speed; public float turnSpeed; public float health; public float attackTime; public float health; float healthMax;bool isAlive; bool attacking false;CharacterController cc; Animator animator; public Slider healthSlider; public Image healthFillImage; public Color healthColorFull Color.green; public Color HealthColorNull Color.red;public ParticleSystem explosionParticles; public Rigidbody shell; public Transform muzzle; start方法获取动画器、角色控制器、生命值最大化、bool设置活着、更新血条滑块、死亡爆炸效果设置为不可见。animator GetComponentInChildrenAnimator();cc GetComponentCharacterController();healthMax health;isAlive true;RefreshHealthHUD();explosionParticles.gameObject.SetActive(false);玩家被攻击生命值减少amount更新血条如果生命值小于零死亡public void TakeDamage(float amount){health - amount;RefreshHealthHUD();if (health 0f isAlive){Death();}}更新血条滑块的value值更新一次血条由100%的绿色变成百分之health / healthMax的绿色。public void RefreshHealthHUD(){healthSlider.value health;healthFillImage.color Color.Lerp(HealthColorNull, healthColorFull, health / healthMax);}死亡角色是否活着设置为否播放粒子特效当粒子系统的持续时间结束后粒子系统对象就会被销毁设置玩家为不可见。public void Death(){isAlive false;explosionParticles.transform.parent null;explosionParticles.gameObject.SetActive(true);ParticleSystem.MainModule mainModule explosionParticles.main;Destroy(explosionParticles.gameObject, mainModule.duration);gameObject.SetActive(false);}角色移动传入一个向量值必须在活着、没有攻击才能移动。 角色控制器使用simplemove函数移动的时候控制“speed”动画开始播放public void Move(Vector3 v){if (!isAlive) return;if (attacking) return;Vector3 movement v * speed;cc.SimpleMove(movement);if(animator){animator.SetFloat(Speed, cc.velocity.magnitude);}}人物旋转函数玩家往哪里跑角色人物头就转向哪里 设置目标位置、当前位置 四元数转向 使用球面插值平滑转动public void Rotate(Vector3 lookDir){var targetPos transform.position lookDir;var characterPos transform.position;//去除Y轴影响characterPos.y 0;targetPos.y 0;//角色面朝目标的向量Vector3 faceToDir targetPos - characterPos;//角色面朝目标方向的四元数Quaternion faceToQuat Quaternion.LookRotation(faceToDir);//球面插值Quaternion slerp Quaternion.Slerp(transform.rotation, faceToQuat, turnSpeed * Time.deltaTime);transform.rotation slerp;}开火脚本 必须活着、不正在开火才能调用 生成一个子弹刚体玩家自身位置枪口方向转向设置发射速度 播放开火音效 动画器播放开火动作 延迟attachtime发射一次设置发射频率public void Fire(){if (!isAlive) return;if (attacking) return;Rigidbody shellInstance Instantiate(shell, muzzle.position, muzzle.rotation) as Rigidbody;shellInstance.velocity launchForce * muzzle.forward;shootAudioSource.Play();if(animator){animator.SetTrigger(Attack);}attacking true;Invoke(RefreshAttack, attackTime);} 发射时间间隔脚本时间未到不能发射void RefreshAttack(){attacking false;}三、 制作玩家控制脚本 PlayerController调用上面的函数方法 start方法获取角色控制器void Start (){character GetComponentPlayerCharacter();}固定帧数刷新。 鼠标左键调用点击开火函数 键盘wsad控制人物移动 人物移动的方向和人物转向的方向保持一致void FixedUpdate(){if (Input.GetButtonDown(Fire1)){character.Fire();}var h Input.GetAxis(Horizontal);var v Input.GetAxis(Vertical);character.Move(new Vector3(h, 0, v));var lookDir Vector3.forward * v Vector3.right * h;if (lookDir.magnitude ! 0){character.Rotate(lookDir);}}四、 制作子弹脚本 shell 设置float参数子弹生存时间、爆炸半径、爆炸力量、最大伤害设置bool参数子弹是否正在旋转设置其他音频源、层级、粒子系统public float lifeTimeMax 2f;public AudioSource explosionAudioSource;public ParticleSystem explosionParticles;public float explosionRadius;public float explosionForce 1000f;public float damageMax 100f;public LayerMask damageMask;public bool isRotate false;start方法添加扭矩模拟子弹旋转 void Start (){if(isRotate){GetComponentRigidbody().AddTorque(transform.right * 1000);}}触发器碰撞检测 在当前游戏对象的位置上创建一个球形的检测区域并检测该区域内是否有与指定层级damageMask匹配的碰撞器colliders。如果有则返回一个碰撞器数组Collider[]其中包含了所有与当前游戏对象在指定半径explosionRadius内发生碰撞的游戏对象的碰撞器。通常用于实现爆炸伤害、碰撞检测等功能。 遍历数组计算伤害 播放粒子特效private void OnTriggerEnter(Collider other){Collider[] colliders Physics.OverlapSphere(transform.position, explosionRadius, damageMask);foreach(var collider in colliders){var targetCharacter collider.GetComponentPlayerCharacter();if (targetCharacter){targetCharacter.TakeDamage(CalculateDamage(collider.transform.position));}}explosionParticles.transform.parent null;explosionAudioSource.Play();explosionParticles.Play();ParticleSystem.MainModule mainModule explosionParticles.main;// Destroy(explosionParticles.gameObject, mainModule.duration);Destroy(gameObject);} 计算伤害传入向量值 距离越小伤害比例越大 设置最低伤害Mathf.Max函数最低伤害为2float CalculateDamage(Vector3 targetPosition){var distance (targetPosition - transform.position).magnitude;//距离越小伤害比例越大var damageModify (explosionRadius - distance) / explosionRadius;var damage damageModify * damageMax;return Mathf.Max(2f, damage);}五、 给玩家挂载脚本 设置参数添加预制体子弹 六、 制作坦克脚本 设置导航网格、play对象NavMeshAgent agent;PlayerCharacter character;Transform targetTrans;start函数获取玩家实例 导航网格寻找玩家 延迟1秒后每隔三秒发射一次子弹void Start (){character GetComponentPlayerCharacter();agent GetComponentNavMeshAgent();targetTrans GameObject.FindGameObjectWithTag(Player).transform;InvokeRepeating(FireControl, 1, 3);}开火控制函数调用共同使用的fire方法。void FireControl(){character.Fire();} update函数不断追踪玩家的位置 转向玩家void Update (){agent.destination targetTrans.position;transform.LookAt(targetTrans);}七、 给坦克添加组件 八、 开始游戏播放动画 人物移动、坦克移动 九、 下载 https://pan.baidu.com/s/1RVemZY_THhhpD0v_IcQS2w 提取码tdq9
http://www.ho-use.cn/article/10822337.html

相关文章:

  • 小白网站搭建教程河北建设人才网官网
  • 深圳外贸网站制作公司石景山 网站建设
  • 内江规划建设教育网站网站微信支付申请流程
  • 长春火车站到吉大二院wordpress 获取当前自定义分类
  • 做的网站怎样评估价值朗域装饰口碑怎么样
  • 省交通建设质安监督局网站网站建设常用模板
  • 网站内搜索wordpress图片位置
  • 杭州网络公司做网站报价企业展厅装修
  • react.js做的网站网络推广的主要工作内容
  • 宣传片素材网站造价员证在哪个网站上查询
  • 如何用frontpage2003做网站手机商城oppo
  • 网站分几种广州网站开发多少钱
  • 网站建设 核算哪些平台可以免费推广
  • 网站建设三站合一微信小程序茶叶网站设计
  • 网站设计技术文章湘潭网站建设 技精磐石网络
  • 如何在网站页面添加代码网站建设毕业设计 任务书
  • 网站建设教程照片建立小程序需要多少钱
  • 做网站,就上凡科建站做外汇 虚拟网站
  • 企业网站建设服务深汕特别合作区招聘
  • 如何让建设一个简单的网站南宁哪里做网站
  • 中国空间站对接成功网站微信支付怎么做
  • 关于建设单位网站的方案泰安房产中介公司
  • 大兴网站建设费用外贸建站用的服务器
  • 麻城网站建设公司国内新闻摘抄2023
  • 东莞市工程建设中心苏州百度seo
  • 东营网站开发招聘手机必备20个软件
  • 贵州网站开发哪家便宜做爰的网站
  • 找小程序开发公司网站在线优化检测
  • 可信网站认证的区别广东专业企业网站建设
  • 网站设计建设公司联系方式手机网站在线咨询代码