有關 Lua 的一些記錄 2019篇

////////////////////////////////////////////有關 Lua 的一些記錄 2019篇 ////////////////////////////////////

/////////////////////////////////////////////////////////////////////////

lua 中有快速清空table

tablename=nil
或者
tablename={}關於內存佔用這個問題不用擔心,lua的垃圾回收機制會在下次gc時把引用計數爲0(就是原先)的table在內存中自動清除當我們爲 table a 並設置元素,然後將 a 賦值給 b,則 a 與 b 都指向同一個內存。如果 a 設置爲 nil ,則 b 同樣能訪問 table 的元素。如果沒有指定的變量指向a,Lua的垃圾回收機制會清理相對應的內存。

///////////////////////////////////////////////////////////////////////////

Lua 中調用Json 中 w.password 相當於 w[‘password’] 和w[‘password’]

///////////////////////////////////////////

Animation ani = go.GetComponent<Animation>();

ani[“tempName”].speed = isBegin  ?  1  :  -1;

ani.Play()

而在lua中:

local ani = go:GetComponent(typeof(CS.UnityEngine. Animation))

ani.speed = -1; // 這個不太行,這個speed是AnimationState下邊的public屬性

ani.Play(‘tempName’)

 

而 ani[‘tempName’] = {} //這個會報 no such field

ani[‘tempName’] .speed = -1

還是老實從c# 封裝方法調用吧

////////////////////////一些unity的控件回調///////////////////////////////////////////////////

public class A

{

public void RegisterToggleClick(UnityEngine.UI.Toggle toggle, UnityEngine.Events.UnityAction<boo> action)

{

toggle.onValueChanged.RemoveAllListener();

toggle.onValueChanged:AddListener((bool isOn) => {

 if (action != null)

action(isOn);

});

 

public void RegisterToggleClick(UnityEngine.UI.Toggle toggle, UnityEngine.Events.UnityAction action)

{

toggle.onValueChanged.RemoveAllListener();

toggle.onValueChanged:AddListener((bool isOn) => {

 if (action != null)

action();

});

}

}

 

在lua 裏調用的時候, 用空參數的回調:

self: RegisterToggleClick(self.myToggle, function()

--do something

end)

///////////////////////////////////////////////////////////////////////////////////////////

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章