////////////////////////////////////////////有關 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)
///////////////////////////////////////////////////////////////////////////////////////////