想用:
Physics.IgnoreCollision(gameObject.GetComponent<Collider2D>(), enemy.GetComponent<Collider2D>(), true); // где gameObject - это игрок, а enemy противник при столкновении.
该代码不起作用,因为我对 3D 空间的理解。
如何让玩家在碰撞期间不对敌人做出反应并且不旋转玩家,如何禁用此物理
想用:
Physics.IgnoreCollision(gameObject.GetComponent<Collider2D>(), enemy.GetComponent<Collider2D>(), true); // где gameObject - это игрок, а enemy противник при столкновении.
该代码不起作用,因为我对 3D 空间的理解。
如何让玩家在碰撞期间不对敌人做出反应并且不旋转玩家,如何禁用此物理
我不知道这有多合理,但到目前为止我还没有找到另一种解决方案:
1) 我在刚体组件中将质量属性设置为 0.0001,因为不可能设置得更少,所以我将设置为零,然后公式将不起作用。事实上,身体仍然会移动,直到它被注意到,但后来我认为它会,因此:
2)在播放器的Update方法中,简单地做了一些事情,每次运行该方法(帧/秒),它的Rotate被不断设置:
如果有更聪明的方法,请告诉我很有趣。
只是我有一个想法,每秒访问一个对象 60 次是昂贵的,也许值得做一个条件,然后处理器就不必做额外的工作。
对于 2D 空间,您可以使用: public static void IgnoreCollision(Collider2D collider1, Collider2D collider2, bool ignore = true);