由5.2.1f1升级到5.3.5f1,物理不正常。

最后发现问题出在我的游戏中的下面一段代码:

    Vector2 targetPosition=...;

    Vector2 targetVelocity=...;

    GetComponent<Rigidbody2D> ().MovePosition (targetPosition);
        float mass = GetComponent<Rigidbody2D> ().mass;
        GetComponent<Rigidbody2D> ().AddForce (targetVelocity*mass,ForceMode2D.Impulse);

原来Rigidbody2D.MovePosition的行为在5.2.1f1和5.3.5f1中发生了变化。在5.3.5f1中

MovePosition的实现原理是产生一个在一帧之内由当前位置移动到目标位置的速度,则到下一帧,刚体就会按此速度移动到目标位置了。在5.2.1f1中,当刚体移到目标位置后此速度会被保留,而5.3.5f1中“修正”了这个“bug”,当刚体到达目标位置后,会将刚体的速度恢复为调用MovePosition之前的速度。

但是看来,这样“修正”带来了新的问题,即如果在MovePosition之后立即调用了修改刚体速度的代码,似乎会被覆盖掉。

我目前的避坑办法是将

GetComponent<Rigidbody2D> ().MovePosition (targetPosition);

改成

GetComponent<Rigidbody2D> ().position= targetPosition;

这样就在5.2.1f1和5.3.5f1中都正常了。

参考: http://forum.unity3d.com/threads/5-0-2f-rigidbody2d-moveposition-setting-the-velocity-now.325655/

  

转载于:https://www.cnblogs.com/wantnon/p/5578655.html

unity, 由5.2.1f1升级到5.3.5f1,2d物理不正常解法相关推荐

  1. 2022-05-01 Unity核心3——2D物理系统

    文章目录 一.刚体 Rigid Body 2D 二.碰撞器 Collider 2D 三.物理材质 Material 2D 四.恒定力 Constant Force 2D 五.2D 效应器 Effect ...

  2. Unity核心3——2D物理系统

    一.刚体 Rigid Body 2D ​ 刚体是物理系统中用于帮助我们进行模拟物理碰撞中力的效果的 ​ 2D 物理系统中的刚体和 3D 中的刚体基本是一样的,最大的区别是对象只会在 XY 平面中移动, ...

  3. Unity TA总监王靖:Unity如何实现美术画质升级?

    10月9日,中国 Unity 线上技术大会的直播中,担任Unity中国区的技术美术总监王靖,为我们分享了游戏画质的提升之路. 以下是演讲实录: 大家晚上!我是王靖,目前在Unity担任中国区的技术美术 ...

  4. Unity 内置管线Shader升级到URP详细手册

    本文转载自:https://www.jianshu.com/p/3fef69e2efb6 作为技术资料记录和备份,避免遗忘或删除 //================以下为具体内容========== ...

  5. unity 5 打包apk 手动升级android sdk 5.0 api 21

    unity5 打包apk需要将安装SDK升级到android sdk 5.0 api 21. 国内使用SDK Manager.exe更新不了,于是下载sdk包手动更新到sdk 5.0. 下载下面几个包 ...

  6. 《Unity 4 3D开发实战详解》一6.7 物理引擎综合案例

    本节书摘来异步社区<Unity 4 3D开发实战详解>一书中的第6章,第6.7节,作者: 吴亚峰 , 杜化美 , 张月霞 , 索依娜 责编: 张涛,更多章节内容可以访问云栖社区" ...

  7. unity 角度限制_喵的Unity游戏开发之路 推球:游戏中的物理

    前言很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本 ...

  8. unity技美27——优化项目内美术3D,2D等资源,详解unity打包体的潜规则与案例

    很多朋友美术朋友在面试中经常会被问到一类问题,就是怎么优化你的美术资源. 当我们不熟练使用unity,以级不懂得unity的潜规则时,美术能做到的仅仅是: 1优化模型面数.或者用次世代的方式制作法线贴 ...

  9. 喵的Unity游戏开发之路 - 推球:游戏中的物理

    很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...

最新文章

  1. iPhone开发技巧之工具篇(4)--- 使用afconvert转换WAV文件
  2. java hdfs创建文件_使用HDFS java api 创建文件出错。
  3. 深入解析Linux中的fork函数
  4. Intel汇编语言程序设计学习-第六章 条件处理-中
  5. 计算机的启动过程———《x86汇编语言:从实模式到保护模式》读书笔记补遗01
  6. java单例代码_java中的单例模式的代码怎么写
  7. 一文教你使用java开发一款推箱子游戏
  8. c fscanf 按行读取文件_每日干货丨C语言文件操作函数
  9. Linux下硬盘性能测试
  10. Bailian2899 Bailian3242 矩阵交换行【矩阵】
  11. SPSS描述性统计(图文+数据集)【SPSS 014期】
  12. Informatic学习总结_day03_update组件学习
  13. SitePoint播客#23:Jeff Veen的网络字体
  14. EPP (Enhanced Parallel Port 增强型并口)
  15. HTML语言中表格怎么弄,html语言中table表格内怎么换行
  16. 随笔-不足与外人道也
  17. 红绿灯交通标志机动车行人数据集
  18. ReportStudio入门教程(七十一) - 显示时间进度(文字版)
  19. signature=380a93506de0770df7f70be8ab125a07,Donato Attanasio, Mauro Brilli Neil Ogle,
  20. 如何判断一笔交易是否属于欺诈 数据挖掘算法与现实生活中的应用案例

热门文章

  1. Hibernate4一对多关系映射
  2. sql复杂查询语句总结
  3. OD使用教程 调试篇
  4. 大型网站核心架构要素--扩展性
  5. ARM汇编:加载和存储指令集(六大类)---LDR(ADR)、LDRB、LDRH、STR、STRB、STRH
  6. 前端二十九:两个盒子居中的练习
  7. javascript - 全局与局部作用域
  8. Android adb你真的会用吗?
  9. mycat快速体验(转)
  10. 做好信息安全 必须打造良好的企业安全文化