public static void Register(IntPtr ptr) { #if !LUA_5_3 // lua implemented valuetype isn't faster than raw under non-jit. LuaState ls = LuaState.Get(ptr); ls.RegisterPushVar(typeof(UnityEngine.Vector2), (IntPtr _ptr, object o) => { LuaObject.PushValue(_ptr, (UnityEngine.Vector2)o); }); ls.RegisterPushVar(typeof(UnityEngine.Vector3), (IntPtr _ptr, object o) => { LuaObject.PushValue(_ptr, (UnityEngine.Vector3)o); }); ls.RegisterPushVar(typeof(UnityEngine.Vector4), (IntPtr _ptr, object o) => { LuaObject.PushValue(_ptr, (UnityEngine.Vector4)o); }); ls.RegisterPushVar(typeof(UnityEngine.Quaternion), (IntPtr _ptr, object o) => { LuaObject.PushValue(_ptr, (UnityEngine.Quaternion)o); }); ls.RegisterPushVar(typeof(UnityEngine.Color), (IntPtr _ptr, object o) => { LuaObject.PushValue(_ptr, (UnityEngine.Color)o); }); ls.DoString(Script, "ValueTypeScript"); #endif }