项目里遇到车子在场地漫游的需求,因为要模拟真实物理效果,而且场地里会有上下坡,所以我选择了rigidbody.addforce的移动方法。

但是遇到一些问题 查了api之后才发现这个移动方式需要在FixedUpdate而不是Update里调用,否则只是加一个瞬间的力而不是持续的力。所以最后还是选择了直接给rigidbody.velocity赋值的移动方法。

这个移动方法我遇到的问题是,因为场地里有矮的障碍物,车子如果在撞上障碍物之后还继续强行向前移动的话会行进到障碍物上方,最开始想的解决办法是用空气墙阻止车子开上障碍物,但是空气墙做好了之后又发现车子撞到空气墙之后还强行加速的话,车屁股会翘起来,后退撞上障碍物的话车头会翘起来。后来去问了大佬,给的解决方法是在车子行进过程中给一个向下的力压住车子。这个做好以后原来调好的速度数值也不能用了因为向下加力之后车子跟地面的摩擦力太大了,而且PC端合适的数值导到移动端也又不合适了。然后大佬说可以改变材质球的摩擦力,在车子动的时候把材质球设置为0摩擦的,需要停下来的时候设置为高摩擦的。这样加力就对车子速度没影响。同时解决了车头车屁股翘和pc端手机端移动数据一样效果不一样的问题。

改变材质球摩擦力代码如下

private static PhysicMaterial zeroFrictionMaterial;                //零摩擦材质private static PhysicMaterial highFrictionMaterial;                //高摩擦材质void OnEnable(){if (zeroFrictionMaterial == null){zeroFrictionMaterial = new PhysicMaterial();zeroFrictionMaterial.dynamicFriction = 0f;zeroFrictionMaterial.staticFriction = 0f;zeroFrictionMaterial.frictionCombine = PhysicMaterialCombine.Minimum;zeroFrictionMaterial.bounciness = 0f;zeroFrictionMaterial.bounceCombine = PhysicMaterialCombine.Minimum;}if (highFrictionMaterial == null){highFrictionMaterial = new PhysicMaterial();}}// 物理材质// 设置碰撞器到高摩擦材质public void HighFriction(){capsule.GetComponent<MeshCollider>().material = highFrictionMaterial;}// 设置碰撞器为零摩擦材质public void ZeroFriction(){capsule.GetComponent<MeshCollider>().material = zeroFrictionMaterial;}

unity 物体移动方式的一些笔记相关推荐

  1. unity物体设置透明度_URP自学笔记5. 透明度混合与透明度测试

    1.概述 本节中我们回顾一下两种透明方法,透明度混合与透明度测试.透明度混合用于实现半透明,透明度测试则用于实现消融效果之类"消失"效果. 2.透明度混合 透明度混合是一种混合方式 ...

  2. 《Unity Shader入门精要》笔记:初级篇(2)

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  3. Unity开发基础——使用字符串学习笔记

    蓝鸥Unity开发基础使用字符串学习笔记 本节内容:使用字符串:字符串拼接.转义字符 一.字符串拼接:字符串可以使用+或+=进行字符串拼接!! using System; namespace Less ...

  4. Unity API常用方法和类学习笔记2

    Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...

  5. Unity API常用方法和类学习笔记1

    Unity API常用方法和类学习笔记1 ------主要构架(Unity-Engine.GameObject.Component) 事件 一.事件执行顺序 二.测试代码 using System.C ...

  6. 《Unity Shader入门精要》笔记01 前言

    <Unity Shader入门精要>笔记01 前言 --本系列是基于人民邮电出版社<Unity Shader入门精要>(冯乐乐著 )的自学Unity Shader笔记,如果您发 ...

  7. 《Unity Shader入门精要》笔记:初级篇(1)

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  8. 《Unity Shader入门精要》笔记:高级篇(3)以及扩展

    本篇博客主要为个人学习所编写读书笔记,不用于任何商业用途,以及不允许任何人以任何形式进行转载. 本篇博客会补充一些扩展内容(例如其他博客链接). 本篇博客还会提供一些边读边做的效果截图.文章内所有数学 ...

  9. Unity中旋转方式的探究与对万向节死锁(Gimbal Lock)的理解

    Gimbal Lock Gimbal Lock的原理网上已经有很多资料,详细可以看介绍视频.视频讲到Gimbal Lock的时候提到x,y,z三个坐标轴是有从属关系(hierarchical syst ...

  10. 探索Unity 施加力的方式

    前言 unity 中对物体添加 Rigidbody 组件就可以对物体施加力,本篇文章主要探索unity施加力的方式 自由落体运动 设置刚体组件的参数useGravity = true,此时物体就会受到 ...

最新文章

  1. mysql添加临时索引_mysql创建索引/删除索引操作
  2. windows调用ubuntu下的sublimeText2环境搭建
  3. 傻瓜式Linux之一:系统安装
  4. scala -cp file.jar filename的案例
  5. VMM系列之VMM角色介绍以及创建运行方式账户
  6. svg mysql_SVG 实例
  7. 初学者python笔记(内置函数_2)
  8. postfix+web页面+身份验证
  9. 正点原子Linux开发板实现WiFi开机自动连接
  10. CDMA(Code Division Multiple Access码分多址)
  11. 1.1你是谁?你从哪来?你到哪去? -交给学习来解答
  12. 二次拟合r方_r的平方为什么是R方?
  13. C语言实现简易五子棋
  14. 快捷键:浏览器关闭网页的快捷键,切换网页的快捷键,打开网页的快捷键
  15. 收入结算与提现常见问题( iOS )
  16. PL/SQL破解方法(不需要注册码)
  17. mysql进阶(三)31-43
  18. TOJ 2346.Gauß in Elementary School
  19. Unity5场景应该如何烘焙?
  20. BAT小米奇虎美团迅雷携程等等各大企业校招,笔试面试题。

热门文章

  1. Unity3D开发游戏坦克大战
  2. 【CF335E】 Counting Skyscrapers(期望)
  3. 安全模式解除android,安卓手机进入安全模式之后怎么解除
  4. icinga-cn-1.11.1启动ido2db报错Starting Ido2db
  5. 74HC573芯片简介
  6. 麒麟V10图形界面安装与运行人大金仓数据库
  7. 中南大学官网计算机学院,中南大学
  8. 小散量化炒股记|Python也能量化财务指标!教你用净资产收益率选股!
  9. dec是几进制(oct是几进制)
  10. 使用facebook账号登录