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 ,如需转载请自行联系原作者
相关文章
|
存储 定位技术
ArcGIS中mxd文档文件无法显示且出现红色感叹号的处理方法
本文介绍在ArcMap软件中,导入.mxd地图文档文件后图层出现感叹号、地图显示空白等情况的解决办法~
734 1
ArcGIS中mxd文档文件无法显示且出现红色感叹号的处理方法
基于C#的ArcEngine二次开发31:addin开发时调用ArcMap的进度条
基于C#的ArcEngine二次开发31:addin开发时调用ArcMap的进度条
基于C#的ArcEngine二次开发31:addin开发时调用ArcMap的进度条
|
C#
C# .Resx文件无效解决方案 Resx文件报错解决方法
C# .Resx文件无效解决方案 Resx文件报错解决方法
1090 7
C# .Resx文件无效解决方案 Resx文件报错解决方法
|
定位技术 图形学 Windows
【琐琐碎碎小知识】 关于部分Unity编辑器在创建瓦片地图时缺乏Tiles选项
【琐琐碎碎小知识】 关于部分Unity编辑器在创建瓦片地图时缺乏Tiles选项
666 0
【琐琐碎碎小知识】 关于部分Unity编辑器在创建瓦片地图时缺乏Tiles选项
|
图形学
[Unity Editor] 清理Prefab使用的特定组件
工具实现 修改Prefab有两种方式,1)实例化Prefab,修改GameObject的实例,然后再替换工程里的资源(SaveAsPrefabAsset)。2)通过SerializedObject直接修改Prefab资源。
2490 0
MFC创建单文档工程(为窗口添加背景图)
首先把BMP位图图片添加到资源文件res文件夹下; 其次,资源视图——VT_Ards.rc——右键选择添加资源,选择Bitmap,导入BMP图片并修改图片ID; 然后添加代码(详见MFC单文档工程为窗口添加背景图代码) ...
1655 0

热门文章

最新文章