2022-01-10 15:15:06 +01:00
|
|
|
using System.Collections;
|
2021-09-25 21:18:24 +02:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
public class PlayerGhost : MonoBehaviour
|
|
|
|
|
{
|
2022-12-16 17:05:39 +02:00
|
|
|
[SerializeField] private int _ghostFrameMax = default;
|
|
|
|
|
private SpriteRenderer _spriteRenderer;
|
|
|
|
|
private int _ghostFrame;
|
|
|
|
|
private float _opacity;
|
2021-09-25 21:18:24 +02:00
|
|
|
|
2022-12-16 17:05:39 +02:00
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
_spriteRenderer = GetComponent<SpriteRenderer>();
|
|
|
|
|
}
|
2021-09-25 21:18:24 +02:00
|
|
|
|
2022-12-16 17:05:39 +02:00
|
|
|
void OnEnable()
|
|
|
|
|
{
|
|
|
|
|
_ghostFrame = 0;
|
|
|
|
|
_spriteRenderer.color = new Color(_spriteRenderer.color.r, _spriteRenderer.color.g, _spriteRenderer.color.b, 1);
|
|
|
|
|
}
|
2021-09-25 21:18:24 +02:00
|
|
|
|
2022-12-16 17:05:39 +02:00
|
|
|
void FixedUpdate()
|
|
|
|
|
{
|
|
|
|
|
if (_ghostFrame < _ghostFrameMax)
|
|
|
|
|
{
|
|
|
|
|
_opacity = Mathf.Lerp(1, 0, ((float)_ghostFrame / (float)_ghostFrameMax));
|
|
|
|
|
_spriteRenderer.color = new Color(_spriteRenderer.color.r, _spriteRenderer.color.g, _spriteRenderer.color.b, _opacity);
|
|
|
|
|
_ghostFrame++;
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-01-10 15:15:06 +01:00
|
|
|
|
2022-12-16 17:36:37 +02:00
|
|
|
public void SetSprite(Sprite sprite)
|
2022-12-16 17:05:39 +02:00
|
|
|
{
|
|
|
|
|
_spriteRenderer.sprite = sprite;
|
|
|
|
|
}
|
2021-09-25 21:18:24 +02:00
|
|
|
}
|