c#unity ray colider 2d问题

时间:2018-06-05 17:56:16

标签: c# unity3d 2d collision raycasting

按照此youtube教程https://youtu.be/-mrGHaAdX8M?t=13m26s

敌人向左或向右移动,但从不翻转并重复。 我附上了一个''Debug.Log(“ray”);''知道它是否击中以及什么时候,即使在一个空的空间它仍然输出''ray''(这意味着它与自身对齐)。 但是在那个视频上,它的效果非常好(我甚至试过了视频资产),那么我做错了什么?这是代码:

public class EnemyMove : MonoBehaviour 
{
    public int EnemySpeed, XMoveDirection;

    void Update() 
    {
        RaycastHit2D hit = Physics2D.Raycast(transform.position, new Vector2(XMoveDirection, 0));
        gameObject.GetComponent<Rigidbody2D>().velocity = new Vector2(XMoveDirection, 0) * EnemySpeed;
        if (hit.distance < 0.7f)
        {
            Flip();
            Debug.Log("ray");
        }
    }

    void Flip() => XMoveDirection = XMoveDirection > 0 ? -1 : 1;
}

0 个答案:

没有答案