@FreedomEagle21

Как повернуть героя в сторону врага на время катсцены Unity2D?

Ребят, привет. Проблема вот в чём, есть враги до катсцены, после убийства которых активируется сама катсцена, героя в катсцене я установил лицом к врагу, так вот сама проблема, когда я убиваю последнего врага перед катсценой спиной к врагу что в самой катсцене, т.е. допустим главный враг справа, который в катсцене, и гг я установил лицом к нему, но перед катсценой я убиваю последнего врага, который находится слева. И я запилил скрипт чтобы гг не отворачивался в катсцене от врага, а стоял к нему лицом, но когда катсцена заканчивается, гг у меня при движении ходит задом наперёд, т.е. спиной вперёд Уже голова болит, как пофиксить этот баг не знаю, может кто подкинет идейку. Спасибо. Надеюсь понятно объяснил, в коде всё думаю, понятней. В общем то в целом вопрос такой. Как заставить персонажа смотреть на врага?

P.S. Катсцены я делаю через Timeline.

Код для катсцены
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class TimelineEndLvl : MonoBehaviour
{
    bool enemyAlive = false;
    public GameObject player;
    public GameObject boss;
    public GameObject blackBg;
    public GameObject healthBar;
    public List<GameObject> enemies = new List<GameObject>();
    public PlayableDirector director;

    // Start is called before the first frame update
    void OnEnable()
    {

    }

    // Update is called once per frame
    void Update()
    {
        enemies.RemoveAll(list_item => list_item == null);

        if (enemies.Count <= 0 && !enemyAlive)
        {
            enemyAlive = true;
            StartCoroutine(DirectorPlay());
        }

        if (director.state == PlayState.Playing)
        {
            player.GetComponent<Hero>().enabled = false;
        }
        else
        {
            player.GetComponent<Hero>().enabled = true;
        }
    }

    private IEnumerator DirectorPlay()
    {
        blackBg.SetActive(true);

        yield return new WaitForSeconds(1);

        director.Play();
        healthBar.SetActive(true);

        yield return new WaitForSeconds(4);

        if (player.transform.localScale.x < 0)
        {
            if (player.transform.position.x > boss.transform.position.x)
                player.GetComponent<SpriteRenderer>().flipX = false;
        }
        else
        {
            player.GetComponent<SpriteRenderer>().flipX = false;
        }

        boss.SetActive(true);
        blackBg.SetActive(false);
    }
}
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы