【发布时间】:2016-12-05 18:47:35
【问题描述】:
对 Unity 还很陌生,过去几天我一直在玩 Raycasting。我遇到了这个问题,其中光线投射要表示的线没有检测到这种情况已经发生。因此,当 Raycast 线击中对象时,我希望它在控制台上简单地显示 HIT 以表明这是有效的。我有一种感觉,它不起作用的原因是由于我通过调试看到的线路和实际使用的线路不同。
代码是:
void rayCast()
{
if (player.transform.position.x <= enemy.transform.position.x)
{
RaycastHit2D hitLeft = Physics2D.Raycast(transform.position, -transform.right, rayDistance, 1 << LayerMask.NameToLayer("Player"));
Vector3 left = transform.TransformDirection(Vector3.left);
Debug.DrawRay(transform.position, left * rayDistance, Color.green);
if (hitLeft.collider != null)
{
Debug.Log("Player is within range");
}
else
{
Debug.Log("out of range");
}
}
if (player.transform.position.x >= enemy.transform.position.x)
{
RaycastHit2D hitRight = Physics2D.Raycast(transform.position, transform.right, rayDistance, 1 << LayerMask.NameToLayer("Player"));
Vector3 right = transform.TransformDirection(Vector3.right);
Debug.DrawRay(transform.position, right * rayDistance, Color.green);
if (hitRight.collider != null)
{
Debug.Log("Player is within range");
}
else
{
Debug.Log("out of range");
}
}
}
提前感谢您的帮助。
【问题讨论】:
标签: c# unity3d 2d raycasting