【问题标题】:CollisionDetection of manual scaling Object (2D) in Unity 5Unity 5中手动缩放对象(2D)的碰撞检测
【发布时间】:2015-10-07 20:08:48
【问题描述】:

游戏概览:

游戏的主角是一个口香糖,它会向任何方向或任何角度抛出一块被称为锚的自己。

在口香糖和它的锚点之间有一个类似线程的连接,称为连接线程对象,其弹性结构是使用 SpringJoin2D 实现的,这使连接线程具有类似弹簧的行为。

为了使连接线程更具动态性,游戏中添加了一种机制,通过在连接线程中与对象碰撞的部分添加新锚点来分割连接线程游戏环境。换句话说,每当一个对象碰到连接线程时,就会在碰撞点中添加一个静态锚。

主要问题:

连接线程对象在脚本中手动缩放和定位,导致碰撞检测系统(Box2D)功能障碍,无法正确检测到碰撞点。

使用方法:

boxCollider / EdgeCollider -> 缩放时功能失调

RayCast2D / LineCast2D -> 中间锚点高速进入环境对象

子对象中的静态boxcollider2D,大小为连接线程对象的最大长度-> [尚未实现]

有什么办法解决这个问题吗?

【问题讨论】:

    标签: c# unity3d collision-detection game-physics


    【解决方案1】:

    据我所知,对于运动学对象,您只能拥有仅返回碰撞器而不返回碰撞信息的触发事件。

    我认为您可以尝试使用触发器检查碰撞,然后在 8 个方向进行循环扫描测试,例如搜索碰撞并使用 raycasthit2D 接收信息。扫描测试将返回一个 raycasthit2D,它有一个可以使用的“点”成员。

    点击此链接 -

    统一手册 http://docs.unity3d.com/ScriptReference/Physics2D.CircleCast.html

    Capsule 和 Sphere Cast 的工作原理(与圆形投射相同,但在 3D 中) https://www.youtube.com/watch?v=D1xqen8uH64

    希望我能很好地解释自己。祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      相关资源
      最近更新 更多