- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个具有刚体的游戏对象,然后是一组带有 Sprite 和碰撞器的子游戏对象,其中每个碰撞器都附加到父级的刚体。这适用于物理和碰撞,因为整个对象组将从场景中反弹和碰撞。但是,当两组发生碰撞时,我希望它们对单个子游戏对象之一造成伤害。我在每个子对象(上面有对撞机)上都有一个 OnCollisionEnter2D(Collision2D coll) 但是,当它们使用 coll.gameObject 与另一个组发生碰撞时,返回的游戏对象始终是父对象而不是单个子对象。
长话短说:有什么办法可以获取一个collider的游戏对象,当它附加到另一个具有刚体的游戏对象时?
注意:我见过一些使用光线转换来查找对象的解决方案,但这似乎有很多不必要的工作。
注意 2:我也见过使用触发器的选项,但我更喜欢碰撞,因为它也处理物理。
private void OnCollisionEnter2D(Collision2D coll)
{
Debug.Log(coll.gameObject.name); // Showing the parent
ShipPiece sp = coll.gameObject.GetComponent<Piece>(); // Looking for the individual piece
if (sp != null)
{
// Apply the damage to the other piece based off the weight of this piece
coll.gameObject.SendMessage("ApplyDamage", weight*10);
}
}
显然我可以在碰撞中找到第一个 Piece,因为它是 OnCollisionEnter2D 所在的类,但是我想不出一种方法来获得它碰撞到的第二个 Piece。
最佳答案
当您真正想要 Collider2D 的
本身。 gameObject
属性时,您正试图获取 Collision2D
对象的 gameObject
属性Collision2D
具有您可以使用的 collider
和 otherCollider
属性:
private void OnCollisionEnter2D(Collision2D coll)
{
Debug.Log(coll.collider.gameObject.name);
Debug.Log(coll.otherCollider.gameObject.name);
...
}
关于c# - 当它附加到刚体时获取统一对撞机的游戏对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137327/
我正在尝试制作一款基本游戏,在该游戏中,玩家通过击中一个物体而失去生命。按照我编写代码的方式,每次对象和玩家接触时都会发生这种情况。我希望玩家只失去一条生命,而不是全部。知道如何解决吗?谢谢 vo
我想做一些实时声音处理,我听说了 supercollider 它看起来不错,但我想坚持使用 python,因为“正常”编程是个问题。 有什么方法可以将 python 脚本作为模块加载到 superco
我是一名优秀的程序员,十分优秀!