You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.9 KiB
C#
56 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Unity.BossRoom.Gameplay.GameplayObjects.Character;
|
|
using Unity.BossRoom.VisualEffects;
|
|
using UnityEngine;
|
|
|
|
namespace Unity.BossRoom.Gameplay.Actions
|
|
{
|
|
public partial class TrampleAction
|
|
{
|
|
/// <summary>
|
|
/// We spawn the "visual cue" graphics a moment after we begin our action.
|
|
/// (A little extra delay helps ensure we have the correct orientation for the
|
|
/// character, so the graphics are oriented in the right direction!)
|
|
/// </summary>
|
|
private const float k_GraphicsSpawnDelay = 0.3f;
|
|
|
|
/// <summary>
|
|
/// Prior to spawning graphics, this is null. Once we spawn the graphics, this is a list of everything we spawned.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// Mobile performance note: constantly creating new GameObjects like this has bad performance on mobile and should
|
|
/// be replaced with object-pooling (i.e. reusing the same art GameObjects repeatedly). But that's outside the scope of this demo.
|
|
/// </remarks>
|
|
private List<SpecialFXGraphic> m_SpawnedGraphics = null;
|
|
|
|
public override bool OnUpdateClient(ClientCharacter clientCharacter)
|
|
{
|
|
float age = Time.time - TimeStarted;
|
|
if (age > k_GraphicsSpawnDelay && m_SpawnedGraphics == null)
|
|
{
|
|
m_SpawnedGraphics = InstantiateSpecialFXGraphics(clientCharacter.transform, false);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
public override void CancelClient(ClientCharacter clientCharacter)
|
|
{
|
|
// we've been aborted -- destroy the "cue graphics"
|
|
if (m_SpawnedGraphics != null)
|
|
{
|
|
foreach (var fx in m_SpawnedGraphics)
|
|
{
|
|
if (fx)
|
|
{
|
|
fx.Shutdown();
|
|
}
|
|
}
|
|
}
|
|
|
|
m_SpawnedGraphics = null;
|
|
}
|
|
}
|
|
}
|