public void FusionWithCloseHandle()
    {
        if (CloseHandle == null)
        {
            return;
        }

        OnFusion.Invoke(this);
        CloseHandle.OnMoved.Invoke(CloseHandle);

        foreach (UnityAction <LowPolyPointHandle> action in moveActions)
        {
            CloseHandle.AddMoveAction(action);
        }
        foreach (UnityAction <LowPolyPointHandle> action in destroyActions)
        {
            CloseHandle.AddDestroyAction(action);
        }
        foreach (UnityAction <LowPolyPointHandle> action in fusionActions)
        {
            CloseHandle.AddFusionAction(action);
        }

        RemoveAllListeners();
        DestroyImmediate(gameObject);
    }
    private void OnDestroy()
    {
        if (OnDestroyed != null)
        {
            OnDestroyed.Invoke(this);
        }

        RemoveAllListeners();
    }
    private void Update()
    {
        if (permanent == false && moveActions.Count == 0 && destroyActions.Count == 0)
        {
            DestroyImmediate(gameObject);
            return;
        }

        if (transform.hasChanged)
        {
            OnMoved.Invoke(this);
            LastPosition         = transform.position;
            transform.hasChanged = false;
        }
    }
예제 #4
0
 public void Notify(object eventData)
 {
     HandleEvent?.Invoke(eventData);
 }
예제 #5
0
 public void TriggerEvent(object value = null)
 {
     HandleEvent?.Invoke(value);
 }
예제 #6
0
 public void TriggerEvent(GameEnum gameEnum)
 {
     HandleEvent?.Invoke(gameEnum);
 }