2020/11/23实习笔记
C# ILogger类的使用
private static ILogger logger = Debug.unityLogger;
logger.Log(str);
ILogger类在UnityEngine命名空间当中。
C# Unity Transform.GetChild(int index)
查询结果根据Hierarchy窗口中自上而下的排序而排列。
Lua debug.tranceback()
Lua中没有内置的调试器,但是有提供Debug库可以方便自定义调试器的功能。
traceback ([thread,] [message [, level]])
如果 message 有,且不是字符串或 nil, 函数不做任何处理直接返回 message。 否则,它返回调用栈的栈回溯信息。 字符串可选项(message)被添加在栈回溯信息的开头。 数字可选项(level)指明从栈的哪一层开始回溯 (默认为 1 ,即调用 traceback 的那里)。
local test = test or {}
function test:testFuncA()
print("testFuncA")
print(debug.traceback())
self:testFuncB()
end
function test:testFuncB()
print("testFuncB")
print(debug.traceback("", 2))
self:testFuncC()
end
function test:testFuncC()
print("testFuncC")
print(debug.traceback("message", 1))
end
test:testFuncA()
结果如下:
上述代码中,test:function() => var test = function(){}。
另外,self相当于Java中的this。
冒号(:)在Lua中有两种作用:一是,在方法定义的时候,会增加一个隐藏形参(self);二是,对于方法调用的来说,回增加一个额外的实参,例子如下:
local t = {a = 1, b = 2}
function t:Add()
return (self.a + self.b)
end
function t.Sub(self) -- 形参
return (self.a - self.b)
end
print(t.Add(t)) -- 实参
print(t:Sub())