【发布时间】:2015-03-06 00:57:24
【问题描述】:
我正在尝试使用 Raycast2D 来检测攻击是否击中了敌人。我为“Enemy”图层创建了一个 LayerMask,并且在“Enemy”图层上有一个带有对撞机的对象。在不使用 LayerMask 的情况下击中对撞机没有问题,但是当我这样做时,我什么也得不到。我在这里错过了什么?
LayerMask EnemyLayer;
void Start ()
{
EnemyLayer = LayerMask.NameToLayer ("Enemy");
}
public void BasicAttack()
{
PlayerVitality.Stamina = 0;
Vector2 attackDirection = CalculateAttackDirection ();
float attackDamage = CalculateDamage (BasicAttackDamage);
Debug.Log (EnemyLayer.value);
RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x + 2, transform.position.y), attackDirection, BasicAttackDistance, EnemyLayer.value);
if (hit.collider != null)
{
Debug.Log("You hit: " + hit.collider.gameObject.name);
}
}
【问题讨论】: