-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTriggerAction.cs
52 lines (41 loc) · 1.42 KB
/
TriggerAction.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
public class TriggerAction : MonoBehaviour {
[SerializeField]
private Sprite altIcon;
private SpriteRenderer _spriteRenderer;
private Sprite originalIcon;
void Start() {
_spriteRenderer = GetComponent<SpriteRenderer>();
originalIcon = _spriteRenderer.sprite;
}
IEnumerator SwapIcons(Sprite newIcon) {
float duration = 0.2f;
Color c = _spriteRenderer.material.color;
for (float timer = 0; timer < duration; timer += Time.deltaTime) {
c = Color.Lerp(_spriteRenderer.color,Color.clear,timer/duration);
_spriteRenderer.material.color = c;
yield return null;
}
_spriteRenderer.sprite = newIcon;
for (float timer = 0; timer < duration; timer += Time.deltaTime) {
c = Color.Lerp( Color.clear, _spriteRenderer.color,timer/duration);
_spriteRenderer.material.color = c;
yield return null;
}
}
private void ChangeSprite(Sprite newSprite) {
StartCoroutine(SwapIcons(newSprite));
}
private void OnTriggerEnter2D(Collider2D other) {
if (other.CompareTag("Player")) {
ChangeSprite(altIcon);
}
}
private void OnTriggerExit2D(Collider2D other) {
ChangeSprite(originalIcon);
}
}