xLua中导出Dotween

简介:



前言

在xlua的lua脚本中使用dotween,官方的文档中有提到可以导出,但未介绍详细的步骤,相信比较多的朋友有需要,刚好项目中也在使用xlua和dotween,所以做个笔记。

 

基础知识:

xLua:https://github.com/Tencent/xLua

dotween:http://dotween.demigiant.com/

关于dotween的使用,可以参考我之前的文章

DOTween文档

DoTween(HOTween V2) 教程

 

我的测试环境:

xLua 2.1.6

dotween 1.1.x

unity 5.3.5/5.4

 

本文的测试代码:

https://github.com/zhaoqingqing/blog_samplecode/blob/master/unity_helper/XLuaCustomExport.cs

https://github.com/zhaoqingqing/blog_samplecode/blob/master/unity_helper/xlua_dotween_test.lua

 

导出Dotween

1、在项目的Asset目录下(自己项目的Scripts目录),新建一个class,命名为:XLuaCustomExport.cs

2、导出脚本如下,如果在手机上调用报错,但PC上正常,请检查是否添加了[ReflectionUse]标签

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
using XLua;

/// <summary>
/// xlua自定义导出
/// </summary>
public static class XLuaCustomExport
{
    /// <summary>
    /// dotween的扩展方法在lua中调用
    /// </summary>
    [LuaCallCSharp]
    [ReflectionUse]
    public static List<Type> dotween_lua_call_cs_list = new List<Type>()
    {
        typeof(DG.Tweening.AutoPlay),
        typeof(DG.Tweening.AxisConstraint),
        typeof(DG.Tweening.Ease),
        typeof(DG.Tweening.LogBehaviour),
        typeof(DG.Tweening.LoopType),
        typeof(DG.Tweening.PathMode),
        typeof(DG.Tweening.PathType),
        typeof(DG.Tweening.RotateMode),
        typeof(DG.Tweening.ScrambleMode),
        typeof(DG.Tweening.TweenType),
        typeof(DG.Tweening.UpdateType),

        typeof(DG.Tweening.DOTween),
        typeof(DG.Tweening.DOVirtual),
        typeof(DG.Tweening.EaseFactory),
        typeof(DG.Tweening.Tweener),
        typeof(DG.Tweening.Tween),
        typeof(DG.Tweening.Sequence),
        typeof(DG.Tweening.TweenParams),
        typeof(DG.Tweening.Core.ABSSequentiable),

        typeof(DG.Tweening.Core.TweenerCore<Vector3, Vector3, DG.Tweening.Plugins.Options.VectorOptions>),

        typeof(DG.Tweening.TweenCallback),
        typeof(DG.Tweening.TweenExtensions),
        typeof(DG.Tweening.TweenSettingsExtensions),
        typeof(DG.Tweening.ShortcutExtensions),
        typeof(DG.Tweening.ShortcutExtensions43),
        typeof(DG.Tweening.ShortcutExtensions46),
        typeof(DG.Tweening.ShortcutExtensions50),
       
        //dotween pro 的功能
        //typeof(DG.Tweening.DOTweenPath),
        //typeof(DG.Tweening.DOTweenVisualManager),
    };
}
复制代码

 

xLua中调用Dotween

在Lua中调用dotween的示例如下:

复制代码
-- transform:DOMove(Vector3.zero, 3, false);

--场景中绑定LuaBehaviour,执行Unity的默认函数

function start()
    print("lua start .");
    local tween = self.transform:DOMoveX(10,3)
    --tween:OnComplete(){
    --    print("move callback")
    --}
end
复制代码
pos
ted  本文出自赵青青,原文链接:http://www.cnblogs.com/zhaoqingqing/p/6753701.html ,如需转载请自行联系原作者
相关文章
|
4月前
|
前端开发 Python
我们从`reportlab.pdfgen`模块中导入了`canvas`。这个模块提供了创建PDF文件所需的基本功能。
我们从`reportlab.pdfgen`模块中导入了`canvas`。这个模块提供了创建PDF文件所需的基本功能。
|
11月前
|
算法 图形学
Unity——DOTween插件使用方法简介
Unity——DOTween插件使用方法简介
720 0
|
存储 定位技术 图形学
Blender插件:GLTF 2.0 导入/导出工具
Blender插件:GLTF 2.0 导入/导出工具
310 0
Magisk模块:Scene附加模块(二)修改版
Magisk模块:Scene附加模块(二)修改版
4495 0
egret微信小游戏自定义加载(loading)界面
egret微信小游戏自定义加载(loading)界面
egret微信小游戏自定义加载(loading)界面
|
图形学
[Unity Editor] 清理Prefab使用的特定组件
工具实现 修改Prefab有两种方式,1)实例化Prefab,修改GameObject的实例,然后再替换工程里的资源(SaveAsPrefabAsset)。2)通过SerializedObject直接修改Prefab资源。
2464 0
|
测试技术
DoTween的基本用法
DoTween的基本用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
2030 0