簡體   English   中英

(Unity)更改圖層蒙版時將腳本添加到游戲對象

[英](Unity) Adding a script to a gameobject when changing layermask

我希望能夠在更改其LayerMask時向游戲對象添加腳本。 我希望在編輯器中而不是僅在運行時進行更改時會發生這種情況。

我應該怎么做? 我無法在Google上提出問題,以尋找任何可能對我有幫助的必要信息。

先感謝您。

我認為沒有內置的功能,但是您可以使用GameObject.layer進行存儲和比較。

使用[ExecuteInEditMode]您還可以使編輯器也可以在編輯器中執行某些方法:

[ExecuteInEditMode]
public class LayerChecker : MonoBehaviour
{
    private int lastLayer;

    // could e.g be a UnityEvent (like onClick of buttons)
    public UnityEvent OnLayerChanged;

    private void Update()
    {
        // if layer didn't change do nothing
        if(lastLayer == gameObject.layer) return;

        // changed! -> what ever you want to happen 
        // e.g. invoke the event or call another method
        OnLayerChanged.Invoke();

        // store the new layer
        lastLayer = gameObject.layer;
    }    
}

如果您想限制發生這種情況的位置,還可以檢查Application.isEditor和/或Application.isPlaying

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM