• unity 对于对象刚体不断抖动的处理


      在2d unity中,给对象增加碰撞体以后,有时候会出现当前测试的物体移动时,撞到其他碰撞体上歪倒的情况。遇到此情况,首先先检查一下两个碰撞双方的碰撞范围是否正常,其次考虑修改碰撞方式。

      常规代码都是使用transform组件下的坐标来进行移动。刚体用这种方式移动时,每次命令物体移动,都会先进行移动判定,玩家操作的物体挤入另一刚体,然后判定已经进入了刚体的碰撞体范围,随即退出,造成不断抖动的现象。

    解决方法是在代码中写坐标移动函数时,改为使用刚体的坐标移动判定。

    脚本内类先声明一个Rigidbody2D rigidbody2d;  start()中获取当前对象的刚体组件

    rigidbody2d=getComponentt(Rigidbody2D>();

    假设玩家是算出移动的向量position后加到transform.position中,

    Vector2 position=.....
    transform.position=position;

    那么改为rightBody.position=position即可

     此外,为了保证物理计算间隔稳定,可以考虑把坐标移动的代码放在fixedUpdate()函数

    fixedUpdate  固定时间更新  与普通的Update相比,它更新的时间间隔相同,默认0.02ms

    (其他的代码,比如输入检测,建议放到Update函数就行,因为一般电脑的性能跑帧数会大于50帧,除非你的电脑性能太差)

    另:伪透视,指的是模仿人眼效果对物体间遮罩进行处理,比如人站在树前时应该遮住树,站在树后时应该被树遮住。这个在unity中修改一下设置即可,实际上就是依赖y值进行判定。如果需要的话可以把中心点priot调整到底部。

  • 相关阅读:
    查看JVM使用的默认的垃圾收集器
    生产环境mysql的参数设置不一样,好好的程序,又出错
    伤秦姝行
    《道德经》全文——马王堆出土帛书版
    100篇锻炼口才表达能力的绕口令
    《道德经》部分
    40篇英语短文搞定3500个单词
    python浮点数与整数间的转化
    理解微积分
    matlab判断某个变量是否存在
  • 原文地址:https://www.cnblogs.com/namezhyp/p/16251821.html
Copyright © 2020-2023  润新知