使用ITweenX 来简化iTween插件的函数调用

??

iTween插件是u3d中很火的动画插件。

但是几乎所有函数的参数都是字符串,函数名也要以字符串的方式传入,这就不好了,我们没有必要去记EaseType和其他的参数串。

对于  设计模式的要求是  多组合,少继承。多扩展,少修改。

由于这个插件本身的功能没有任何问题。所以我们没有必要做任何徒劳的重构。就是扩展就玩了呗。

使用:

把脚本放进Standard Assets/Scripts 等等文件夹中即可; 这也很容易被javascript 或 Boo语言使用. 如果你声明一个 public 的EaseType类型变量, 你能够很容易的设置easetype 在面板 inspector. 上。

例子,随便调用一个方法:

public class MyClass: MonoBehaviour
{
	public EaseType easeType;
 
	void Start()
	{
		iTween.ValueTo( gameObject, iTween.Hash( iTweenX.from, 0f, iTweenX.to, 1f, iTweenX.time, 1f,
                                                 iTweenX.onUpdate, "OnUpdateValue",
                                                 iTweenX.onStart, "OnStart",
                                                 iTweenX.onComplete, "OnComplete",
                                                 iTweenX.easeType, iTweenX.Ease(easeType),
                                                 iTweenX.ignoreTimescale, true ) );
	}
	void OnUpdateValue(float value){ print( "OnUpdateValue : " + value.ToString() ); }
	void OnStart(){ print( "OnStart" ); }
	void OnComplete(){ print( "OnComplete" ); }
}

iTweenX.cs 


public enum EaseType
{
	EaseInQuad = 0,
	EaseOutQuad,
	EaseInOutQuad,
	EaseInCubic,
	EaseOutCubic,
	EaseInOutCubic,
	EaseInQuart,
	EaseOutQuart,
	EaseInOutQuart,
	EaseInQuint,
	EaseOutQuint,
	EaseInOutQuint,
	EaseInSine,
	EaseOutSine,
	EaseInOutSine,
	EaseInExpo,
	EaseOutExpo,
	EaseInOutExpo,
	EaseInCirc,
	EaseOutCirc,
	EaseInOutCirc,
	Linear,
	Spring,
	EaseInBounce,
	EaseOutBounce,
	EaseInOutBounce,
	EaseInBack,
	EaseOutBack,
	EaseInOutBack,
	EaseInElastic,
	EaseOutElastic,
	EaseInOutElastic
}
 
public static class iTweenX
{
	public readonly static string[] easeTypes = new string[32]
	{
		"easeInQuad",
		"easeOutQuad",
		"easeInOutQuad",
		"easeInCubic",
		"easeOutCubic",
		"easeInOutCubic",
		"easeInQuart",
		"easeOutQuart",
		"easeInOutQuart",
		"easeInQuint",
		"easeOutQuint",
		"easeInOutQuint",
		"easeInSine",
		"easeOutSine",
		"easeInOutSine",
		"easeInExpo",
		"easeOutExpo",
		"easeInOutExpo",
		"easeInCirc",
		"easeOutCirc",
		"easeInOutCirc",
		"linear",
		"spring",
		"easeInBounce",
		"easeOutBounce",
		"easeInOutBounce",
		"easeInBack",
		"easeOutBack",
		"easeInOutBack",
		"easeInElastic",
		"easeOutElastic",
		"easeInOutElastic"
	};
 
	public const string time =		"time";
	public const string speed =		"speed";
	public const string from =		"from";
	public const string to =		"to";
	public const string onStart =          	"onstart";
	public const string onStartTarget =	"onstarttarget";
	public const string onStartParams =	"onstartparams";
	public const string onUpdate =		"onupdate";
	public const string onUpdateTarget =	"onupdatetarget";
	public const string onUpdateParams =	"onupdateparams";
	public const string onComplete =	"oncomplete";
	public const string onCompleteTarget =	"oncompletetarget";
	public const string onCompleteParams =	"oncompleteparams";
	public const string ignoreTimescale =	"ignoretimescale";
	public const string easeType =		"easetype";
 
	public static string Ease( EaseType type )
	{
		return easeTypes[ (int)type ];
	}
}

时间: 2024-08-12 13:34:33

使用ITweenX 来简化iTween插件的函数调用的相关文章

itween插件使用

