【发布时间】:2018-01-25 08:18:25
【问题描述】:
我正在开发一款游戏并使用新的 Tilemap 功能。到目前为止,他们的工作非常出色。很容易掀起一个水平。但是,在瓷砖地图对撞机上反射激光时,我遇到了问题。正如您在下面的 GIF 中看到的,前几束激光反射良好,但有时在对撞机相遇的小裂缝中,我的激光会出现不良行为。
激光由一个小的颗粒精灵渲染器对象组成,后面有一个用于颜色的轨迹渲染器和一个圆形碰撞器。
这是我的碰撞代码。其中direction 是Vector2 类变量,rb 是隐藏在Start() 函数中的GameObject 的RigidBody2D 组件。
if (collision.collider.gameObject.layer == LayerMask.NameToLayer ("Terrain")) {
direction = Vector2.Reflect (direction, collision.contacts[0].normal);
rb.velocity = direction.normalized*GameManager.instance.bouncySpeed;
}
我可以采取哪些措施来避免这种行为?
【问题讨论】:
-
您是否尝试过在您的 IF 上放置一个 ELSE 并在那里放置一个日志以查看条件是否返回 false(除了 Terrain 之外的其他图层)?
标签: unity3d unity5 unity3d-2dtools