0
在我的2D平台游戏中,有一名拥有枪支的飞行敌人。根据敌人面对的方式,枪在Z轴上的坐标为0°或180°。无论哪种方式,枪都可以自由移动30°。当敌人朝右时,它可以很好地工作,但当敌人朝左时,它会在180°时重置为150°。任何人都可以帮忙吗?这里是我的代码:指向玩家的枪不起作用
using UnityEngine;
using System.Collections;
public class EnemyGun : MonoBehaviour
{
public Transform player;
private bool isRight;
private void Update()
{
if (player.position.x - transform.position.x < 0)
{
isRight = false;
}
else
{
isRight = true;
}
Vector3 dir = player.position - transform.position;
float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
if (angle > 30 && isRight == true)
{
angle = 30;
}
if (angle < -30 && isRight == true)
{
angle = -30;
}
if (angle > 210 && isRight == false)
{
angle = 210;
}
if (angle < 150 && isRight == false)
{
angle = 150;
}
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
}
请不要在问题的标题使用任何标签 –