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

新遵义吧网站优化升级怎么做

新遵义吧,网站优化升级怎么做,企业网站多少钱,工作人员回应游客扔免费午餐一、声明 只实现物理反弹的效果#xff0c;不实现蹦床会有的视觉拉伸效果#xff0c;请自行找相关代码 二、实现 经过我的实践#xff0c;我发现要想实现一个平台反弹的效果#xff0c;要么就选择给player添加一个物理材质#xff08;平台加了没用#xff09;#xff0…一、声明 只实现物理反弹的效果不实现蹦床会有的视觉拉伸效果请自行找相关代码 二、实现 经过我的实践我发现要想实现一个平台反弹的效果要么就选择给player添加一个物理材质平台加了没用 但是这样会造成一个问题如果我们要弄一个3d控制器的游戏那么没理由让玩家什么情况下都要弹起来吧。 2.1 老手操作 因此参考这篇优质文章https://blog.csdn.net/LLLLL__/article/details/117266549 我们可以给玩家移动代码中添加如下的代码 注意 应避免使用contacts[0]因为它会产生内存垃圾。改用 GetContact 或 GetContacts即other.GetContact(0).normal private Vector3 lastDir;private void LateUpdate(){lastDir rb.velocity;}private void OnCollisionEnter(Collision other){if (other.gameObject.tag Wall){Vector3 reflexAngle Vector3.Reflect(lastDir, other.contacts[0].normal);rb.velocity reflexAngle.normalized * lastDir.magnitude;}}2.2 新手操作 下面的选择则是挂载到我们的平台上。 注意 playerRigidbody是在OnCollisionEnter方法中声明的因此它的作用范围仅限于OnCollisionEnter方法这会导致编译错误。 要解决这个问题可以将playerRigidbody声明为类级别的字段以便在整个类中都能访问它。 同时还需要在OnCollisionEnter方法中获取到playerRigidbody。 using UnityEngine;public class Bounch_Platform : MonoBehaviour {private Vector3 lastDir;private Rigidbody playerRigidbody; // 声明为类级别字段private void OnCollisionEnter(Collision other){// 检测是否碰到了玩家假设玩家有一个标签为 Playerif (other.gameObject.CompareTag(Player)){playerRigidbody other.gameObject.GetComponentRigidbody(); // 获取玩家的刚体if (playerRigidbody ! null){Vector3 reflexAngle Vector3.Reflect(lastDir, other.GetContact(0).normal);// 应用反射角度来实现弹跳playerRigidbody.velocity reflexAngle.normalized * lastDir.magnitude;}}}private void LateUpdate(){if (playerRigidbody ! null){lastDir playerRigidbody.velocity;}} } 三、额外注意事项 3.1 使用触发事件的问题 注意碰撞体Collider和碰撞Collision不是同一个东西有些人可能会考虑使用触发事件假设已经点了is trigger去完成这个反弹效果。但是请注意了如果在unity中的实现如果分开碰撞体和刚体组件就会造成这个触发问题如下图 Tip 我们实现物理移动rigidbody组件是一定要选择跟我们的脚本挂载到同一个游戏对象碰撞体在什么位置反而无所谓只是不要想着可以通过GetComponentInChildren或GetComponentInParent取巧解决上面的结构问题这样会造成不必要的工作量。 3.2 老手和新手操作的区别点 游戏是由事件驱动的比如OnCollisionEnter和OnTriggerEnter对涉及到碰撞的事件可以通过以下两种方法实现 玩家触发通过对tag的识别更好的理解就是我碰到小明所以小明叫了我物体自身触发事件也是对tag的识别但是由物体自己主导可以理解成小明被我碰到了所以叫了我 老手的操作并不代表这一定好只是这样更适合更加小型的项目更方便我们聚合tag在一起而如果我们选择把一个物体当成一个模块意味着可以复用这些类型的预制体。 一旦使用老手的操作如果遇到需要改动或者弃用某些对象可能会影响到相关的事件的判断而且unity也对tags改名操作和弃用操作也不智能选择新手的方式无疑更好。 四、最终效果
http://www.dnsts.com.cn/news/211191.html

相关文章:

  • 浙江建设职业技术学院网站网站维护服务费
  • 无法打开服务器上的网站网络设计是什么工作
  • 湖北营销型网站建设费用平面设计软件排行
  • 哪个网站可以查蛋白互做wordpress 商品展示插件
  • 外贸网站推广与优化做好一个网站需要多久
  • 本地网站开发如何设计网站后台
  • 做导航网站有发展吗wordpress yahoo主题
  • ai软件网站自动seo
  • 高密住房和城乡建设局网站wordpress 主题 mirana免费下载
  • windows做网站的工具合肥网站搜索引擎优化
  • 访问网站慢做游戏交易网站有哪些
  • asp.net获取网站的域名微信营销推广方案
  • 关于网站策划的文章网站建设的公司如何寻找客户
  • 徐州网站建设92素材网
  • 网站建设设计平台网页设计与制作考试试题及答案06386
  • 苏州 网站的公司附近哪里需要招人
  • 大型服装商城网站建设常州建站服务
  • 学网站建设好么网页游戏排行2020前十名
  • 怎么才能建立自己的网站啊wordpress利用视频引流
  • 海南学校网站建设wordpress开源可视化编辑
  • 网站建设的因素wordpress如何秒开
  • 网站建设明细报价表仅供参考如何搜索关键词热度
  • 深圳本地网站建设加强公司网站建设
  • 网站引流怎么做的东莞外发加工货源网
  • 可以打开所有网站的浏览器网站建设都包括哪些内容
  • 首饰网站建设WordPress超级链接不跳转
  • 汽车之家车报价大全温州seo网络推广代理价格
  • 辽宁旅游网站开发山西省建设厅网站官网
  • 建设 互动 网站 模式weixinqqcom微信官网
  • 南昌网站建设哪家强贵州专业网站建设