我先解释一下我的场景。所以我有一个角色由用户在2D场景中控制,附加了以下组件,它们是RigidBody2D,BoxCollider2D和脚附近的圆形碰撞器。现在我有另一个类似(相同的组件)字符我正在尝试编程AI所以我使用以下代码来这样做
void Update(){
eyeRay();
}
bool eyeRay ()
{
Ray eye = new Ray (Head.transform.position, transform.localScale.x == 1 ? Vector3.right : -1 * Vector3.right);
RaycastHit Hit;
Debug.Log ("0");
if (Physics.Raycast (eye, out Hit, Mathf.Infinity)) {
Debug.Log ("1");
if (Hit.collider.gameObject.tag == "Player") {
Debug.Log ("2");
transform.position = Vector3.Lerp (transform.position, Hit.collider.transform.position, 0.5f);
return true;
}
return false;
}
return false;
}
它甚至不是印刷" 1"仅在控制台中" 0" 我也试过
RaycastHit2D Hit = Physics2D.RayCast(new Vector2(Head.transform.position.x, Head.transform.position.y), transform.localScale.x == 1 ? Vector2.right : -1 * Vector2.right, Screen.width/2f);
if(Hit.Collider.tag == "Player"){
//Do Something
}
但是什么都没发生