按照此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;
}