Defold中自我应该包含什么

游戏对象中的自我字段和方法应该包含什么? 我应该将位置和速度作为字段放在哪里?我应该在自我中放哪些方法? ob的字段应该是什么? 我应该将速度和位置放在

self.velocity = vmath.vector3()

还是像这样

go.velocity = vmath.vector3()

点赞
用户1266551
用户1266551

self对象是一个Lua userdata存储脚本实例值的容器。你可以自行决定将什么放入其中。将值存储在self中的好处是,self对象被传递给脚本的所有生命周期函数 (init、final、update、on_input、on_message、on_reload)。这意味着你可以在所有函数中快速访问变量。

将速度存储在self中是一个很好的例子,你可能希望在脚本的不同位置访问和修改它。例如,在按下按钮时在on_input函数中设置速度值,然后在update函数中使用相同的速度值来移动物体。

go.velocity = vmath.vector3()

这不是好的做法。你所做的是将变量velocity分配给全局可访问的go.*命名空间,其中包含引擎提供的用于操作游戏对象的函数。

2020-05-17 08:23:15