有没有办法让一个 Hitbox 忽略另一个?
Is there a way to make a hitbox ignore another one?
我正在创建一款基于《天际》和《荣耀战魂》战斗的多人第一人称中世纪格斗游戏,有 3 种不同的姿态。在其中,你可以从3种姿势进行攻击,如果对手没有保持相同的姿势,他就会进行攻击,否则他会招架并且攻击者会快速眩晕。
当 Sword 的 Hitbox 击中玩家自己的 Hitbox 时,问题就开始了,导致了不希望的结果。
所以我想知道有没有办法让玩家的剑无视与玩家自身的碰撞,让玩家无法攻击自己。
我也试过放方法:Physics.IgnoreCollision(collider, selfCollider);在 OnTriggerEnter() 函数、Start() 和 Update() 中,没有解决方案。
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Enemy" || other.gameObject.tag == "Player")
{
//instant enemy combat
CombatManager enemy = other.gameObject.GetComponentInChildren<CombatManager>();
Debug.Log(enemy.currentStance);
//If enemy stance is not the same of the attacker
if(enemy.currentStance != this.currentStance)
{
//enemy is damaged
//Get enemy LifeManager and subtract its health
enemy.GetComponentInParent<LifeManager>().currentHealth -= swordDamage;
}
else
{
anim.SetTrigger("Parried");
}
}
尝试:
if(other.transform.root != transform.root)
{
// NOT self collision
}
这主要是检查两个对象是否属于同一层次结构。换句话说,如果他们有相同的 top-most GameObject 或 root.
显然,我对您的玩家头像是如何被操纵的做出了一些假设。也许您需要调整此解决方案以适合您的层次结构。
我正在创建一款基于《天际》和《荣耀战魂》战斗的多人第一人称中世纪格斗游戏,有 3 种不同的姿态。在其中,你可以从3种姿势进行攻击,如果对手没有保持相同的姿势,他就会进行攻击,否则他会招架并且攻击者会快速眩晕。 当 Sword 的 Hitbox 击中玩家自己的 Hitbox 时,问题就开始了,导致了不希望的结果。
所以我想知道有没有办法让玩家的剑无视与玩家自身的碰撞,让玩家无法攻击自己。
我也试过放方法:Physics.IgnoreCollision(collider, selfCollider);在 OnTriggerEnter() 函数、Start() 和 Update() 中,没有解决方案。
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Enemy" || other.gameObject.tag == "Player")
{
//instant enemy combat
CombatManager enemy = other.gameObject.GetComponentInChildren<CombatManager>();
Debug.Log(enemy.currentStance);
//If enemy stance is not the same of the attacker
if(enemy.currentStance != this.currentStance)
{
//enemy is damaged
//Get enemy LifeManager and subtract its health
enemy.GetComponentInParent<LifeManager>().currentHealth -= swordDamage;
}
else
{
anim.SetTrigger("Parried");
}
}
尝试:
if(other.transform.root != transform.root)
{
// NOT self collision
}
这主要是检查两个对象是否属于同一层次结构。换句话说,如果他们有相同的 top-most GameObject 或 root.
显然,我对您的玩家头像是如何被操纵的做出了一些假设。也许您需要调整此解决方案以适合您的层次结构。