http://wenku.baidu.com/link?url=uhNnd7NuECR2rWhXlnpMeDkxz-DtBl-Yf-iJL3clugNXga6kfEms8NhxIWbP0CthxD_IZw9-j9OfIdmqXiDsn9Z4tj63sNr5QjYZHdQ-k_G 变化曲线:http://robertpenner.com/easing/easing_demo.html

Itween 动画插件中 的画线

1.首先在你的层次视图中创建所需的节点 ,节点的位置顺序排列 2.导入Itween 插件 1.可以直接从项目外部拖拽到本项目中 2.通过AssetStore 中导入 3.在你的父节点上创建脚本 ,对象依次对应   效果如图: 这个绿色的小图标可以在检视视图上设置 原文地址:https://www.cnblogs.com/zhaodadan/p/10333492.html

SeaJS中jQuery插件模块化及其调用方式

转载自:http://my.oschina.net/briviowang/blog/208587#OSC_h3_1 jQuery插件本质上是将命名空间挂在全局的jQuery或jQuery.fn上而非使用define定义的模块. JQuery的这种扩展机制同模块化要求模块的独立性,以及模块互相隔离有点冲突. jQuery插件数目众多,我们不打算做大量的转换工作,为模块化而模块化,甚至改变插件的调用方式, 这样对开发带来的价值不大.只希望通过模块加载器实现自动的依赖管理,按需加载,并且使用方式自然.

Maven之——插件配置与解析

Maven之--插件配置与解析 插件配置就是为绑定插件指定其预定义的参数值.来进一步调整插件目标所执行的任务.可以通过命令行和POM中插件全局配置的形式来配置.不是所有的插件配置都可以通过命令行配置的. 1.    命令行插件配置 如maven-surefire-plugin插件提供一个maven.test.skip参数.当值为true时会跳过执行测试.命令行执行方式: mvninstall –Dmaven.test.skip=true mvn install 可以对比两者在控制台的输出就发现.

jenkins插件--Cobertura,JaCoCo,Emma-----(二)

代码覆盖API插件 Jenkins中有许多代码覆盖插件:Cobertura,JaCoCo,Emma等等.这些插件的问题在于它们每个都自己实现了所有代码覆盖功能.因此,您可以获得不同的功能集,UI,CLI命令和REST API.这个项目的想法是统一现有的功能,并提供一个新的API插件,其他插件可以扩展.这将有助于简化现有插件并为覆盖工具创建新插件. 该项目已经开始很好,我们在编码一周后进行了第一次演示.然后神宇继续在编码期间扩展插件的功能.以下是插件提供的主要功能列表: 灵活的数据结构,用于在Je

Unity常见面试题大全

1.       [C#语言基础]请简述拆箱和装箱. 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何接口类型的过程. 1.在堆中开辟内存空间. 2.将值类型的数据复制到堆中. 3.返回堆中新分配对象的地址. 拆箱操作: object类型显示转换为值类型或从接口类型到实现该接口值类型的过程. 1.判断给定类型是否是装箱时的类型. 2.返回已装箱实例中属于原值类型字段的地址. 2.        [.NET(C#)] attribute,property,markup,ta

Makefile中的函数

Makefile 中的函数 Makefile 中自带了一些函数, 利用这些函数可以简化 Makefile 的编写. 函数调用语法如下: $(<function> <arguments>) # 或者 ${<function> <arguments>} <function> 是函数名 <arguments> 是函数参数 1.1 字符串函数 字符串替换函数: $(subst <from>,<to>,<text&

视频教程

英雄联盟教程     http://pan.baidu.com/s/1i3rkMS9 密码:bv6r https://pan.baidu.com/share/link?shareid=2589856556&uk=371904234#list/path=%2F%E6%88%91%E7%9A%84%E8%B5%84%E6%BA%90%2F%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B%E9%9B%86%E5%90%88%2F%E7%BD%91%E7%BB%9C%E6%95%

Linux/Unix环境下的make和makefile

介绍一下make及其描述文件makefile Makefile文件 Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间 的相互关系并自动维护编译工作.而makefile 文件需要按照某种语法进行编写,文件 中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖 关系. 在 UNIX 系统中,习惯使用 Makefile 作为 makfile 文件.如果要使用其 他文件作为 makefile,则可利用类似下面的 make 命令选项指定 makefil