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

重庆建站培训专业的网站建设网络

重庆建站培训,专业的网站建设网络,广州wap网站建设,wordpress程序架构一、声明 只实现物理反弹的效果#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.hkea.cn/news/14303362/

相关文章:

  • 让别人做网站怎样才安全大连网站开发公司排名
  • 大连哪里做网站网页小游戏免费
  • 网站服务器速度查询哪个网站可以做兼职ppt模板
  • seo整站优化更能准确获得客户广州网站营销seo费用
  • 哈尔滨手机网站建设价格低环保网站模板代码
  • 做淘客网站注意事项百度开放平台
  • 商品数据包网站开发家具设计软件有哪些
  • 小型网站建设公司价格淮阳网站建设
  • 汕头站扩建进展十大免费cad制图软件
  • 网站开发用到的虚拟机有哪些怎么让客户主动找你
  • 网站嵌入地图长沙商城小程序开发
  • 一个网站源代码概多大yusi主题wordpress
  • 模板网站好还是定制网站好郑州企业网站
  • flashfxp 网站筑建网站
  • 网站建设业务拓展制作h5用什么软件比较好
  • wordpress网站换主题网站设计与网页配色实例精讲pdf
  • 互动型网站新型建筑模板
  • 程序员招聘求职的网站沈阳网站建设哪家便宜
  • ftp空间网站深圳东维亚建设公司
  • 做网站首页与分页什么样子自己建设网站需要些什么
  • 贫困户房屋建设补助在哪个网站公布图片常采用gif或jpeg格式
  • 电子商务网站建设具体方案wordpress 搜索不管用
  • 成都房地产网站建设wordpress 标签选项卡
  • 网站pc转移动端代码建站总结报告
  • 商标购买网站世界互联网峰会视频
  • 温州市建设工程质量监督站网站建设银行的网站特点
  • 辽阳市城市建设档案馆网站网站图片优化大小
  • 威海住房建设部官方网站cn域名著名网站
  • 兴平网站开发百度推广网页版
  • 成品网站w灬源码伊园怎么样可以建设网站