Events‐zh_hk - The-best-cat/Unity_asset-2D_trail_effect-Free GitHub Wiki

語言

English (UK)
中文(繁體)

基礎

Main

開發


*此功能為付費版獨有

我寫了一些可讓你訂閱的事件。

onProfileChanged

當拖尾設定的設定檔發生變更時,此事件將會被呼叫並傳回設定檔已變更的拖尾設定。

例如,如果你發現設定檔切換出現不正確的情況,你可以訂閱此事件並看看到底發生了什麽事:

TrailEvents.onProfileChanged += OnProfileChanged;

private void OnProfileChanged(TrailInstance instance)
{
    Debug.Log(instance.Profile.Identifier);
}

onTrailStarted

當拖尾開始生成時,此事件將會被呼叫並傳回啟動拖尾的遊戲物件。

例如,如果你想在拖尾開始時播放一個音效:

TrailEvents.onTrailStarted += OnTrailStarted;

private void OnTrailStarted(GameObject obj)
{
    AudioManager.Play("trail_start_sound");
}

onTrailStopped

當拖尾停止生成時,此事件將會被呼叫並傳回拖尾被停止的遊戲物件。

例如,如果你想在一個游戲物件的拖尾停止後變更其設定檔:

TrailEvents.onTrailStopped += OnTrailStopped;

private void OnTrailStopped(GameObject obj)
{
    if (gameObject == obj)
    {
        gameObject.GetTrailInstance().SetProfile("Another Trail");
    }
}

onTrailObjectInitialised

當拖尾物件初始化後,此事件將會被呼叫並傳回尾跡物件的 TrailObject 元件以及負責產生此拖尾物件的尾跡處理器(Trail Processor)。

例如,如果你想特定遊戲物件生成的拖尾物件在初始化後變更材質,可以執行以下操作:

TrailEvents.onTrailObjectInitialised += OnTrailStarted;

private void OnTrailObjectInitialised(TrailObject trailObject, TrailProcessor processor)
{
    if (trailObject.gameObject.GetTrailSource() == the_gameobject)
    {
        trailObject.gameObject.GetComponent<SpriteRenderer>().material = the_material;
    }
}

或者

TrailEvents.onTrailObjectInitialised += OnTrailStarted;

private void OnTrailObjectInitialised(TrailObject trailObject, TrailProcessor processor)
{
    if (processor.TrailInstance.gameObject == the_gameobject)
    {
        trailObject.gameObject.GetComponent<SpriteRenderer>().material = the_material;
    }
}

onTrailObjectDisabled

當拖尾物件因壽命結束或者提前停用(透過開啓Disable All Trail On Stop)而被停用時,將呼叫此事件並傳回尾跡物件的 TrailObject 元件以及負責產生此拖尾物件的尾跡處理器。

例如,如果你希望由特定遊戲物件生成的拖尾物件消失後在其位置生成爆炸,你可以這麽寫:

TrailEvents.onTrailObjectDisabled += OnTrailObjectDisabled;

private void OnTrailObjectDisabled(TrailObject trailObject, TrailProcessor processor)
{
    if (processor.TrailInstance.gameObject == the_gameobject)
    {
        Vector2position = trailObject.transform.position;
        SpawnExplosion(position);
    }
}

onWillDestroyTrailObject

當在池中的拖尾物件即將被銷毀時,此事件將會被呼叫並傳回尾跡物件的 TrailObject 元件以及負責產生此拖尾物件的尾跡處理器。

例如,如果你想看看拖尾管理器自動銷毀了多少個池化的拖尾物件(雖然我不知道為什麼你會需要這麽做),你可以這樣:

TrailEvents.onWillDestroyTrailObject += OnWillDestroyTrailObject;

private void OnWillDestroyTrailObject(TrailObject trailObject, TrailProcessor processor)
{
    if (_Counting == null)
    {
        _Counting = CountDestroyedTrail();
        StartCoroutine(_Counting);
    }
    count++;
}

private IEnumerator CountDestroyedTrail()
{
    yield return null;
    Debug.Log(count);
}