Advertisement

xlua源码分析第5章 struct类型优化

阅读量:

xlua源码分析(五) struct类型优化

上一节我们对xlua中lua层如何实现对C#值类型的访问进行了分析,其中特别强调了在xlua默认实现方式下,struct类型访问所存在的效率问题。实际上,xlua还提供了两种优化手段,能够显著提升struct访问的性能。具体实例可参考Examples 12_ReImplementInLua中的内容。

第一种优化方法是在lua层对C#的struct进行重构。当C#的struct被推送到lua层时,其数据类型仍为userdata,但此时其metatable不再指向C#层的struct,而是由lua层自行实现的:

复制代码
    function test_vector3(title, v1, v2)
    print(title)
    v1.x = 100
    print(v1.x, v1.y, v1.z)
    print(v1, v2)
    print(v1 + v2)
    v1:Set(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z)
    print(v1)
    print(CS.UnityEngine.Vector3.Normalize(v1))
    end
    
    local get_x, set_x = xlua.genaccesso

全部评论 (0)

还没有任何评论哟~