Поменять спрайты игрока во время его нахождения в зоне триггера
В моей TopDown 2D-игре есть Режим битвы. Сделано это по типу области с параметром OnTrigger - пока игрок находится в зоне триггера, происходит сражение. Мне хотелось бы расширить этот режим, добавив следующее: Когда игрок находится в режиме сражения, менять его спрайт на другой (затемненный с красной обводкой). Отмечу, что у объекта рендеринг из аниматора, поэтому нужно подключить и другие анимации. Это может быть похоже на то, как это выглядит в видеоигре Deltarune, когда там персонаж попадает в режим Столкновение (тот же режим битвы). Я даже близко не знаю, как это можно сделать. Буду благодарен любым ответам!
Ответы (1 шт):
При входе в зону битвы void OnTriggerEnter2D(Collider2D collision)
При выходе void OnTriggerExit2D(Collider2D collision)
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("BattleZone"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = inBattleSprite;
}
}
private void OnTriggerExit2D(Collider2D collision)
{
if (collision.gameObject.CompareTag("BattleZone"))
{
gameObject.GetComponent<SpriteRenderer>().sprite = normalSprite;
}
}
Внутри методов можете также менять анимации, тут уже как вам будет удобно, главное поставьте тег самому триггеру.