Я делаю 2D игру с двумя сторонами, левой и правой, чтобы игрок мог двигаться только влево или вправо или прыгать.Я сделал ИИ в качестве врага.ИИ работает нормально.Он может пойти к игроку, чтобы убить его.
Проблема в том, что враг не может повернуться или повернуться лицом к игроку, когда он идет убить его.Я хочу, чтобы ИИ посмотрел на игрока.Когда игрок находится слева от врага, противник должен повернуть налево, чтобы посмотреть на игрока.Я искал много сайтов, и я не нашел правильного решенияЭто мой вражеский сценарий:
public class enemy : MonoBehaviour
{
public float speed;
private Animator animvar;
private Transform target;
public GameObject effect;
public float distance;
private bool movingRight = true;
public Transform groundedDetection;
public float moveInput;
public bool facingRight = true;
void Start()
{
animvar = GetComponent<Animator>();
target = GameObject.FindGameObjectWithTag("Player").transform;
}
// Update is called once per frame
void Update()
{
if (Vector3.Distance(target.position, transform.position) < 20)
{
transform.position = Vector2.MoveTowards(transform.position, target.position, speed * Time.deltaTime);
}
else
{
transform.Translate(Vector2.right * speed * Time.deltaTime);
}
RaycastHit2D groundInfo = Physics2D.Raycast(groundedDetection.position, Vector2.down, distance);
}
void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag.Equals("danger"))
{
Instantiate(effect, transform.position, Quaternion.identity);
Destroy(gameObject);
}
if (col.gameObject.tag.Equals("Player"))
{
Instantiate(effect, transform.position, Quaternion.identity);
Destroy(gameObject);
}
}
}
Игра 2D, влево, вправо, с прыжком с использованием Unity3D.