所以我遇到了我的敌人AI剧本的一个小问题,其中光线播放不想与我合作。代码如下:
void DetectionF(float distanceToTarget)
{
float angle = Vector2.Angle(vision, target.position);
if (lastAngle!=angle)
Debug.Log("Angle: " + angle);
lastAngle = angle;
Debug.DrawLine(transform.position, target.position, Color.red, 0.2f);
if (70f< angle && angle<140f)
{
RaycastHit2D hit = Physics2D.Raycast(transform.position, target.position, distanceToTarget);
//This right here is where the problem lays
if (hit.collider.gameObject.CompareTag("Player"))
{
player.detected = true;
CancelInvoke("Undetect");
}
}
}
我只需要确认光线投射击中了玩家而没有别的。 提前谢谢!
答案 0 :(得分:1)
首先,确保光线正在击中的游戏对象被真正标记为&#34;播放器&#34;。如果是,那么我认为解决这个问题的最佳方法是尝试制作2个单独的if()语句,以达到你想要的效果。 例如:
if(hit.collider.gameObject){
if(gameObject.tag == "Player"){
player.detected = true;
CancelInvoke("Undetect");
}
}
希望这可以解决您的问题!