走在射弹子弹上,没有碰撞但玩家由于步距偏移而跳上它们
Walking on projectiles bullets, not colliding but player jumps on them due to step offset
标题说明了一切,如果玩家站着不动,射弹只会击中玩家并消失,如果他在移动,玩家将''jump''站在子弹上面并从他们身上走过,没有触发碰撞,也没有真正做任何事情。
我想要实现的是,子弹会穿过玩家,但如果它们确实与玩家发生碰撞,仍会检测到碰撞,这样角色控制器就永远不会在它们上面行走,或者它们应该只与玩家发生碰撞在玩家有机会走过它们之前。这个问题与角色控制器组件中的“Step Offset”功能有关,因为当我将它设置为 0.05 时,这个问题不会发生,但我不能这样做,因为我的角色需要能够走上楼梯或过小壁架。
非常感谢!
void OnCollisionEnter(Collision other)
{
if (other.gameObject.CompareTag("Player"))
{
scrCh = other.gameObject.GetComponent<scr_CharacterController>();
calculatedDamage = Random.Range(minDamage, maxDamage);
if (scrCh != null && scrCh.currentHealth > 0)
{
CancelInvoke("Remove");
gameObject.SetActive(false);
scrCh.TakeDamage(calculatedDamage);
if (gameObject.CompareTag("Special Bullet"))
{
scrCh.TakeDamage(calculatedDamage * 3);
gameObject.SetActive(false);
}
}
}
if (other.gameObject.CompareTag("Unbreakable"))
{
gameObject.SetActive(false);
}
}
有两种方法可以解决此问题:
或者更改角色控制器碰撞盒的大小(它是一个圆柱体),使其大小小于您的角色网格碰撞器,这样子弹将与网格碰撞而不是与网格碰撞角色控制器。
或者您可以将 Character Controller 设置在不同的 Layer 上,一个不与子弹碰撞的图层,结果是一样的,子弹现在只会与 Character Mesh Collider 碰撞。
标题说明了一切,如果玩家站着不动,射弹只会击中玩家并消失,如果他在移动,玩家将''jump''站在子弹上面并从他们身上走过,没有触发碰撞,也没有真正做任何事情。
我想要实现的是,子弹会穿过玩家,但如果它们确实与玩家发生碰撞,仍会检测到碰撞,这样角色控制器就永远不会在它们上面行走,或者它们应该只与玩家发生碰撞在玩家有机会走过它们之前。这个问题与角色控制器组件中的“Step Offset”功能有关,因为当我将它设置为 0.05 时,这个问题不会发生,但我不能这样做,因为我的角色需要能够走上楼梯或过小壁架。
非常感谢!
void OnCollisionEnter(Collision other)
{
if (other.gameObject.CompareTag("Player"))
{
scrCh = other.gameObject.GetComponent<scr_CharacterController>();
calculatedDamage = Random.Range(minDamage, maxDamage);
if (scrCh != null && scrCh.currentHealth > 0)
{
CancelInvoke("Remove");
gameObject.SetActive(false);
scrCh.TakeDamage(calculatedDamage);
if (gameObject.CompareTag("Special Bullet"))
{
scrCh.TakeDamage(calculatedDamage * 3);
gameObject.SetActive(false);
}
}
}
if (other.gameObject.CompareTag("Unbreakable"))
{
gameObject.SetActive(false);
}
}
有两种方法可以解决此问题:
或者更改角色控制器碰撞盒的大小(它是一个圆柱体),使其大小小于您的角色网格碰撞器,这样子弹将与网格碰撞而不是与网格碰撞角色控制器。
或者您可以将 Character Controller 设置在不同的 Layer 上,一个不与子弹碰撞的图层,结果是一样的,子弹现在只会与 Character Mesh Collider 碰撞。