Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
- Заменена уменьшенная платформа TriggeringPlatform_2 на сцене 1-1 на табличку со стрелкой влево (Signs_Arrow_Left). - Создан C# скрипт ShowObjectWithVFX.cs для активации скрытых объектов со спецэффектами частиц (sparks). - Добавлен вспомогательный редакторский скрипт ReplacePlatformWithSign.cs для автоматической перестройки сцены. - Рычаг на уровне 1-1 привязан к активации таблички: табличка изначально скрыта, при переключении рычага появляется с эффектом искр.
68 lines
2.0 KiB
C#
68 lines
2.0 KiB
C#
using UnityEngine;
|
|
using UnityEngine.VFX;
|
|
|
|
namespace RR.Game2D.Entities
|
|
{
|
|
public class ShowObjectWithVFX : MonoBehaviour
|
|
{
|
|
[Header("Target Settings")]
|
|
[SerializeField] private GameObject targetObject;
|
|
[SerializeField] private bool hideOnStart = true;
|
|
|
|
[Header("VFX Settings")]
|
|
[SerializeField] private VisualEffect visualEffect;
|
|
[SerializeField] private ParticleSystem particleSystemComponent;
|
|
[SerializeField] private GameObject vfxPrefab;
|
|
[SerializeField] private float vfxDestroyDelay = 3f;
|
|
|
|
private void Start()
|
|
{
|
|
if (hideOnStart && targetObject != null)
|
|
{
|
|
targetObject.SetActive(false);
|
|
}
|
|
|
|
if (visualEffect != null)
|
|
{
|
|
visualEffect.gameObject.SetActive(false);
|
|
}
|
|
|
|
if (particleSystemComponent != null)
|
|
{
|
|
var emission = particleSystemComponent.emission;
|
|
emission.enabled = false;
|
|
particleSystemComponent.gameObject.SetActive(false);
|
|
}
|
|
}
|
|
|
|
[ContextMenu("Activate")]
|
|
public void Activate()
|
|
{
|
|
if (targetObject != null)
|
|
{
|
|
targetObject.SetActive(true);
|
|
}
|
|
|
|
if (visualEffect != null)
|
|
{
|
|
visualEffect.gameObject.SetActive(true);
|
|
visualEffect.Play();
|
|
}
|
|
|
|
if (particleSystemComponent != null)
|
|
{
|
|
particleSystemComponent.gameObject.SetActive(true);
|
|
var emission = particleSystemComponent.emission;
|
|
emission.enabled = true;
|
|
particleSystemComponent.Play();
|
|
}
|
|
|
|
if (vfxPrefab != null)
|
|
{
|
|
GameObject vfxInstance = Instantiate(vfxPrefab, transform.position, transform.rotation);
|
|
Destroy(vfxInstance, vfxDestroyDelay);
|
|
}
|
|
}
|
|
}
|
|
}
|