lua如何继承unity类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua如何继承unity类相关的知识,希望对你有一定的参考价值。
参考技术A Lua元表使用 中的__index元方法可以实现面向对象和继承关系:lua中没有类的概念,只有table,但可以用__index模拟类和对象:
local A =
function A:new(name)
self.__index = self
return setmetatable(
name = name
, self)
end
function A:print()
print("name is ", self.name)
end
local a = A:new("Tony")
a:print()
-- output: name is Tony
A和a两个表之间的关联是这样的:

这里name是表a的key,print是表A的函数,当用a调用print时,找到的元表A中的__index(指向A自己)中的print方法,而方法内的self是调用者a,所以self.name是a的name。
(Lua中的self)
两个类之间同样可以用__index实现继承关系:
local Person =
function Person:new(name)
self.__index = self
return setmetatable(
name = name
, self)
end
function Person:print()
print("name is ", self.name)
end
local Student = setmetatable(, Person)
Student.super = Person
function Student:new(name, score)
self.__index = self
local student = self.super:new(name)
student.score = score
setmetatable(student, self)
return student
end
function Student:print()
self.super.print(self)
print("score is ", self.score)
end
local s = Student:new("Tony", 98)
s:print()
-- output :
-- name is Tony
-- score is 98
以上是关于lua如何继承unity类的主要内容,如果未能解决你的问题,请参考以下文章
Unity Unity脚本类为什么要尽量避免继承MonoBehaviour类?
Unity脚本类为啥要尽量避免继承MonoBehaviour类
3、在Unity3D中创建一个脚本,默认继承哪个类。( )?
Unity脚本类为啥要尽量避免继承MonoBehaviour类