37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
namespace Obvious.Soap.Example
|
|
{
|
|
[HelpURL("https://obvious-game.gitbook.io/soap/scene-documentation/3_scriptablelists/callbacks")]
|
|
public class VfxSpawner : MonoBehaviour
|
|
{
|
|
[SerializeField] private ScriptableListPlayer scriptableListPlayer = null;
|
|
|
|
[SerializeField] private GameObject _spawnVFXPrefab = null;
|
|
[SerializeField] private GameObject _destroyVFXPrefab = null;
|
|
|
|
public void Awake()
|
|
{
|
|
scriptableListPlayer.OnItemRemoved += OnPlayerDestroyed;
|
|
scriptableListPlayer.OnItemAdded += OnPlayerSpawned;
|
|
}
|
|
|
|
public void OnDestroy()
|
|
{
|
|
scriptableListPlayer.OnItemRemoved -= OnPlayerDestroyed;
|
|
scriptableListPlayer.OnItemAdded -= OnPlayerSpawned;
|
|
}
|
|
|
|
private void OnPlayerSpawned(Player player)
|
|
{
|
|
Instantiate(_spawnVFXPrefab, player.transform.position, Quaternion.identity, transform);
|
|
}
|
|
|
|
private void OnPlayerDestroyed(Player player)
|
|
{
|
|
Instantiate(_destroyVFXPrefab, player.transform.position, Quaternion.identity, transform);
|
|
}
|
|
|
|
|
|
}
|
|
} |