[英](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.